Gastero Prod

  • Aller au menu
  • Aller au contenu
  • Aller au pied de page
  • Accueil
  • Blog
  • Photos
  • Liens
  • Lifestream

Le même agenda que Gastero Prod avec SPIP

Date de publication
9/déc.
2003
Tags
agenda, Gastero Prod, SPIP

Il peut être tentant d’utiliser SPIP pour présenter un agenda d’événements sous forme de calendrier. Plutôt que devoir intégrer un logiciel externe spécialisé, et en attendant que SPIP intègre peut-être un jour un nouveau type de données dédié aux événements, voici un squelette mêlant boucles SPIP et code PHP.

ATTENTION, cette contrib ne semble plus fonctionner avec les versions de SPIP ultérieure à la 1.8.2, ce qui a mené à « La fin de l’agenda Gastero Prod... »

Cet article présente une évolution de la méthode déjà présentée sur le site des contributions pour SPIP : spip_contrib.

PNG - 25.2 ko
Exemple d’agenda
L’agenda de Gastero Prod

De quelles informations avons-nous besoin ?

La première étape consiste à déterminer comment les informations seront stockées dans SPIP, et donc saisies par les rédacteurs.

L’objectif principal étant qu’un rédacteur puisse définir une date à laquelle un événement donné doit avoir lieu, nous avons besoin des éléments suivants :

  • Au moins un champ de type texte ;
  • Un champ de type date.

Pour le champ texte, c’est simple, et nous allons même pouvoir nous régaler. SPIP nous en propose au moins 3 très utiles et systématiquement présents quel que soit le paramétrage du site :

  • le titre,
  • le descriptif
  • et le texte.

La date de publication antérieure ou la vraie date de publication ?

La date de publication d’un article est déterminée automatiquement lors de sa validation, ce qui signifie que l’auteur ne peut pas la préciser à l’avance. Elle peut en revanche être modifiée par les administrateurs une fois que l’article est validé, mais l’auteur initial n’y a plus accès s’il n’est pas lui-même administrateur.

Pour utiliser cette date, il est de plus nécessaire de configurer le site pour que SPIP publie les articles post-datés, ce qui peut être gênant par ailleurs.

Cette date n’est donc pas vraiment utile pour indiquer une date d’événement.

Heureusement, SPIP propose aussi une date de publication antérieure, normalement utilisée pour indiquer à quelle date a été publié un article repris ultérieurement dans SPIP, et qui peut être définie librement par le rédacteur1.

C’est cette date que nous allons utiliser pour définir les événements de l’agenda.

GIF - 8.6 ko
Utilisation de la date de publication antérieure

Organiser les événements

Si l’agenda doit contenir beaucoup d’informations de natures diverses, il peut s’avérer utile de les qualifier (concert, film, réunion, etc.) pour les mettre en évidence et éventuellement ensuite les afficher de manière sélective.

Dans SPIP deux méthodes de classement viennent immédiatement à l’esprit :

  • classement par rubrique et sous-rubriques
  • classement par mot-clé

Pour l’agenda, nous allons utiliser les rubriques, ce qui nous permettra de constituer toute une arborescence pour stocker les articles événements. Cela va nous permettre de filtrer les types d’événements avec une notion de granularité progressive grâce au critère {branche}2.

PNG - 19.8 ko
Une hiérarchie de rubriques pour les thèmes

Dans l’agenda de Gastero Prod, le rubriquage n’est pas très développé, mais il est déjà possible de sélectionner uniquement les événements musicaux, et éventuellement de filtrer encore plus en ne considérant que les concerts.

Notez au passage que les logos des rubriques sont utilisés pour illustrer les événements.

PNG - 7.1 ko
Le rendu de la sélection thématique

Intégrer l’agenda dans la partie publique

Voilà, les événements sont créés dans une arborescence de rubriques thématiques et sont positionnés à une date, passons aux choses sérieuses, l’intégration de l’agenda résultant dans les pages du site.

Pour insérer l’agenda dans votre site, le plus simple est de créer un squelette particulier pour la rubrique de votre agenda.

J’ai par exemple créé le squelette agenda.html sur Gastero Prod, et je l’utilise selon le principe classique de SPIP dans le script agenda.php3.

