Changement de template

Description

Salut a tous,

Voici ma première contribution, étant un débutant en programmation, je me suis intéressé à l idée de trucmachin4096

http://www.phpcs.com/codes/CHANGEMENT-STYLE-PAGE-SELON-HEURE_23379.aspx

L idée n ayant pas était poussée suffisamment loin, j ai décidé de refaire un script « plus élaboré » sur le même principe, comme la version de trucmachin4096 un simple INCLUDE permet de l intégrer à votre site.

Il permet d affiché un style CSS différent suivant :

- les jours de fêtes (actuellement 8 dates, vous pouvez éventuellement en ajouter d autre dans le SWITCH).
- les saisons (les 4 saisons).
- la plage horaire (actuellement 4 plages disponible : matin, jour, soir, nuit vous pouvez ajouter une 5° plage avec un ELSEIF pour plus de plages horaire il faut réécrire la fonction avec un SWITCH).

Ce qui fait un total actuel de 48 styles disponibles pour votre site.

Je vous propose 4 fichiers :

- template_par_fetes.php pour gérer uniquement les fêtes
- template_par_heures.php pour gérer uniquement les plages horaires
- template_par_saison.php pour gérer uniquement les saisons
- template_3_en_1.php pour tout gérer en même temps
L astuce dans ce dernier et l écriture du nom de la feuille de style en 2 parties (fête ou saison_plage horaire)

Mais l utilisation de ce script vous forcera à créer un certain nombre de templates et de feuille de style.

@zano merci pour les conseils

Source / Exemple :


PAR FETES :

