Utilisations de plusieurs feuilles de style

Signaler
Messages postés
14
Date d'inscription
lundi 20 juillet 2009
Statut
Membre
Dernière intervention
10 août 2009
-
Messages postés
14
Date d'inscription
lundi 20 juillet 2009
Statut
Membre
Dernière intervention
10 août 2009
-
bonjour,
j'ai trois feuilles de style dans mon site: le visiteur choisit son style grâce a un menu déroulant.
jusque la tout va bien
mais s'il choisit un thème qui n'ai pas celui par défaut et qu'il change de page et il se retrouve avec le thème par défaut.
Donc comment faire pour garder le même thème d'une page à l'autre.


merci d'avance.

4 réponses

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Pas possible de t'aider sans plus de précision et de code.
Sans doute que la réponse est les sessions (tu mets le choix de css dans une var de session et tu l'appliques pour chaque page)

Cordialement,



Kohntark -
Messages postés
14
Date d'inscription
lundi 20 juillet 2009
Statut
Membre
Dernière intervention
10 août 2009

voici mon code :

dabord le menu deroulant :





<li>[javascript:setActiveStyleSheet('arbre3') style 3]</li>
<li>[javascript:setActiveStyleSheet('arbre2') style 2]</li>
<li>[javascript:setActiveStyleSheet('arbre1') style par défaut]</li>








et le javascript qui me permet de changer la feuille :

<SCRIPT LANGUAGE="JavaScript">

//------------------------------------
//fonction creation cookie
//------------------------------------
function creerCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}

//------------------------------------
//fonction lecture cookie
//------------------------------------
function lireCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}




function setActiveStyleSheet(title) {
var i, a, main;
currentStyle = title;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
a.disabled = true;
if(a.getAttribute("title") title) a.disabled false;
}
}
}




var defaultStyle = "arbre1";

var currentStyle ;
var cookies = lireCookie("style");
var bgStyle ((cookies "arbre1") || (cookies == "arbre2") || (cookies == "arbre3")) ? cookies : defaultStyle;
setActiveStyleSheet(bgStyle);

</script>
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Et où écris tu ton cookie ? Il devrait se trouver dans la fonction setActiveStyleSheet, non ?


Cordialement,


Kohntark -
Messages postés
14
Date d'inscription
lundi 20 juillet 2009
Statut
Membre
Dernière intervention
10 août 2009

merci a toi Kohntark,

j'ai trouvé une autre méthode avec tes conseils et les sessions.


<?php ini_set("url_rewriter.tags","input=src");
session_start();
$CSSStyle = 'arbre.css';
if (isset($HTTP_GET_VARS['cssfile'])) {
$CSSStyle = $HTTP_GET_VARS['cssfile'];
$_SESSION['gloadcss'] = $CSSStyle;
}
else
{
if (session_is_registered("gloadcss")) {
if ($_SESSION['gloadcss']) {
$CSSStyle = $_SESSION['gloadcss'];
};
};
};
?>



<link rel="stylesheet" type="text/css" href="<?php echo $CSSStyle; ?>" title="<?php echo $CSSStyle; ?>" media="screen">









<li>[<?php echo $_SERVER[ ">style: écorce de platane]</li>
<li>[<?php echo $_SERVER[ ">style: bois] </li>
<li>[<?php echo $_SERVER[ ">style: fond uni]</li>