Revenons calmement sur les parties importantes de ce squelette ...

Les paramètres de navigation d’un mois à l’autre sont passés dans l’URL au travers de la variable date3.

Cela permet à l’agenda de ne récupérer directement en boucle SPIP que les événements du mois donné, alors que dans la version précédente de l’agenda, la sélection se faisait en PHP après une sélection en SPIP de tous les événements. La différence est donc de taille au niveau des performances.

Il faut récupérer tous les événements qui d’une part ont lieu dans le mois courant de cette date, et qui d’autre part font partie de la sélection thématique.

Sachant que la date n’est utilisable que dans une boucle de premier niveau, et que le critère {branche} n’est utilisable que dans une boucle incluse dans une boucle RUBRIQUE, donc au moins de second niveau, il est malheureusement impossible de réaliser la sélection d’événement en SPIP pur.

Tout d’abord, on prépare quelques données qui seront utilisées par la suite :

Ensuite, on rempli un tableau avec la liste des rubriques thématiques retenues :

Puis on récupère dans un nouveau tableau la liste des événements du mois donné4 :

Une fois que l’on a notre tableau rempli de dates et événements, il ne reste plus qu’à l’afficher.

Voici le code brut du tableau représentant l’agenda :

Ce n’est pas ce qu’il y a de plus simple à comprendre, mais ça devrait fonctionner sans problème, donc c’est le principal.

Personnaliser le look de l’agenda

La représentation de l’agenda pouvant difficilement se faire autrement que par un tableau, la personnalisation du look de l’agenda va essentiellement concerner les couleurs et autres caractéristiques du même type.

Il suffit en fait de placer dans une feuille de style les éléments suivants, dont les noms indiquent d’eux-mêmes la fonction :

Les paramètres sont ceux de Gastero Prod, essayez de faire preuve d’initiative et de créer vos propres jeux de couleurs ...

Notes

[1] Vérifiez que vous avez configuré votre site pour gérer ce type de date supplémentaire.

[2] Voir la documentation du critère branche

[3] Le paramètre date est pris en charge automatiquement par SPIP depuis sa version 1.6 dans le contexte des boucles de premier niveau

[4] Et des jours proches des mois précédent et suivant, puisqu’on les affiche ...

Commentaires

Commenter ce billet

RSS

Commentaires déjà déposés

  • 9 février 2005 à 14h12
    Commentaire de flipflip

    Super l’agenda, il manque juste la gestion d’évenement sur plusieurs jours et sur plusieurs mois.

    Répondre à ce message

    • 9 février 2005 à 15h23
      Commentaire de Nicolas Hoizey

      Les événements sur plusieurs jours, ce serait en effet réellement intéressant, mais j’ai des scrupules à utiliser les extras qui ne sont pas encore une fonctionnalité officielle de SPIP, et vont peut-être finir par disparaître.

      Les événements sur plusieurs mois, ce sont des répétitions, je suppose ? Si c’est le cas, il est hors de question de le faire avec SPIP, ça devient vraiment spécifique à un outil de gestion d’agenda.

      Répondre à ce message

      • 10 février 2005 à 08h29
        Commentaire de flipflip

        Pour les événement sur plusieurs jours c’est bon j’ai réussi à intégrer une modification donnée dans les commentaires sur spip-contrib.

        En ce qui concerce ceux qui s’étalent sur plusieurs mois, non ce n’est pas une répétition mais imagine un festival qui dure du 28 février au 3 mars... comment le gérer pour qu’il apparaisse sur février et sur mars ? En fait ce n’est pas tellement la gestion sur plusieurs mois qui pose problème puisque, par exemple, pour février 2005 il apparait le 28 février, le 1, 2, 3, 4, 5, 6 mars sur la même page. C’est plutôt le changement de page qui est problématique.
        Il serait peut-être interressant d’utiliser la date de publication comme date de début de l’événement et la date de publication antérieur comme date de fin de l’événement. Certe on perd l’intéret de savoir quand à été écrit l’article mais pour un agenda est-ce nécessaire ?

        Répondre à ce message

        • 10 février 2005 à 11h03
          Commentaire de Nicolas Hoizey

          OK, je vois effectivement le souci.

          Pour un événement qui couvre juste deux mois, ça peut se faire, il suffit de ramener les événements commençants le mois précédent pour voir s’ils continuent ce moi-ci.

          Par contre, pour des événements plus longs, ce n’est pas franchement pratique, on rique de devoir tout ramener, ce qui sera très négatif pour les performances.

          Pour ce qui est d’utiliser la date de publication, je ne pense pas que ce soit une bonne idée, on peut en avoir besoin pour mettre en évidence les nouveautés. C’est prévu de longue date sur Gastero Prod, mais je n’ai pas encore trouvé le temps ...

          Répondre à ce message

          • 19 mars 2005 à 19h16
            Commentaire de kayou_77

            Bonjour,

            Ne pourrait-on pas créer un champ extra date_fin_event qui permettrait de prendre en compte une période.

            Répondre à ce message

            • 20 mars 2005 à 11h50
              Commentaire de kayou_77

              Bonjour,

              En relisant la discussion, je vois que la possibilité des champs extra a été évitée pour ne pas se trouver en défaut dans une version ultérieure de SPIP.

              Donc mon idée n’est pas la bonne...

              Répondre à ce message

        • 5 mai 2005 à 10h22
          Commentaire de tof

          Ca m’intéresse ça mais dans spip-contrib,il est indiqué que cette modification pour gérer les evénements sur plusieurs jours ne fonctionne pas avec la nouvelle version. N’ayant aucune connaissance en php, je ne risque pas de l’adapter.
          Pouvez-vous m’indiquer ce qu’il faut modifier et comment ?

          Répondre à ce message

  • 17 février 2005 à 10h01
    Commentaire de sklibur

    Bonjour,
    Très bel agenda, que j’ai un peu de mal à faire fonctionner !
    Il ne me manque pas grand chose (j’ai réussi à l’afficher pour la date du jour). Etant débutant et malgré avoir fait moult recherches sur spip.net et spip contrib, je ne comprend pas comment inclure la feuille agenda.html comme page d’affichage de la rubrique spécifique N°10. En effet, l’agenda sur mon site a ce N° de rubrique. Bref, comment comprendre la phrase :

    « Pour insérer l’agenda dans votre site, le plus simple est de créer un squelette particulier pour la rubrique de votre agenda.
    J’ai par exemple créé le squelette agenda.html sur Gastero Prod, et je l’utilise selon le principe classique de SPIP dans le script agenda.php3. »

    Merci d’éclairer ma lanterne...

    Répondre à ce message

    • 22 février 2005 à 18h08
      Commentaire de Nicolas Hoizey

      Il devrait suffire de renommer agenda.html en rubrique-10.html

      Répondre à ce message

  • 11 avril 2005 à 20h59
    Commentaire de Francis

    Bonour,
    J’ai implenté votre agenda avec succès et satisfaction (à 3, on en fait plus :-))

    Il me reste un petit problème...

    Les rédacteurs n’ont pas accès à la date de publication antérieure... Seuls les administrateurs l’ont.

    J’ai du merdu quelquepart...

    Une idée ?

    Merci en tout cas pour cet contrib...

    Répondre à ce message

    • 11 avril 2005 à 21h04
      Commentaire de Francis

      Je me répond moi-même, en utilisant l’interface complète plutôt que simplifiée, ça marche..
      Merci encore...

      Répondre à ce message

  • 25 avril 2005 à 15h37
    Commentaire de tof

    Super et beau boulot, j’adore !

    Juste une question, j’ai donc créé sous spip 1.8 les fichiers agenda.html et php3
    puis les 2 fichiers agenda-thèmes
    et dans ma rubrique pour l’agenda, j’appelle le fichier agenda par un
    INCLURE (agenda.php3) id_rubrique

    Juque là, tout va bien. Votre bel agenda apparaît.
    Mais quand je clique sur « >> » pour passer au mois suivant, tout mon habillage disparaît et je n’ai plus que l’agenda.
    J’ai essayé de remplacer les appels « agenda.php3 » dans votre fichier par « rubrique.php3 » mais là c’est l’inverse.

    N’y connaissant strictement rien en php, pourriez-vous me dire ce que je dois faire, merci ?

    Répondre à ce message

    • 30 avril 2005 à 15h27
      Commentaire de Cécile

      Je pense que j’ai trouvé la « coquille » :
      dans la ligne où il y a
      le lien sur le >> (je n’arrive pas à mettre le code html)
      il faut remplacer le « php echo printf » par « php printf »

      Dis-moi si ça fonctionne

      Cécile

      Répondre à ce message

      • 2 mai 2005 à 21h10
        Commentaire de tof

        Oui, bien vu pour cette coquille, je risquais pas de la trouver celle-là et je te remercie de me l’avoir donnée sur la liste spip.

        J’aiaussi modifié les liens pour garder le reste de ma page :
        « #URL_SITE_SPIP/agenda.php3 ?id_rubrique=#ID_RUBRIQUE....
        est devenu _ »#URL_SITE_SPIP/rubrique.php3 ?id_rubrique=2...

        MAIS, car il y a a un « mais », je n’arrive toujours pas à faire apparaître les évènements dans l’agenda alors que les rubriques apparaissent dans les thèmes.

        Monsieur le concepteur, si vous me lisez ... ;-)

        Répondre à ce message

        • 4 mai 2005 à 18h07
          Commentaire de tof

          je progresse

          Après avoir testé d’autres choses, j’ai essayé de mettre le contenu du fichier agenda.html directement dans le squelette et là Ô miracle, tout fonctionne !

          Reste que je ne comprends pas comment appeler ce fichier avec un inclure.

          J’ai essayé


          Rien n’y fait, j’ai bien l’agenda mais vide !

          Voilà si quelqu’un a une idée, merci !

          Répondre à ce message

  • 15 juillet 2005 à 16h09
    Commentaire de Pascal

    Je viens de mettre en place ce superbe agenda.
    Sur mon site, je rattache les événements à un diocèse. Les 91 diocèses correspondent à 91 mots clés dans un groupe de mots clés intitulé « Diocèses ». Comment afficher le titre de l’événement puis, entre parenthèses, le diocèse, càd le mot clé ?
    Merci de votre aide.

    Répondre à ce message

    • 15 juillet 2005 à 17h05
      Commentaire de Pascal

      L’adresse : http://mission.cef.fr/rubrique39.html

      Répondre à ce message

  • 21 novembre 2005 à 14h49
    Commentaire de leboural

    Bonjour,

    j’ajoute un bravo à la liste déjà longue pour cet agenda. J’ai quand même une question. Lorsqu’il n’y a aucun evenement pour un mois donné, comment faire en sorte qu’il n’affiche pas qu’un horrible « Il n’y a pas d’article à cette adresse »

    Répondre à ce message

    • 21 novembre 2005 à 15h31
      Commentaire de Nicolas Hoizey

      Normalement, ça marchait très bien (je me rends compte à l’instant que celui de ce site ne marche plus du tout !), mais des changements de SPIP ont sans doute impacté ces squelettes très particuliers.

      Je conseille à tout le monde de passer à SPIP 1.8.2 et d’utiliser l’agenda natif, ce sera plus pertinent.

      Répondre à ce message

      • 13 avril 2006 à 15h24
        Commentaire de Tom

        bonjour

        je suis néophyte en ce qui concerne SPIP et je cherche à implementer un module agenda

        je cherche comment faire avec l’agenda natif de spip 1.8.3 mais je ne trouve pas documentation suffisament claire

        pouvez-vous m’aider ?

        Répondre à ce message

      • 13 avril 2006 à 15h24
        Commentaire de Tom

        bonjour

        je suis néophyte en ce qui concerne SPIP et je cherche à implementer un module agenda

        je cherche comment faire avec l’agenda natif de spip 1.8.3 mais je ne trouve pas documentation suffisament claire

        pouvez-vous m’aider ?

        Répondre à ce message

      • 1er avril 2008 à 21h53
        Commentaire de lionel

        Bonjour,
        Je découvre avec ce fil avec surprise,
        j’avais adapté la contribution gasteroprod à mes besoins et à SPIP 1.8.3 puis 1.9.2c sans réaliser qu’un agenda public était présent dans Spip 1.9.2...

        Si cela intéresse quelqu’un je peux bien fournir mon code agenda.html qui fonctionne toujours ...

        a voir sur http://assoalphonseguerin.free.fr/s...

        Merci en tous les cas à gasteroprod !!!

        Répondre à ce message

        • 6 avril 2008 à 11h43
          Commentaire de Nanoute

          Bonjour,

          Je cherche depuis quel que temps à faire fonctionner un agenda tel que celui présent sur votre site, mais en vain. Je serais effectivement intéressée par votre code html, si cela est possible. En vous remerciant.

          Répondre à ce message

  • 28 septembre 2008 à 05h06
    Commentaire de Yemek Tarifleri

    bonjour

    je suis néophyte en ce qui concerne SPIP et je cherche à implementer un module agenda

    je cherche comment faire avec l’agenda natif de spip 1.8.3 mais je ne trouve pas documentation suffisament claire

    pouvez-vous m’aider ?

    Yemek Tarifleri

    Répondre à ce message

    • 28 septembre 2008 à 15h05
      Commentaire de Nicolas Hoizey

      Il faudrait plutôt vous tourner vers la dernière version stable de SPIP, la 1.9.2e.

      Des articles sur SPIP Contrib doivent pouvoir vous aider.

      Répondre à ce message

Partager

Pour faire un lien vers cet article, vous pouvez utiliser soit son URL canonique soit son URL courte :

http://gasteroprod.com/a320

Billets avec les mêmes tags

  • Gastero Prod 4, les standards et l’accessibilité
  • Plus de flux RSS
  • Gastero Prod maintenant sur SPIP 1.8.2 pr2... en attendant plus
  • La fin de l’agenda Gastero Prod...
  • Tentative d’ouverture des commentaires

Derniers billets

  • Faut-il continuer à supporter Internet Explorer 6 ?

    Article initialement publié dans le blog de Clever Age.

    On ne va pas ergoter sans fin, tout le monde doit maintenant savoir que Internet Explorer 6 — IE6 pour les intimes — est un navigateur obsolète et dangereux. Et pourtant, certains continuent à l’utiliser. Faut-il les en dissuader, refuser de leur fournir son support, aller même jusqu’à leur empêcher l’accès, ou faut-il continuer à supporter (les faiblesses de) ce navigateur ?

    Date de publication
    22/juillet
    2010
    Tags
    Clever Age, Internet Explorer, standards
  • Les inscriptions à Paris Web 2010 sont ouvertes !

    Paris Web 2010, c’est la cinquième édition de ce rendez-vous français annuel, devenu incontournable, pour se tenir informé des bonnes pratiques de développement Web. Go go go !

    Date de publication
    2/juillet
    2010
    Tags
    Paris Web, qualité, standards
  • Faciliter la reprise de tweets (les retweets) à l’ancienne sur Twitter

    Même si Twitter a mis en place depuis maintenant un certain temps un mécanisme natif de retweets1, je préfère souvent continuer à utiliser les « RT » traditionnels, qui laissent la possibilité de commenter le tweet initial, ce que ne permet pas le retweet officiel. Une règle qui me paraît essentielle pour faciliter le retweet à l’ancienne, c’est de prévoir une taille de tweet suffisamment faible pour que le retweeteur voit son travail facilité, surtout si le tweet initial ne contient que très peu de mots inutiles.

    Date de publication
    14/juin
    2010
    Tags
    Twitter

Derniers commentaires

  • R03ER7 sur Le Jailbreak de l’iPhone ou de l’iPod Touch est-il légal ? : « Jailbreaker ne veut pas dire voler » mais plutôt « Permettre l’installation d’applications quand (...)

  • Sur Citation d’Oscar Wilde : sauf qu’il me semble qu’en vrai c’est une phrase de A de St Exupery !

  • Scandale sur Afficher les favicon dans la barre personnelle de Firefox sous Mac OS : Pour ceux qui, comme moi, manquent de place dans leur barre personnelle, j’ai aussi ajouté le (...)

  • Scandale sur Afficher les favicon dans la barre personnelle de Firefox sous Mac OS : merci pour le tuyau, ça marche. manque juste dans le tutoriel le chemin ou mettre le fichier, (...)

  • Nicolas Steinmetz sur Faut-il continuer à supporter Internet Explorer 6 ? : Parce que certaines entreprises sont encore sous WinNT / Win2000 à cause d’applications métiers ? (...)

  • ThierryD sur Prendre des éclairs (d’orage) en photo : Bonjour, Je me permet d’intervenir dans ce post pour vous faire part de ma technique pour (...)

  • ventrea sur Backup d’un Mac sur un NAS facile et sans bidouille, c’est possible ? : Time machine est pris en chagre par les dernières versions de firmware sur les nas Qnap (...)

  • Sur Une sauvegarde de fichiers en ligne très simple pour pas cher : Oui, j’ai le même genre et c’est vraiment pratique :) : https://www.axalot.fr

  • Sur Google Chrome sur Mac, bilan mitigé : > Pas de barre de titre, donc je ne connais pas le nom de la page dès que j’ai plus de 5 onglets (...)

  • Maurice sur Backup d’un Mac sur un NAS facile et sans bidouille, c’est possible ? : Par contre, je ne pense pas que ça résolve le problème de performance lorsque la taille du backup (...)

Nuage des tags les plus fréquents

  1. 3D
  2. 404
  3. accessibilité
  4. agenda
  5. Ajax
  6. animal
  7. animation
  8. Apple
  9. bande dessinée
  10. blog
  11. Blogmarks
  12. Blu-Ray
  13. bookmarks
  14. Canon
  15. cinéma
  16. citation
  17. Clever Age
  18. client riche
  19. concert
  20. couleur
  21. création
  22. CSS
  23. Daft Punk
  24. développement
  25. design
  26. dessin animé
  27. DotClear
  28. e-commerce
  29. ergonomie
  30. FeedBurner
  31. film
  32. Firefox
  33. Flickr
  34. fun
  35. Gastero Prod
  36. Google
  37. Greasemonkey
  38. hébergement
  39. HD
  40. humour
  41. hype
  42. IBM
  43. image
  44. informatique
  45. Internet
  46. iPhone
  47. JavaScript
  48. jeux
  49. jQuery
  50. Les Nuls
  51. Linux
  52. littérature
  53. livre
  54. logiciel
  55. logiciel libre
  56. loisirs
  57. Mac
  58. macro
  59. Microsoft
  60. moi
  61. Mozilla
  62. musique
  63. NetBook
  64. ordinateur
  65. oups
  66. photo
  67. PHP
  68. phpHeaven
  69. phpMyChat
  70. PicLens
  71. presse
  72. publicité
  73. recherche
  74. RewriteRule
  75. RSS
  76. sémantique
  77. SEO
  78. société
  79. Sony
  80. SPIP
  81. standards
  82. tag
  83. télévision
  84. vidéo
  85. Web 2.0
  86. Windows
  87. Yahoo !

A propos

L'auteur

Dans la vie professionnelle, co fondateur et Directeur Technique du cabinet de conseil nouvelles technos Clever Age, et dans la vie extra-professionnelle, créateur et animateur de Gastero Prod, flickRate et Ergothon, responsable technique de Marketing Planet et d’autres sites web, passionné d’Internet, de cinéma, de littérature, de musique ...

L'outil
Ce site est réalisé avec le logiciel libre de gestion de contenus Web SPIP en version 2.1.2 SVN [16020]

Identité 2.0

Vous pourrez aussi me trouver sur ces différentes communautés en ligne :

Réseaux sociaux
Diigo, Facebook, LinkedIn, Twitter
Photo
deviantART, Flickr, JPG Magazine, RedBubble
Geek stuff
GitHub, Ohloh, Userscripts.org
Autres
La musique sur Last.fm, Les livres sur Goodreads

Blogoliste

Proches
  • Jacqueline Oud
  • Marron show
  • Glagla Dot Org
  • Cédric Hoizey
Relations
  • Chez Xavier - Thoughts
  • La Case de l’Oncle Tom
  • Maître shteshitsu
  • Prendre un Café
  • Un Electron Libre...
Autres
  • Clever Age
  • Marketing Planet
Creative Commons License

Sauf mention explicite, tous les contenus de ce site sont la propriété de Nicolas Hoizey, et sont sous licence Creative Commons « Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique » version 2.0 adaptée à la France.