SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

274 Plugins, 192 contribs sur SPIP-Zone, 141 visiteurs en ce moment

Accueil > Dates, calendriers et agendas > Calendriers > Simple Calendrier > Simple Calendrier v1

Simple Calendrier v1

16 septembre 2011 – par Julien Lanfrey – 13 commentaires

25 votes

Cette contribution surcharge des fichiers et/ou des fonctions de SPIP : il n’est donc pas garanti qu’elle fonctionne avec d’autres contributions surchargeant lesdits fichiers et/ou fonctions. Sa compatibilité avec les versions de SPIP est donc assez restreinte.

Le plugin « simple calendrier » permet de gérer des évènements en ajoutant un nouvel objet éditorial dans l’administration de votre site SPIP. Il peut constituer une alternative au plugin Agenda 2.

Installation du Plugin

Avant d’installer ce plugin, veuillez lire attentivement la section "compatibilité avec d’autres plugins".

Le plugin s’installe comme tous les autres, en ajoutant son dossier dans le dossier plugins/ et en l’activant dans l’espace privé. En savoir plus.

Notez que les plugins JqueryUI pour SPIP et Saisies sont nécessaires.

Mises à jour du plugin

  • v1.1 - 16/09/2011
  • v1.2 - 01/10/2011
  • v1.2.2 - 20/10/2011

voir le détail en bas de page

Utilité du plugin

Ce plugin fournit un nouvel "objet éditorial" : l’évènement.
Il permet donc de créer des évènements, au même titre que l’on peut créer des articles ou des brèves.

Ce plugin permet de gérer différents scénarios :

  • Un simple calendrier pour tout le site
  • Un calendrier ou les évènements sont classés par thématique grâce aux mots clés
  • De multiples calendriers, en activant l’option permettant de raccrocher l’évènement à un secteur ou à une rubrique.

Ce plugin ne permet pas :

  • La gestion des heures/minutes (mais le descriptif peut dans certains cas suffire...)
  • La gestion des répétitions.
  • Une quelconque notion d’inscription.
  • Et surement plein d’autres choses !

Pour ces derniers points, il existe un autre plugin très complet et éprouvé, de gestion d’évènements nommé Agenda 2.

Pourquoi ce nom ?

L’objectif de ce plugin est de fournir une solution de gestion d’évènements qui soit le plus simple possible à l’utilisation. Dans beaucoup de cas, il suffira de créer quelques évènements, de renseigner quelques champs de base. Puis d’utiliser une boucle EVENEMENTS pour les afficher. Les interfaces utilisateurs permettant cela sont donc minimalistes, et au plus proche de l’ergonomie de SPIP.

Ce plugin possède certaines options (comme par exemple, le rattachement aux rubriques) qui ne sont pas activées lors de son installation. Les interfaces utilisateurs s’adaptent aux options choisies afin d’avoir toujours le strict nécessaire (comme SPIP le fait déjà avec ses propres objets depuis quelques temps déjà).

Fonctionnalités du plugin

Un évènement comporte les champs suivants :

  • titre (requis)
  • date de début (requis)
  • date de fin
  • lieu
  • descriptif
  • texte
  • lien (v1.2)

Par ailleurs, il est possible d’associer à l’évènement :

  • des mots clés
  • un secteur / une rubrique (option)
  • un logo
  • des fichiers (images/documents)
  • la référence d’un article ou d’une brève (option)

Une page de configuration dédiée à ce plugin permet de préciser :

  • Qui a le droit de créer des évènements (administrateurs / rédacteurs).
  • Si un évènement peut être affecté à un secteur ou une rubrique ou non.
  • Les champs à rendre disponibles sur le formulaire de saisie. (v1.2)
  • Si les articles / brèves peuvent « être épinglés » dans le calendrier (ce qui peut permettre d’utiliser le texte de l’article/de la brève comme contenu textuel pour l’évènement. On parlera de texte par référence).
  • Le choix d’un thème pour le mini-calendrier de l’espace public.

