Utilisations de plusieurs feuilles de style

cs_fouque Messages postés 14 Date d'inscription lundi 20 juillet 2009 Statut Membre Dernière intervention 10 août 2009 - 7 août 2009 à 04:05
cs_fouque Messages postés 14 Date d'inscription lundi 20 juillet 2009 Statut Membre Dernière intervention 10 août 2009 - 8 août 2009 à 06:29
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.
A voir également:

4 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
7 août 2009 à 07:16
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 -
0
cs_fouque Messages postés 14 Date d'inscription lundi 20 juillet 2009 Statut Membre Dernière intervention 10 août 2009
7 août 2009 à 07:43
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>
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
7 août 2009 à 18:51
Et où écris tu ton cookie ? Il devrait se trouver dans la fonction setActiveStyleSheet, non ?


Cordialement,


Kohntark -
0
cs_fouque Messages postés 14 Date d'inscription lundi 20 juillet 2009 Statut Membre Dernière intervention 10 août 2009
8 août 2009 à 06:29
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>
0
Rejoignez-nous