Gastero Prod

  • Aller au menu
  • Aller au contenu
  • Aller au pied de page
  • Accueil
  • Blog
  • Photos
  • Liens
  • Agenda
Vous pourriez préférer naviguer sur la version spécifique iPhone / iPod Touch de ce site...

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 ...

RSS

Derniers billets

  • Flickr en passe de jeter Yahoo ! Maps pour Google Maps ?

    Dans une nouvelle version de Flickr pour mobiles1, Flickr propose une fonctionnalité permettant de voir les photos géolocalisées prises près de là où vous êtes. Surprise, ce sont des cartes Google Maps qui sont utilisées, alors que le site Flickr utilise plutôt d’habitude des cartes Yahoo ! Maps2.

    Date de publication
    19/juin
    2009
    Tags
    Flickr, géolocalisation, Google, iPhone, Yahoo !
  • Shameless self promotion

    Je rêve de voir un jour une de mes photo sélectionnée pour être publiée dans un magazine, et là je sens que j’ai la candidate idéale... please, heeeeeeelp !

    Date de publication
    5/juin
    2009
    Tags
    moi, photo, presse
  • DTC

    Amis g33k5, vous connaissez forcément l’illustre collecteur de bons mots bash.org et son pendant français bashfr.org. Vu qu’il était compliqué de ce souvenir que l’adresse de ce dernier n’est pas bash.fr, ni bashfr.com, ni même bash-fr.org, etc.1, l’équipe a décidé de migrer vers DansTonChat.com — ce qui donne DTC en abrégé, les malins — et sort du même coup un livre en forme de best of2.

    Date de publication
    29/mai
    2009
    Tags
    copinage, humour, livre

Nuage des tags les plus fréquents

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

Identité 2.0

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

Réseaux sociaux
Copains d’avant, Diigo, Facebook, LinkedIn, netvibes, Twitter, Ziki
Photo
deviantART, Flickr, JPG Magazine, Photo.net
Geek stuff
Ohloh, Userscripts.org
Autres
La musique sur Last.fm, Le vin sur Cork’d, Les livres sur Shelfari

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.