changer de thème suivant la date, l'heure ou le mois | Titre du sujet : changer de thème suivant la date, l'heure ou le mois par bendenice sur 11/09/2012 15:03:08
Après une petite pause xoops me revoilà sur le forum
Pour fêter ça je vous propose un tuto sur comment faire interagir son thème avec les dates
Niveau de difficulté : facile
L'objectif est de pouvoir changer son thème en fonction: - de l'heure --> un thème pour le jour et un pour la nuit par exemple - de la date --> programmer l'apparition du thème de noël - du mois --> changer de thème automatiquement tout les mois
Toute les modifications vont se faire dans votre fichier header.php se trouvant a la racine de votre site. Au niveau de la ligne 32 juste après
$xoopsLogger->startTime('XOOPS output init');
* Pour l'heure
Nous allons afficher un thème différent pour la nuit et la journée
On va donc mettre une condition d'intervalle pour définir la journée, ici on considérera le jour entre 7h du matin et 21h le soir le temps restant étant la nuit
Le code a insérer sera donc
$heure = date("H"); //
if($heure >= 08 && $heure <= 16){ //si c'est le jour
$xoopsConfig['theme_set'] = 'montheme_jour';
}
else { //si c'est la nuit
$xoopsConfig['theme_set'] = 'montheme_nuit';
}
* Pour le mois Dans cet exemple ci on va changer le thème tous les mois On va donc utiliser un switch plutôt qu'un if ce qui nous donnera une structure plus légère en traitant tout les cas.
Le code a insérer sera donc
$mois = date("n");
switch($mois)
{
case 1: //Si le mois est janvier
$xoopsConfig['theme_set'] = 'montheme_janvier';
break;
case 2: //Si le mois est fevrier
$xoopsConfig['theme_set'] = 'montheme_fevrier';
break;
case 3: //Si le mois est mars
$xoopsConfig['theme_set'] = 'montheme_mars';
break;
case 4: //Si le mois est avril
$xoopsConfig['theme_set'] = 'montheme_avril';
break;
case 5: //Si le mois est mai
$xoopsConfig['theme_set'] = 'montheme_mai';
break;
case 6: //Si le mois est juin
$xoopsConfig['theme_set'] = 'montheme_juin';
break;
case 7: //Si le mois est juiller
$xoopsConfig['theme_set'] = 'montheme_juillet';
break;
case 8: //Si le mois est aout
$xoopsConfig['theme_set'] = 'montheme_aout';
break;
case 9: //Si le mois est septembre
$xoopsConfig['theme_set'] = 'montheme_septembre';
break;
case 10: //Si le mois est octobre
$xoopsConfig['theme_set'] = 'montheme_octobre';
break;
case 11: //Si le mois est novembre
$xoopsConfig['theme_set'] = 'montheme_novembre';
break;
case 12: //Si le mois est décembre
$xoopsConfig['theme_set'] = 'montheme_decembre';
break;
}
* Pour une date précise
On souhaite maintenant afficher un thème spécifique pour une date donnée, par exemple le jour de noël. Attention il faudra bien penser a prendre en compte le cas des années bissextile
Le code a insérer sera donc le suivant
$jour = date("z");
$bissextile = date("L");
if($bissextile == true ){ //si l'année est bissextile
if($jour == 360){ //jour de noel 360
$xoopsConfig['theme_set'] = 'montheme_noel';
}
}
else { //si l'année n'est pas bissextile
if($jours == 359){ //jour de noel 359
$xoopsConfig['theme_set'] = 'montheme_noel';
}
}
* Pour aller plus loin
N’hésitez pas à consulter : - doc de la fonction date en php ici - la doc sur la fonction if ici - la doc sur la fonction switch ici
En espérant que ce petit tuto vous serve. N’hésitez pas a me faire part de vos remarque
|
|