Un mini agenda ultra simple

Une boucle qui affiche un petit agenda, uniquement à partir de vos articles.

Préambule

Si comme moi, vous n’utilisez pas la date de publication antérieure, vous pouvez utiliser très facilement cette méthode pour gérer un agenda d’évènements.

L’idée est simple : vos articles ont une date de publication. Certains d’entre eux (pas tous) annoncent un évènement futur. Cette date d’évènement est rappelée dans votre article, mais vous aimeriez pouvoir afficher dans un coin une liste de vos futurs événements !

C’est possible grâce à la date de publication antérieure.

En effet, mettez cette date de publication antérieure à la date de l’événement. Les articles sans date de publication antérieure n’apparaîtront pas dans l’agenda, tous ceux qui ont cette date activée apparaîtront.

Facile non ?

Comment faire ?

Activez l’utilisation de la date de publication antérieure à partir de « Administration du site » et « Contenu du site » comme suivant :

Configuration du site

Il ne vous reste qu’à prendre quelques uns de vos article et leur mettre une date de publication antérieure, ca s’ajoute juste en dessous de la date de publication de l’article.

Voici les boucles

Cette première boucle affiche tous les événements FUTURS :

<table>
<BOUCLE_agenda_global (ARTICLES) {tout} {par date_redac} {age_redac <= 0}>
<tr><td valign="top" nowrap>
[Le (#DATE_REDAC|affdate) :]
</td>
<td> <a href="#URL_ARTICLE">#TITRE</a><br> 
[(#DESCRIPTIF)<br>]<br> 
</td></tr>
</BOUCLE_agenda_global>
</table>

Voici un exemple de son résultat :

Agenda

Cette seconde boucle peut servir sur une page de sommaire pour n’afficher que les évènements des 30 prochains jours :

<BOUCLE_agenda (ARTICLES) {tout} {par date_redac} {age_redac <= 0} {age_redac >= -30}>
#PUCE [(#DATE_REDAC|affdate_court) :] <A href="#URL_ARTICLE">#TITRE</A><br> 
</BOUCLE_agenda>

Voici un exemple de son résultat :

Agenda sommaire

Pour aller plus loin

Vous avez une myriade de rédacteurs qui bossent pour vous ? (veinards !)

Ménagez les, et changez ce terme de « date de publication antérieure », qui ne correspond pas à ce nouvel usage.

Créez un fichier ecrire/lang/perso.php3 avec ce contenu :

<?php
    $GLOBALS['i18n_spip_fr']['texte_date_publication_anterieure'] = 'DATE DE L\'EVENEMENT';
    $GLOBALS['i18n_spip_fr']['texte_date_publication_anterieure_nonaffichee'] = 'L\'article n\'a pas de date d\'&eacute;v&eacute;nement.';
?>

Et ceci pour obtenir :

Date de l’événement

Et voilà le travail ! C’est mieux non ?

Evidemment c’est un agenda rudimentaire, mais il a l’avantage de ne pas vous plonger dans le PHP :-) Si cela ne vous suffit pas, de vrais modules d’agenda - plus performants mais plus complexes - ont été développés par d’autres spipeurs :
— voici un squelette d’un agenda qui gère une date de fin d’événement ;
— voici un véritable agenda sous forme de calendrier.

Discussion

17 discussions

  • Bonjour,
    Pour un esprit un peu rigide comme le mien, vos explications apparaissent un peu contradictoires :

    « Si comme moi, vous n’utilisez pas la date de publication antérieure, ............ C’est possible grâce à la date de publication antérieure »..

    Ce qui revient à dire que pour appliquer votre contibution, il faut utiliser la date de publication antérieure. Donc l’intoduction est troublante non ?

    Ne s’agit-il pas plutôt de « Ne pas publier les articles avant la date de publication fixée. » ?
    Ou bien n’ai-je rien compris ?

    Répondre à ce message

  • Bonjour,

    Très bien fait ce petit agenda...

    Je cherche toutefois à faire un agenda qui me permettrait d’afficher plusieurs évènements pour la même date...donc par exemple :

    DATE 1
    - Event 1
    - Event 2
    - Event 3

    DATE 2
    - Event 1
    - Event 2

    Quand on se retrouve avec beaucoup d’évènement dans l’agenda, c’est beaucoup plus lisible !!!

    Est-ce que c’est faisable ?? Comment ??

    Merci

    Répondre à ce message

  • j’ai repris les boucles proposées, mais il y a un mais...

    en effet, cela fonctionne très bien sur ma page sommaire.html
    MAIS nullement sur des pages de rubrique.
    impossible d’obtenir l’affichage exact des dates à venir. Et ça fait trois jours que je planche dessus

    vous y comprennez quelque-chose vous ?

    Alex

    Répondre à ce message

  • 2

    Bonjour,

    Débutante, j’ai réussi à installer sans trop de problème l’agenda sur mon site.
    Cependant, j’aimerais pouvoir personnaliser l’agenda de chaque rubrique en n’affichant que les dates qui la concernent. Je dois forcément rajouter une information mais mes notions sont trop faibles pour savoir où et comment.

    Merci d’avance pour votre aide.

    Sylvie

    • C’est très simple !

      A la place du critère tout indiqué dans les deux exemples de boucles, met le critère id_rubrique pour ne pas sélectionner « tout » mais simplement ce qui a attrait à la rubrique courante !

      Et le tour est joué.

    • Ca marche !!! Merci beaucoup.

      Sylvie

    Répondre à ce message

  • Installation ultra facile ; boucle simple et super pratique !! Merci :-)

    Répondre à ce message

  • 4

    Bonne idée la personnalisation du nom des champs par la création d’un fichier perso.php3 (ecrire/lang/perso.php3)

    Mais à quoi correspond ’i18n_spip_fr’, j’ai jetter un oeuil dans le fichier spip_fr et cela ne correspond à rien que je connaisse...
    J’aimerai personnaliser d’autres champs et donc en savoir un peu plus sur la signification de ’i18n_spip_fr’

    <?php
        $GLOBALS['i18n_spip_fr']['texte_date_publication_anterieure'] = 'DATE DE L\'EVENEMENT';
        $GLOBALS['i18n_spip_fr']['texte_date_publication_anterieure_nonaffichee'] = 'L\'article n\'a pas de date d\'&eacute;v&eacute;nement.';
    ?>

    Merci d’avance
    Cordialement

    • C’est une convention !

      i18n, je ne sais pas d’où ca vient, mais un tableau de langue commence toujours par ce terme

      Ensuite vient le nom du module de langue « public » pour la partie publique, « spip » pour l’interface de rédaction, et d’autres si tu crées des modules de langues perso.

      Ensuite vient la langue courante.

    • François

      i18n = internationalisation
      Il y a 18 lettres entre le i et le n. Nos amis américains devaient trouver ce mot trop long.

    • s t e f

      i18n, je l’ai appris il n’y a pas longtemps, ça veut dire :_
      i[18 caractères]n = internationalisation

      C’est du geek conventionnel ;)

    • s t e f

      (zut j’ai fait n’importe quoi dans le message précédent... les spipeurs savent bien que le « _ » doit aller au début de la ligne suivante, et pas à la fin de la ligne précédente... ne faites pas attention, je vais me réveiller...)

      Je voulais donc dire :

      i18n, je l’ai appris il n’y a pas longtemps, ça veut dire :
      i[18 caractères]n = internationalisation

    Répondre à ce message

  • 1

    Euh ........... et si on a une version monolangue ?

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom