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.

Dernière modification de cette page le 26 octobre 2006

Discussion

17 discussions

  • 1

    Juste pour préciser que dans la version 1.9.2 pour changer ce terme de « date de publication antérieure » il faut modifier le fichier ecrire/lang/ecrire_xx.php (xx étant le code de la langue)
    Lignes 865 et 866

    Merci beaucoup pour la contrib

    • J.Liénard

      Pour éviter de remplacer tous le fichier ecrire/lang/ecrire_xx.php, il est préférable de creer un fichier
      local_xx.php dans le répertoire « squelettes », avec seulement ce qui était proposé de mettre dans ecrire/lang/perso.php3

      Testé avec SPIP 1.9.2

    Répondre à ce message

  • Bonjour,

    Je cherchais justement autre chose que le plugin agenda, et ces quelques lignes que j’ai intégré dans ma colonne de droite me va à ravir.

    Je l’ai installé avec spip 1.9.3 dev, il marche bien et du premier coup.

    Autrement dit il est ancien mais toujours d’actualité

    @+ et merci pour cette contrib.

    Répondre à ce message

  • mizushima

    si la fonction de limite de date par exemple :
    age_redac <= 0 age_redac >= -90
    ne renvoie aucune réponse, autrement dit il n’y a pas d’évènement ou d’article à venir actuellement à afficher dans l’agenda,
    est-il possible d’ajouter un petit message après le mot
    [Agenda :]
    qui dirait par exemple :
    « Pas d’évènement à venir actuellement »
    et qui montrerait aux visiteur que, si tout de suite il n’y a rien d’afficher, il y a bien à cet emplacement parfois des dates d’évènements affichées, plutôt que un vide après [Agenda :] ?

    Répondre à ce message

  • salut
    je suis vraiment un debutant dans le monde spip, je souhaite integrer cet agenda mais je sais pas ou mettre les deux premieres boucles

    merci de votre aide

    Répondre à ce message

  • bonjour, super contrib.
    j’essayais de bidouiller un autre agenda pour obtenir une liste des evenement à venir en sommaire ça marchait pas alors que là
    houa une petite boucle de rien et hop.
    en revanche y se passe quelque chose de bizarre avec la modif d’ecriture de l’espace privé elle modifie bien la date de redaction anterieur en date de l’evenement. mais la date ne s’affiche plus sur la page d’acceuil. la boucle s’effectue correctement j’ai bien les evnmt pour le mois à venir mais la
    date devient date_fmt_jour_mois lorsque je met le fichier local_fr.php3 dans le dossier ecrire lang .
    si je le met à la racine c’est toutes les dates du site qui devienne date_fmt_jour_mois
    et sije le place dans le dossier squellette même reaction de l’ecurueil ?

    Répondre à ce message

  • 4

    Tant qu’à faire j’ai également ajouté la ligne suivante au fichier « perso.php3 » :

    $GLOBALS[’i18n_spip_fr’][’info_date_publication_anterieure’] = ’Date de l\’événement :’ ;

    Du coup, le menu permettant l’activation de la « date de publication antérieure » se trouve également modifié en « date de l’événement ».

    je sais, c’est une toute, toute petite contribution :-)

    • Ooops, on dirait que l’astuce ne marche plus avec SPIP 1.8. Je me retrouve avec le texter « date de publication antérieure ».

      Y a-t-il des modifications à effectuer ou dois-je directement modifier le fichier « ecrire_fr.php3 » ?

    • le fichier ecrire/lang/perso.php3 n’existe plus dans la version 1.8. On utilise à la place local.php3 ou local_xx.php3 (avec xx, le code de la langue). Ce dernier fichier pouvant être placé dans ecrire/lang, mais aussi à la racine du site, dans squelettes/ voire dans $dossier_squelettes.

    • Merci beaucoup pour l’info, cela fonctionne parfaitement maintenant !

    • balalou

      Bonjour,
      j’aimerais savoir si il y a possibilité de personnaliser une (ou plusieurs) rubrique(s) dans l’espace privé, j’ai trouvé un vieux post mais qui ne fonctionne plus !

      Cela consistait à mettre agenda_fr.php3 au lieu de perso_fr.php3 si la rubrique se nomme agenda.

      Faudrait-il ajouter qq chose à mes_options.php3 but quoi ?
      J’ai chercher mais je ne trouve rien même sur le spikini !

      merci de votre aide

    Répondre à ce message

  • Fabrice

    Bonjour,

    Je viens de passer en version 1.8 et suivant les conseils j’ai récréé l’ancien fichier perso.php3 en local_fr.php3 mais j’ai alors la disparition des dates et des boutons RECALCULER LA PAGE et MODIFIER CETTE RUBRIQUE.
    En fait je crois que je perd toutes les traductions.

    Une idée de ce qui se passe.

    Merci de votre aide.

    Répondre à ce message

  • 2
    Pierrick

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

    Mais cette personnalisation s’applique à toutes les rubriques. Peut-on trouver une solution pour ne personnaliser QUE le champ d’une seule rubrique (et ses sous-rubriques). Dans mon cas, la rubrique AGENDA ?

    • oui : avec un fichier agenda_fr.php3

    • et si je n’ai pas de nom de rubrique spécifique ? puis-je lui dire rubrique-16_fr.php3 (semble que non parce que ça ne fonctionne pas...)

    Répondre à ce message

  • Bonjour, je suis bien tenté par l’agenda proposé ; je débute en « spip », css et autre joyeuseté php, mais là, je brasse sur l’introduction d’un agenda tel que vous le proposez et je n’avance pas trop. Le but, mettre l’agenda dans une rubrique seulement sous forme de « la première boucle » (un tableau ? je prévoie de la faire sans tableau, petit T.P. css ...), et sous une forme ressemblant à l’image exemple que vous donnez sur la page d’accueil.
    Mais, je ne sais plus trop où placer mes boucles (dans quel fichier et où dans le deux cas ?) ? je le vois bien sur d’autre site mais je n’arrive pas à le faire moi-même ...
    Et comment faire apparaitre le texte issue de la boucle dans ma petite image d’agenda (typiquement l’exemple donné) ?
    Voilà, questions de débutant, il me manque encore un peu de guide,
    En tout cas merci de votre apport sur spip...

    Répondre à ce message

  • je suis un néophyte en la matière. Si j’arrive à avoir les dates comme indiquées par moi, il m’est impossible d’obtenir le petit agenda (seconde série de boucle) très design. Quelqu’un a t-il une idée de la prcédure à suivre. merci par avance.

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

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