Téléchargement Archives téléchargements Extensions

Éphéméride

Voici de quoi ajouter un éphéméride à votre Yacs.

[title]Principe[/title] Les éphémérides qui s'affichent sur les sites internet, certains en raffolent. Le côté un peu... rebutant de la chose, c'est que la base de donnée doit être mise à jour chaque année - ne serait-ce qu'à cause des fêtes flottantes - et qu'à tout le moins, la première saisie des données est loooongue. Mais pour autant, ce n'est pas si simple de trouver sur le net une table toute prête - et à jour ! Alors puisque je le fais pour un de mes clients, je vous en fait profiter.

Le principe est assez simple : on ajoute une table dans la base de données, on définit une fonction pour l'affichage, et on l'appelle dans le template.

[title]La nouvelle table[/title] À télécharger et ajouter à votre base de données Yacs. Elle s'appelle ici yacs_ephemeride, ainsi, elle pourra être sauvegardée avec les autres tables de yacs si vous utilisez l'outil de sauvegarde du panneau de contrôle. Si vous préfixez vos tables autrement, pensez à changer le nom de cette table en cohérence avec votre base de données.

La structure de la table est simple et efficace : * Un champ "mois" (de 1 à 12) * Un champ "jour" (de 1 à 31, varie bien sûr selon le nombre de jours dans le mois considéré) * Un champ "fete" pour saisir le nom du saint du jour ou de l'événement (ex. Fête nationale) * Un champ "type" pour déterminer si le champ précédent est masculin, féminin ou neutre. Il sera utilisé pour afficher en regard du nom "Ste", "St" ou rien du tout pour les événements.

Télécharger la table éphéméride : [file=1334] [title]Le template[/title] Deux modifications à faire dans le template.php de votre thème : * Définir la fonction "ephemeride" à la fin de votre template (après la mention suffix ends here * Appeler cette fonction là où vous souhaitez l'afficher (ici, se sera dans le side_panel). [subtitle]La fonction ephemeride[/subtitle] Tout à la fin de votre template donc, insérez la fonction qui va interroger la nouvelle table et renvoyer le saint du jour (ou l'événement). La fin de votre template devrait ressembler à cela :

// suffix ends here
}

function 
ephemeride() {
    
$query "select `fete`,`type` from ".SQL::table_name('ephemeride')." where `mois`='".date("m")."' and `jour`='".date("j")."'";
        
        
$query_result SQL::query($query);

        
$query_ligne SQL::fetch($query_result);
        
$ret 'Aujourd\'hui : ';
        
        switch(
$query_ligne['type']) {
            
            case 
'masc':$ret .= 'St ';break;
            case 
'fem':$ret .= 'Ste ';break;
        }
        
$ret .= $query_ligne['fete'];
         
        return 
$ret;
}


[subtitle]Afficher une boîte de côté avec l'éphéméride du jour[/subtitle] J'ai choisi d'afficher l'éphéméride dans une boîte de côté, il faut donc ajouter l'affichage de la boîte dans le template, dans la zone // the side panel. Cette partie de votre template devrait ressembler à cela :

// the side panel
    
echo '<div id="side_panel">'."\n";

    
    
//add a box with ephemeride
     
$boite Skin::build_extra_box('Éphéméride'ephemeride());
    
$context['navigation'] .= $boite;
    
    
// display side content, including extra data
    
Page::side(TRUE);

    
    
// end of the side panel
    
echo '</div>'."\n";
[subtitle]Affichage uniquement en page d'accueil[/subtitle] Si vous souhaitez avoir l'éphéméride uniquement en page d'accueil, il suffit de dupliquer votre template.php et le renommer en template_home.php, puis d'ajouter le code précédent à ce dernier.
Yacs détecte automatiquement qu'un template spécifique est disponible pour l'accueil (parce qu'il s'appelle template_home.php) et l'utilisera en lieu et place du template qui vaut pour tout le reste du site.

[b]À noter[/b] : je n'ai pas internationalisé les textes de la boîte. Tout d'abord, je n'en ai pour l'heure absolument aucun besoin. Et puis cet éphéméride est propre à notre calendrier français. Mais bon, c'est probablement un plus à faire... [subtitle]Exemple[/subtitle] Voici un exemple de cette boîte extra sur un site en production. L'intérêt ici de cette intégration étant que l'on récupère l'ensemble des informations css pour l'affichage, on se contente dans le template de définir ce qui doit être affiché.

[title]Améliorations[/title] Vous êtes les bienvenus à proposer vos améliorations. On pourrai par exemple : * Avoir des tables pour d'autres pays que la france * Enrichir et enjoliver le contenu affiché dans la boîte extra * Internationaliser les textes des scripts * ... Et encore une fois, cet article sera mis à jour pour Yacs Martin dès que possible.
Agnès Rambaud
le 8 jan. 2013 à 13:39 GMT
yacs_ephemeride.sql.bz2

[this file has been deleted]

Agnès Rambaud - le 8 jan. 2013 à 13:41 GMT

Hop hop, voici la version 2013 !
Christian, va falloir que je modifie les explications maintenant...


Christian
le 24 oct. 2012 à 10:01 GMT
Et bien voilà je suis devenu un utilisateur de l'éphéméride.


J'ai juste ajouté la fonction dans skin.php et fait un "echo ephemeride();" dans mon template_home


Vous aurez bientôt une présentation de ce nouveau site internet

----- Actupro
quelques sites yacs : création site internet annuaire pro