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'heureNous 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 moisDans 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éciseOn 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 loinN’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
iciEn espérant que ce petit tuto vous serve.
N’hésitez pas a me faire part de vos remarque