Thème dynamiques

thème,dynamique,CSS,vaesoli,web

2009-12-27 – 14:20

2009-12-27 – 14:00

2009-12-29 – 17:36

Les thèmes dynamiques ont été appliqués au site de Lato Sensu Management. C'est ce qui nous permet d'afficher une bannière festive entre le 15 décembre et le 15 janvier.

En soi, cela n'a rien de difficile : il suffit d'adapter les définitions CSS et le tour est joué. Ce que nous allons illustrer dans cet article, c'est l'application automatique de ce principe. Il ne faudra dès lors plus jamais modifier notre code pour que le principe s'active de lui-même !

Thème dynamique en fonction d'une période

Imaginons que nous souhaitions modifier l'apparence de notre site web en fonction de la période de l'année. Pourquoi pas une apparence un peu plus festive entre le 15 décembre et le 15 janvier ou alors une apparence plus amoureuse le 14 février ? Vous l'aurez compris, vous pourrez aussi, sur base des mêmes principes, appliquer un thème matinal, un thème de soirée …. La limite est vraiment votre imagination.

Créons le code PHP qui va retourner le nom du thème en fonction des dates :

function DynamicTheme()
/*-------------------*/
{
    $iNow   = time();

    $iMonth = DAT_Month( $iNow );   /* Fonction de Vae Soli! pour retourner le mois */
    $iDay   = DAT_Day(   $iNow );   /* Fonction de Vae Soli! pour retourner le jour */
    $iYear  = DAT_Year(  $iNow );   /* Fonction de Vae Soli! pour retourner l'année */

    if ( ( ( $iMonth == 12 ) && ( $iDay >= 15 ) ) ||
         ( ( $iMonth == 1  ) && ( $iDay <= 15 ) ) 
       )
    {
        $szTheme = "holiday_season {$iYear}";
    }
    else if ( $iMonth == 2 && $iDay == 14 )
    {
        $szTheme = "valentine {$iYear}";
    }
    else
    {
        $szTheme = 'regular';
    }

    return ( $szTheme );
}

Ce code PHP va donc retourner des patterns bien particulier entre le 15 décembre et le 15 janvier de n'importe quelle année (dans ce cas le pattern holiday_season) et le 14 février (valentine). Il suffira d'appliquer le pattern résultat en tant que classe de notre body … et de prévoir les images à afficher dans l'entête de nos pages.

<html>
    …
    <body class="<?php echo DynamicTheme(); ?>">
        <div id="header">
            …
        </div>
        …
    </body>
</html>

… et donc de prévoir un code CSS semblable à …

body div#header
    {   background          :   #fff url(/images/header.jpg) left top no-repeat;  
    }
body.holiday_season div#header
    {   background-color    :   #000;  
        background-image    :   url(/images/header-holiday-season.jpg);
    }
body.valentine div#header
    {   background-color    :   #800;  
        background-image    :   url(/images/header-valentine.jpg);
    }

… et le tour est joué ! Avouez que ce n'était pas bien compliqué!

< Février 2012 >
Lu Ma Me Je Ve Sa Di
    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        
lifetime-episode

Nos autres articles

  1. Articles
    1. /articles-core.php
    2. /articles/core/MiFID/index.php
    3. /articles/core/SEPA/index.php
    4. /articles/core/accessibility-seo/index.php
    5. /articles/core/accessible-popups/index.php
    6. /articles/core/ajax/index.php
    7. /articles/core/blogs/index.php
    8. /articles/core/business-case/index.php
    9. /articles/core/closure-report/index.php
    10. /articles/core/cmmi/index.php
    11. /articles/core/css/index.php
    12. /articles/core/doctype/index.php
    13. /articles/core/dynamic-input/index.php
    14. /articles/core/effort-de-gestion-de-projet/index.php
    15. /articles/core/error-handling-404/index.php
    16. /articles/core/estimations-programmeurs/index.php
    17. /articles/core/expressions-regulieres-php/index.php
    18. /articles/core/gestion-des-couleurs/index.php
    19. /articles/core/glossary/index.php
    20. /articles/core/ideal-team-duration/index.php
    21. /articles/core/image-transition/index.php
    22. /articles/core/inline-javascript/index.php
    23. /articles/core/investir/index.php
    24. /articles/core/it-budget/index.php
    25. /articles/core/javascript-animation/index.php
    26. /articles/core/junctions/index.php
    27. /articles/core/les-malheurs-IT/IT-soumis-business.php
    28. /articles/core/limites-de-la-croissance/club-de-rome.php
    29. /articles/core/link-rel-canonical/eviter-duplication-url-canonique.php
    30. /articles/core/link-rel/index.php
    31. /articles/core/longitude-latitude-google-maps/index.php
    32. /articles/core/meetings/index.php
    33. /articles/core/pack-and-go/index.php
    34. /articles/core/pageframe-tabs/index.php
    35. /articles/core/phases-de-projet/index.php
    36. /articles/core/php-server-variables/index.php
    37. /articles/core/pre-business-case/index.php
    38. /articles/core/project-management/principes-de-gestion-de-projet.php
    39. /articles/core/project-typology/index.php
    40. /articles/core/pso/index.php
    41. /articles/core/requirements management/index.php
    42. /articles/core/risk management/index.php
    43. /articles/core/rss/index.php
    44. /articles/core/scrum/index.php
    45. /articles/core/search-engine-optimization/accessibility-guidelines.php
    46. /articles/core/sepia/index.php
    47. /articles/core/sponsorship-meeting/index.php
    48. /articles/core/stylesheet-switching/index.php
    49. /articles/core/v-model/index.php
    50. /articles/core/vaesoli-transform-images/index.php
    51. /articles/core/wiki/index.php
    52. /articles/core/xhtml-tooltips/index.php
    53. /articles/core/xml-sitemap/index.php