Fork me on GitHub

Rapport de message :*
 

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é : Open in new window
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
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

149 Personne(s) en ligne (120 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 149 | Plus ...