Liste des évènements :
Dans l’espace privé, la liste de tous les évènements est accessible via le menu Edition. Cette page permet aussi :

  • la création de nouveaux évènements
  • de voir la répartition des évènements par année et par mois.
  • Pour les administrateur, un lien "Démo" permet de comprendre l’utilisation de la boucle EVENEMENTS.

Par défaut, la liste affichée est filtrée pour n’afficher que les évènements à venir.

Création d’évènements :
Les évènements peuvent être créés :

  • depuis la liste des évènements (accessible via le menu Edition)
  • depuis une rubrique si l’option "affectation aux rubriques" est activée.
  • depuis un article ou une brève si l’option "texte par référence" est activée.

Note : Pour les 2 derniers points, il s’agit simplement de raccourcis permettant de pré-remplir certains champs.

Quelques captures d’écran

La page de configuration. Dans Configuration -> Fonctions avancées :
Page de configuration du plugin

La liste des évènements, accessible depuis le menu Edition :
Page de liste des évènements

Si l’affectation aux rubriques est activée, la liste peut être restreinte sur une rubrique donnée.
Page de liste des évènements restreinte à une rubrique

et sur la rubrique en question :
Portlet sur la page rubrique

La création d’un évènement avec les paramètres par défaut :
Création d'un évènement

Avec les options "affectation aux secteurs" et "texte par référence" activées :
Création d'un évènement

Si l’option "Texte par référence" est activée, ce que l’on peut voir sur un article ou une brève :
Portlet sur la page article/breve

L’évènement en consultation. Ici dans le cas ou il est affecté à une rubrique :
Visualisation d'un évènement

La page Démo à destination des développeurs :
Script de démo !

Dans les squelettes

Une boucle :

<BOUCLE_evenement(EVENEMENTS)> ... </BOUCLE_evenement)

Des critères spécifiques :

  • {a_venir} : Les évènements en cours et à venir.
  • {du_mois} : Les évènements du mois courant.

Des balises :

  • Dans le cadre d’une boucle EVENEMENTS :
    • #ID_EVENEMENT
    • #TITRE
    • #URL_EVENEMENT
    • #LIEU
    • #DATE_DEBUT
    • #DATE_FIN
    • #DATE : date de publication
    • #LOGO_EVENEMENT
    • #DESCRIPTIF
    • #TEXTE
    • #LIEN_TITRE : titre du lien (v1.2)
    • #LIEN_URL : adresse du lien (v1.2)
    • #TYPE : Type d’objet pointé quand l’option "Texte par référence" est activée.
    • #ID_OBJET : identifiant de l’objet pointé quand l’option "Texte par référence" est activée.
  • Hors contexte :
    • #SIMPLE_CALENDRIER : Affiche un mini calendrier du mois en cours. Sur ce calendrier, les dates de début d’évènement sont mises en valeur.

Des filtres :

  1. [(#DATE_DEBUT|simplecal_affdates{#DATE_FIN})]

|simplecal_affdates : Pour un affichage automatique des dates sous la forme "du... au..." ou "le...", etc.

  1. [(#TYPE|simplecal_afftexteref{#ID_OBJET})]

|simplecal_afftexteref : Si l’option "Texte par référence" est activée : Permet de récupérer le texte de l’objet pointé.

Un nouveau squelette :

Un évènement est affiché grâce au squelette evenement.html au même titre que le squelette article.html affiche un article.

Exemple pour le squelette evenement.html :

  1. <BOUCLE_evenement(EVENEMENTS){id_evenement}>
  2.     <h1>#TITRE</h1>
  3.     <h2>#LIEU</h2>
  4.    
  5.     <!-- Affichage sympa de type 'de telle date à telle date' -->
  6.     <h3>[(#DATE_DEBUT|simplecal_affdates{#DATE_FIN})]</h3>
  7.        
  8.     #LOGO_EVENEMENT
  9.    
  10.     #DESCRIPTIF
  11.    
  12.     <!--
  13.     Affichage par ordre de priorité :
  14.     1 - #TEXTE : Le texte de l’événement s'il existe
  15.     2 - #TYPE/#ID_OBJET : Sinon, le texte de l'objet référencé s'il existe (option)
  16.     -->
  17.     [(#TEXTE|?{ #TEXTE,
  18.        [(#TYPE|?{ [(#TYPE|simplecal_afftexteref{#ID_OBJET})],
  19.            ''})]
  20.    })]
  21.     <!-- Lien vers un site web (v1.2) -->
  22.     [(#LIEN_URL|oui)
  23.         <a href='#LIEN_URL'>[(#LIEN_TITRE|?{#LIEN_TITRE, #LIEN_URL})]</a>
  24.     ]
  25.    
  26.     <!-- Les mots clés rattachés s'il y en a -->
  27.     <BOUCLE_mot(MOTS){id_evenement}>
  28.         #TITRE
  29.     </BOUCLE_mot>
  30.    
  31. </BOUCLE_evenement>

Personnalisation du mini-calendrier

Dans l’espace privé, lorsque l’on crée un évènement, la date de début et la date de fin peuvent être saisies manuellement ou en cliquant sur la petite icône à droite du champ. Un mini calendrier s’ouvre alors permettant de choisir la date. Ce Widget "datepicker" provient de la librairie jquery.ui.

Dans la partie publique, il est possible d’afficher un mini-calendrier en utilisant la balise #SIMPLE_CALENDRIER. La structure (html) de ce mini-calendrier est la même que celle du datepicker vu précédemment.

Cela permet d’utiliser les mêmes feuilles de styles. Et c’est pourquoi dans la configuration du plugin (Configuration -> Fonctions avancées), vous pouvez choisir un thème pour la partie publique.

Où se trouvent ces thèmes ?
Chaque thème fait l’objet d’une feuille de styles dans le dossier plugins/simple-calendrier/prive/css/datepicker. Les thèmes déjà embarqués dans le plugin proviennent du site http://jqueryui.com/themeroller.

Comment créer un nouveau thème ?
Réponse : à la main, en dupliquant une feuille de styles existante et en l’adaptant.

Pour vous aider, vous pouvez utiliser le site http://jqueryui.com/themeroller. Une fois votre style défini, il ne vous reste plus qu’a reporter les valeurs des couleurs (bordure, fond, texte) dans la feuille de styles que vous aviez précédemment dupliquée.

Compatibilité avec d’autres plugins

Plugin Agenda 2
100% incompatible ! Ne cherchez jamais à faire cohabiter ces 2 plugins. Simple calendrier est une alternative. Il faut donc choisir. Vous pouvez voir les fonctionnalités du plugin Agenda 2 à cette adresse.
Notez bien qu’aucun mécanisme de migration d’Agenda2 vers simple-calendrier n’est prévu. Ne cherchez pas non plus à installer ce plugin après avoir désactivé l’autre. Les tables sql portant le même nom, vous risqueriez de tout perdre... Pour installer simple-calendrier, vous devez vous assurez que le plugin Agenda2 est désinstallé, c’est à dire, que ses tables SQL sont supprimées de la base.

Plugin corbeille
Les évènements en statut "à la poubelle" peuvent être gérés par le plugin corbeille

Plugin bandeau
Lien d’accès à la liste des évènements dans le menu édition. (v1.2)

Plugin mini-bandeau
Lien de création rapide dans la partie publique. (v1.2.2).

Problème connu. Pour que le mini-bandeau s’affiche côté public, il faut supprimer le fichier formulaires/administration.html du plugin ’simple calendrier’

Plugin Acces restreint (A.R)
Le plugin simple-calendrier est compatible avec ce plugin. La visibilité des évènements est soumise aux règles définies par le plugin A.R. (Aussi bien côté public que côté administration)

  • Problèmes connus :
    • L’installation du plugin A.R peut provoquer le crash des boucles EVENEMENTS.
    • On peut aussi avoir un crash et un message d’erreur de type "fonction déjà définie".
  • Solutions :
    • Editez le fichier public/acces_restreint.php du plugin A.R. Dans le "case evenement" : Ajouter un "break".
    • Editez le fichier inc/acces_restreint_autoriser.php du plugin A.R. et renommer la fonction ’autoriser_evenement_voir’ (en ’autoriser_evenement_voir_inutilise’ par exemple...)
    • Il faut ensuite vider le cache SPIP

Note : ces modifications nécessaires dans le plugin A.R. n’ont pas de conséquence sur son fonctionnement. Le code initial étant prévu pour un usage du plugin Agenda2.

Bugs connus et solutions

LOGO :
-  SPIP 2.1.0 et 2.1.1 : La boite permettant de gérer le logo n’a pas de titre.
-  SPIP 2.1.2 et supérieur : Il y a un léger problème d’affichage du titre "LOGO DE l’EVENEMENT". Ce dernier disparait suite à un upload ou une suppression de logo. Il ré-apparait si on actualise la page. Pour corriger cela : voir commentaire dans exec/evenement_voir.php (rechercher à ’logo’)

Accès restreint :
Crash possible de la boucle EVENEMENTS.
Crash possible lié à une fonction déjà définie.
Voir solution dans la section "Compatibilité avec d’autres plugins"

Petit bouton d’administration dans la partie publique :
Dans la partie publique, lorsqu’on se trouve sur un article et qu’on est connecté, on peut voir un petit bouton "article123" en haut à droite qui pointe sur l’article en question dans la partie privée.

Il est possible de faire la même chose pour les évènements. Pour cela :

  • Ouvrir le fichier /ecrire/balise/formulaire_admin.php
  • Se rendre sur la fonction admin_objet()
  • Ajouter le terme ’evenement’ dans le foreach (après ’breve’ par exemple).

Mini bandeau :
Le mini bandeau ne s’affiche pas côté public.
Voir solution dans la section "Compatibilité avec d’autres plugins"

Note technique :

  • Plugin développé sur spip 2.1.2
  • Plugin testé aussi sous spip 2.1.0, 2.1.1, 2.1.9, 2.1.10
  • Plugin déjà utilisé sur des hébergements OVH perso et pro.
  • Plugin non testé avec des bases de données autres que MySQL.

Les tables suivantes sont ajoutées à l’installation du plugin :

  • spip_evenements
  • spip_mots_evenements
  • spip_auteurs_evenements

Certains fichiers du core sont redéfinis dans ce plugin :

  • exec/auteur_infos.php : ajout d’un pipeline "auteur_infos_interventions" - pour avoir la liste des évènements sur la fiche de l’auteur
  • exec/menu_navigation.php : ajout de la liste des événements proposés (que l’on peut voir dans le bandeau section colorée - 2eme bouton...)
  • plugins/simple-calendrier/formulaires/administration.html : ajout, côté public, du petit bouton d’accès à l’évènement dans l’espace privé.

Remerciements :

Brièvement :

  • aux collègues du boulot, pour leurs tests et réactions.
  • à Archi02 pour son Plugin Vu ! - car c’est par l’étude de ce plugin que j’ai démarré !
  • à Matthieu Marcillaud pour ses tutoriels et son initiative du site programmer. Indispensable référence ! et bon complément du site spip.net
  • et à la sympathie de la communauté SPIP bien sûr, chez qui on trouve toujours quelqu’un pour répondre à une question.

Ce plugin en action :

Historique des mises à jour

v1.1 - 16/09/2011

  • Suppression de la librairie embarquée jquery-ui, remplacée par une dépendance au plugin SPIP du même nom.
  • Suppression de la possibilité de choisir un thème pour le « datepicker » de l’espace privé (lié au point précédent).

v1.2 - 01/10/2011

  • Compatibilité avec le plugin bandeau (lien dans le menu édition).
  • Ajout de 2 champs : lien_titre et lien_url pour permettre de préciser l’adresse d’un site web sur l’évènement en question.
  • Ajout d’un bloc de configuration permettant de préciser quels champs doivent être disponibles sur le formulaire de modification.

v1.2.2 - 20/10/2011

  • Amélioration compatibilité avec le plugin bandeau (raccourcis rapide)
  • => compatibilité avec le plugin mini bandeau - cf. section "bugs connus et solutions"
Retour en haut de la page

Vos commentaires

  • Le 26 septembre 2011 à 01:26, par Corto Maltese En réponse à : Simple Calendrier v1

    très bon plugins, une bonne alternative à agenda 2
    idée d’évolution comme ça en passant :
    serait-il possible de l’intégré au plugin bandeau pour qu’il soit visible dans le menu édition

    merci

    • Le 26 septembre 2011 à 19:48, par Julien Lanfrey En réponse à : Simple Calendrier v1

      oui, ce sera bon pour la prochaine version. Correction disponible sur le SVN...

    • Le 2 octobre 2011 à 11:38, par Julien Lanfrey En réponse à : Simple Calendrier v1

      Note : en place depuis la v1.2

    • Le 18 octobre 2011 à 21:05, par Corto Maltese En réponse à : Simple Calendrier v1

      merci beaucoup de cette amélioration

      par contre le plugin « calendrier simple » fait planter le plugin « minibando »
      j’ai tourner ça dans tous les sens, et je n’arrive pas comprendre pourquoi.

      aurais-tu une idée ?

    • Le 20 octobre 2011 à 18:55, par Julien Lanfrey En réponse à : Simple Calendrier v1

      oui, c’est corrigé à priori sur la nouvelle version v1.2.2
      + voir documentation section « compatibilité avec d’autres plugins »...

    Répondre à ce message

  • Le 14 octobre 2011 à 18:06, par luc En réponse à : Simple Calendrier v1

    Pour éviter la surcharge (gênante) de « exec/auteur_infos.php », on pourrait utiliser directement le pipeline "affiche_milieu", en remplaçant dans la fonction simplecal_affiche_milieu la ligne (116)

    1.    if ($exec == 'auteur_infos_interventions'){

    par

    1.     if ($exec == 'auteur_infos'){

    C’est presque "prêt !
    Par contre, c’est moins "beau". La liste des événements s’affiche dans le bloc "auteur", au-dessus de la liste des articles.

    Peut-être y-a-t-il mieux ?

    Par ailleurs, j’ai essayé de rendre public le formulaire d’ajout d’événements, mais je galère trop avec les variables calculées dans le code php (#ENVconfig_rubrique). Peut-être en utilisant directement les valeurs dans la table des metas avec #CONFIG ?

    • Le 14 octobre 2011 à 19:38, par Julien Lanfrey En réponse à : Simple Calendrier v1

      C’est le pipeline ’auteur_infos’ que j’avais utilisé initialement avant d’opter pour la définition de mon propre pipeline car je souhaitais un affichage standard... J’ai développé ce plugin pour un fonctionnement sur SPIP 2.1.2 qui ne permettait pas ce genre d’affichage. Peut être est-ce venu sur des versions plus récente de la branche 2.1. Je n’ai pas vérifié.

      Si la surcharge de ce fichier vous pose pb, je vous suggère de le supprimer puis de reporter la définition du pipeline ’auteur_infos_interventions’ dans votre version de SPIP... (cf. commentaires dans le fichier surchargé).
      Note : plus de surcharge sous la version SPIP 3 en cours de réalisation

      Pour la modification depuis la partie publique, je n’ai pas essayé. Par contre l’utilisation du #CONFIG semble plus simple en effet que ce que j’ai fait. Je vais jeter un oeil pour essayer de simplifier tout ça. Merci.

    Répondre à ce message

  • Le 22 septembre 2011 à 17:13, par ? En réponse à : Simple Calendrier v1

    Est-il possible de faire commencer la semaine le dimanche comme il est d’usage en Amérique du Nord ?

    Merci
    RP

    • Le 23 septembre 2011 à 00:29, par Renée Picard En réponse à : Simple Calendrier v1

      Dans plugins/simplecalendrier/balise/simplecalendrier.php
      J’ai déménagé la ligne 125

      1. $s .= $rc.'    <th title="'.ucfirst(_T('date_jour_1')).'" class="ui-datepicker-week-end">'._T('simplecal:date_dimanche_abbr').'</th>';

      avant celle du lundi. Cela fonctionne pour changer l,ordre des jours mais les dates ne suivent pas..

      Merci de m’aider.

    • Le 23 septembre 2011 à 19:06, par Julien Lanfrey En réponse à : Simple Calendrier v1

      Bonjour,

      Pour que les dates « suivent », il faut faire démarrer la boucle à 0 au lieu de 1 vers la ligne 133.

      // remplissage du debut du calendrier [...]
      for ($i=0; $i<=($num_jour-1); $i++){
          [...]
      }
    • Le 24 septembre 2011 à 18:42, par Renée Picard En réponse à : Simple Calendrier v1

      Merci, merci et merci !
      Cela fonctionne à merveille.
      http://www.jesuiscapable.ca

    Répondre à ce message

  • Le 17 septembre 2011 à 12:51, par bertrand En réponse à : Simple Calendrier v1

    Très sympa et bien réalisé ce plugin avec une intégration parfaite dans Spip. J’ai cherché un moment comment pouvoir ajouter des mots clés aux événements avant de voir qu’il suffisait d’aller la configuration des groupes de mots clés pour les activer pour le plugin.

    Répondre à ce message

  • Le 17 septembre 2011 à 09:09, par seb / studio-lambda En réponse à : Simple Calendrier v1

    bravo pour ce plug, il est simple et efficace !
    Pour avoir regardé un peu le code, c’est propre et très bien commenté (parfait pour y mettre ses pattes :) )

    Répondre à ce message

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Pagination_simple

    5 août 2009 – commentaires

    Un modèle de pagination ultra simple pour vos éléments SPIP.

  • Plugin GMap : géolocalisation et cartographie paramétrable

    16 octobre 2011 – 56 commentaires

    À quoi sert ce plugin ? Compatibilité et installation Configuration Géolocalisation Cartographie Boucles, balises et modèles Extensions et personnalisations [introhttp://www.spip-contrib.net/Mediatheque] pour avoir accès à l’interface de (...)

  • Le Couteau Suisse

    4 mai 2007 – 1362 commentaires

    Ce plugin propose d’introduire facilement de simples fonctionnalités supplémentaires à SPIP et qui s’avèrent rapidement indispensables ! Par exemple : le contrôle de nombreuses variables « cachées » de SPIP, des améliorations ou facilités typographiques, (...)

  • Galleria (fr)

    16 novembre 2011 – 37 commentaires

    Une galerie d’image qui utilise la librairie javascript Galleria. Description Ce plugin vous permet d’ajouter des galeries d’images à vos articles. La galerie créée utilise la librairie javascript Galleria. Le plugin propose un modèle nommé (...)

  • GIS2

    28 août 2011 – 282 commentaires

    Présentation et nouveautés GIS2 est une mise à jour majeure du plugin GIS Escoitar. Le plugin permet d’attacher des points géolocalisés aux objets de SPIP afin de les afficher sur des cartes dans les pages de votre site. GIS2 utilise une librairie (...)