17/08/2013, 12:44:34
Salut,
Voici la solution que j'utilise (nécessite CGSimpleSmarty) :
Dans l'entête (avant <html>) :
Ca permet de récupérer le nom du thème à appliquer (ici : normal, light, dark) et ça le chiffre en base64 pour éviter que dans l'URL des p'tits malins tentent d'autres choses :-) Puis ça enregistre dans une session la valeur (donc valable tout le long de la navigation et ça redirige vers la page d'où la sélection a été faite.
Dans mon <body> :
Là j'applique la classe CSS du thème qui correspond.
Et ensuite dans mon CSS, je mets en œuvre les styles dans ce genre là :
Voici la solution que j'utilise (nécessite CGSimpleSmarty) :
Dans l'entête (avant <html>) :
Code :
[== Smarty ==]
{if !$smarty.session.theme}
{session_put var="theme" value="normal"|base64_encode}
{elseif $smarty.get.theme}
{if $smarty.get.theme|base64_decode == "light" OR $smarty.get.theme|base64_decode == "dark" OR $smarty.get.theme|base64_decode == "normal"}
{session_put var="theme" value=$smarty.get.theme|base64_decode}
{/if}
{redirect_url to=$gCms->config.root_url|cat:$smarty.get.redirect|base64_decode}
{/if}
Dans mon <body> :
Code :
[== HTML / SMarty ==]
<body class="{if $smarty.session.theme}theme-{$smarty.session.theme}{/if}">
Là j'applique la classe CSS du thème qui correspond.
Et ensuite dans mon CSS, je mets en œuvre les styles dans ce genre là :
Code :
[== CSS ==]
.theme-normal {
color : #666;
background : #F5F5F5;
}
.theme-dark {
color : white ;
background : black ;
}
.theme-light{
color : black;
background : white;
}
Exacore - Freelance en communication