<?php
/***********************************************

  • Fêtes que l'on va gérer :
  • - Nouvel an (31.12)
  • - Printemps (20.03)
  • - Pâques (12.04)
  • - Eté (21.06)
  • - Nationale (14.07)
  • - Automne (23.09)
  • - Hiver (22.12)
  • - Noël (25.12)
                                                                                              • /
/*********************************************************************************
  • Récupération de la date du serveur
  • Pensez a ajuster le fuseau horraire, si votre serveur est hébergé a l'étranger
  • avec la fonction : date_default_timezone_set
                                                                                                                                                                  • /
/***********************************************************************
  • Valeurs date utilisées
  • - d : Jour du mois, sur deux chiffres (avec un zéro initial) 01 à 31
  • - m : Mois au format numérique, avec zéros initiaux 01 à 12
                                                                                                                                              • /
$date = date("d.m"); /**********************************************
  • Calcul de la feuille de style a utiliser
                                                                                              • /
switch ($date) { case 31.12 : $feteCss = "fete_nouvel_an"; break; case 20.03 : $feteCss = "fete_printemps"; break; case 12.04 : $feteCss = "fete_paques"; break; case 21.06 : $feteCss = "fete_ete"; break; case 14.07 : $feteCss = "fete_nationale"; break; case 23.09 : $feteCss = "fete_automne"; break; case 22.12 : $feteCss = "fete_hiver"; break; case 25.12 : $feteCss = "fete_noel"; break; default: $feteCss = "defaut"; /*defaut etant la feuille de style Css habituelle de votre site*/ break; } /******************************************************************
  • Ecrirture du nom de la feuille choisie
  • pour le LINK entre les balises <head> et </head> de la page html
                                                                                                                                    • /
$feteCss = $feteCss . ".css"; ?> <html> <head> <link rel="stylesheet" type="text/css" href="css/<?php echo ($feteCss)?>" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <div id="wrapper_01"> <div id="banner"> </div> <div><p><?php echo ($feteCss) ?></p></div> <div id="footer"> </div> </div> </body> </html> ------------------------------------------------------------------------------------------------------------ PAR SAISON : <?php /***********************************************
  • Dates des saisons :
  • - Printemps (20.03 -> 20.06)
  • - Eté (21.06 -> 21.09)
  • - Automne (22.09 -> 20.12)
  • - Hiver ( 21.12 -> 19.03)
                                                                                              • /
/***********************************************************************************
  • Récupération de la date du serveur
  • Pensez a ajuster le fuseau horraire, si votre serveur est héberge a l'étranger
  • avec la fonction : date_default_timezone_set
                                                                                                                                                                        • /
/***********************************************************************
  • Valeurs date utilisées
  • - d : Jour du mois, sur deux chiffres (avec un zéro initial) 01 à 31
  • - m : Mois au format numérique, avec zéros initiaux 01 à 12
                                                                                                                                              • /
$date = date("m.d"); /**********************************************
  • Definition d'une feuille de style par défaut
                                                                                              • /
$saisonCss = "ete.css"; /**********************************************
  • Calcul de la feuille de style a utiliser
                                                                                              • /
if (($date >= 03.20) && ($date < 06.21)) { $saisonCss = "printemps"; } elseif (($date >= 06.21) && ($date < 09.22)) { $saisonCss = "ete"; } elseif (($date >= 09.22) && ($date < 12.21)) { $saisonCss = "automne"; } else { $saisonCss = "hivers"; } /******************************************************************
  • Ecrirture du nom de la feuille choisie
  • pour le LINK entre les balises <head> et </head> de la page html
                                                                                                                                    • /
$saisonCss = $saisonCss . ".css"; ?> <html> <head> <link rel="stylesheet" type="text/css" href="css/<?php echo ($saisonCss) ?>" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <div id="wrapper_01"> <div id="banner"> </div> <div><p><?php echo ($saisonCss) ?></p></div> <div id="footer"> </div> </div> </body> </html> ------------------------------------------------------------------------------------------------------------ PAR HEURE : <?php /*************************************************************************************
  • Récupération de l'heure du serveur
  • Pensez a ajuster le fuseau horraire, si votre serveur est heberge a l'etranger
  • avec la fonction : date_default_timezone_set
                                                                                                                                                                          • /
/***********************************************************************
  • Valeurs date utilisées :
  • - H : Heure, au format 24h, avec les zéros initiaux 00 à 23
                                                                                                                                              • /
$heure = date("H"); /**********************************************
  • Définition d'une feuille de style par défaut
                                                                                              • /
$feuilleCss = "jour.css"; /**********************************************
  • Calcul de la feuille de style a utiliser
                                                                                              • /
if (($heure >= 6) && ($heure < 12)) { $feuilleCss = "matin"; } elseif (($heure >= 12) && ($heure < 18)) { $feuilleCss = "jour"; } elseif (($heure >= 18) && ($heure < 22)) { $feuilleCss = "soir"; } else { $feuilleCss = "nuit"; } /******************************************************************
  • Ecrirture du nom de la feuille choisie
  • pour le LINK entre les balises <head> et </head> de la page html
                                                                                                                                    • /
$feuilleCss = $feuilleCss . ".css"; ?> <html> <head> <link rel="stylesheet" type="text/css" href="css/<?php echo ($feuilleCss) ?>" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <div id="wrapper_01"> <div id="banner"> </div> <div><p><?php echo ($feuilleCss) ?></p></div> <div id="footer"> </div> </div> </body> </html> ------------------------------------------------------------------------------------------------------------- 3 EN 1 <?php /******************************************************************************************************************
  • Récupération de la date du serveur
  • Pensez a ajuster le fuseau horraire, si votre serveur est hébergé a l'étranger
  • avec la fonction : date_default_timezone_set
*
  • floatval() retourne la valeur de type float (nombre à virgule flottante), extraite à partir du paramètre var .
                                                                                                                                                                                                                                      • /
$date = floatval (date("m.d")); /***********************************************************************
  • On calcule le début du nom de la feuille (période de l'année)
  • Valeurs date utilisées
  • - d : Jour du mois, sur deux chiffres (avec un zéro initial) 01 à 31
  • - m : Mois au format numérique, avec zéros initiaux 01 à 12
  • Mois d'abord pour que la comparaison numérique fonctionne
                                                                                                                                              • /
$cssDebut = ""; /*********************************************************************************************************************
  • On vérifie si ce n'est pas un jour particulier
  • (on pourrait aussi utiliser un tableau des jours particuliers s'il y en a beaucoup, afin de minimiser les tests
  • Fêtes que l'on va gérer :
*
  • - Nouvel an (12.31)
  • - Printemps (03.20)
  • - Pâques (04.12)
  • - Eté (06.21)
  • - Fete Nationale (07.14)
  • - Automne (09.23)
  • - Hiver (12.22)
  • - Noël (12.25)
                                                                                                                                                                                                                                                • /
switch ($date) { case 12.31 : $cssDebut = "fete_nouvel_an"; break; case 03.21 : $cssDebut = "fete_printemps"; break; case 04.12 : $cssDebut = "fete_paques"; break; case 06.21 : $cssDebut = "fete_ete"; break; case 07.14 : $cssDebut = "fete_nationale"; break; case 09.21 : $cssDebut = "fete_automne"; break; case 12.21 : $cssDebut = "fete_hiver"; break; case 12.25 : $cssDebut = "fete_noel"; break; } /***********************************************************
  • Si on n'est pas un jour particulier, on calcule la saison
                                                                                                                      • /
if ($cssDebut == "") { /**********************************************
  • Définition d'une feuille de style par défaut
                                                                                              • /
$cssDebut = "ete"; /**********************************************
  • Calcul de la feuille de style a utiliser
                                                                                              • /
if (($date >= 03.21) && ($date < 06.21)) { $cssDebut = "printemps"; } elseif (($date >= 06.21) && ($date < 09.22)) { $cssDebut = "ete"; } elseif (($date >= 09.22) && ($date < 12.21)) { $cssDebut = "automne"; } else { $cssDebut = "hiver"; } } /*************************************************************************************
  • Récupération de l'heure du serveur
  • Pensez a ajuster le fuseau horraire, si votre serveur est heberge a l'etranger
  • avec la fonction : date_default_timezone_set
*
  • Valeurs date utilisées :
  • - H : Heure, au format 24h, avec les zéros initiaux 00 à 23
*
  • intval() retourne la valeur numérique entière (entier) de la variable var,
  • en convertissant la valeur dans la base spécifiée (par défaut en base 10).
                                                                                                                                              • /
$heure = intval (date("H")); /**********************************************************
  • On calcule la fin du nom de la feuille (plage horraire)
  • Définition d'une feuille de style par défaut
                                                                                                                    • /
$cssFin = "jour"; if (($heure >= 6) && ($heure < 12)) { $cssFin = "matin"; } elseif (($heure >= 12) && ($heure < 18)) { $cssFin = "jour"; } elseif (($heure >= 18) && ($heure < 22)) { $cssFin = "soir"; } else { $cssFin = "nuit"; } /******************************************************************
  • Et voilà, on a le début et la fin du nom
  • Ecriture du nom de la feuille choisie
  • pour le LINK entre les balises <head> et </head> de la page html
                                                                                                                                    • /
$feuilleCss = $cssDebut . "_" . $cssFin . ".css"; ?> <html> <head> <link rel="stylesheet" type="text/css" href="css/<?php echo ($feuilleCss)?>" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <div id="wrapper_01"> <div id="banner"> </div> <div> <p><?php echo ($feuilleCss) ?></p> </div> <div id="footer"> </div> </div> </body> </html>

Conclusion :


J attends vos commentaires, un support est envisageable par mp

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.