1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| class themeSwitcherBehaviors
{
public static function changeTheme (&$core)
{
global $__theme;
/* On donne un nom au Cookie en fonction de l'id du blog sur lequel on se trouve */
$name_cookie = 'dc_theme_'.$core->blog->id;
/* Si un Cookie existe et que le nom de ce Cookie correspond bien à un thème on défini la variable $__theme */
if ( !empty($_COOKIE[$name_cookie]) && $core->themes->moduleExists($_COOKIE[$name_cookie]) )
{
$__theme = $_COOKIE[$name_cookie];
}
/* Si on a envoyé le formulaire pour demander un nouveau thème */
if (!empty($_POST['theme']))
{
if (!$core->themes->moduleExists($_POST['theme'])) // Si le thème n'existe pas -> Erreur
{
header('Content-Type: text/plain');
die( __('Theme').' '.$_POST['theme'].' '.__('doesn\'t exists.') );
}
else // Si il existe on définit le Cookie et la variable $__theme
{
setcookie($name_cookie , $_POST['theme'] , strtotime('+3 month') , '/' , '');
$__theme = $_POST['theme'];
}
}
/* Sinon si on demande de changer de thème par l'URL (par la liste) */
elseif (!empty($_GET['theme']))
{
if (!$core->themes->moduleExists($_GET['theme'])) // Si le thème n'existe pas -> Erreur
{
header('Content-Type: text/plain; charset=UTF-8');
die( __('Theme').' '.$_GET['theme'].' '.__('doesn\'t exists.'));
}
else // Si il existe on définit le Cookie et la variable $__theme
{
setcookie($name_cookie , $_GET['theme'] , strtotime('+3 month') , '/' , '');
$__theme = $_GET['theme'];
}
}
/* On définit la variable qui servira à dire au script quel thème on utilise */
$core->blog->settings->theme = $__theme;
}
} |
Partager