Plugin ABCalendrier

Mini Calendrier pour Articles et Brèves

Un mini calendrier pour publier des évènements depuis les articles et les brèves

Ce plugin est inspiré du minicalendrier pour eva, mais il permet d’insérer dans le calendrier à la fois les articles et les brèves.

Un nouveau champ evento est ajouté à la table spip_breves dans la base de données.

Le code a été ré-écrit pour utiliser le tags #BALISE de spip, ce qui évite d’insérer du php dans les squelettes ; la compatibilité multilingue a été ajoutée.

Il est maintenant possible d’ajouter plus d’évènements sur le même jour.

Installation :

Téléchargez les fichiers depuis le grenier.

Activez le plugin de manière classique. Créez un mot-clé mini-calendrier.

Utilisation :

Pour ajouter un article dans le calendrier, ajoutez le mot-clé mini-calendrier et utilisez la date de rédaction antérieure comme date d’évènement (assurez-vous de l’avoir activée dans le panneau de configuration)

Pour ajouter une brève dans le calendrier, validez la brève puis ajoutez le mot-clé mini-calendrier et paramétrez la date de l’évènement.

Insérez le tag #ABCALENDRIER dans les squelettes.
Paramétrage optionnel : il est possible d’écrire #ABCALENDRIER{7} pour limiter la liste d’évènements visualisés sous le calendrier à 7 par exemple.

Merci

Je remercie les auteurs du minicalendrier pour Eva, Olivier Gautier et tous ceux qui ont contribué au développement de la documentation du plugin.

Je remercie Tropicaloo pour la traduction en français de l’article.

Le logo est gracieusement offert par Attilio Torre

Discussion

41 discussions

  • Bonjour,

    J’ai installé le plugin et déclaré les événements avec le mot clé « mini-calendrier » et la date de rédaction antérieure, installé #ABCALENDRIER dans le fichier inc-rubrique.html...

    Tous est parfait pour le mois en cours, par contre quand je veux voir le mois suivant par le lien« >> » j’arrive sur une erreur 404 alors que j’ai des événements sur le mois demandé.

    J’utilise SPIP 1.9.2d.

    Merci pour votre aide,

    Bertrand

    Répondre à ce message

  • 1
    Renée Picard

    Bonjour

    J’aimerais changé la façon d,afficher la date d,un événement exemple : 12 09 pour 12 septembre.
    Je ne sais pas ou mettre le filtre |affdate_jourcourt

    Merci

    RP

    • Renée Picard

      Je me réponds car j’ai trouvé une solution :
      enlever les lignes 12 -21 de formulaires/abcalendrier.html

      <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

      >

      Ajouter, à l’endroit désiré, après l’appel #ABCALENDRIER

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

    Répondre à ce message

  • Bonjour,

    J’ai installé ce plugin, crée le mot clé, activé la date antérieure mais les articles ne s’affiche pas dans le calendrier.

    Quelqu’un peut-il m’aider ?

    Merci d’avance

    Répondre à ce message

  • 1

    Bonjour, j’ai besoin d’adapter le plugin aux mots clefs..

    J’ai créé avec champs extra 2 les champs born et dead sur la table spip_mots comme des dates.

    Je modifie la fonction crea_eventi dans abcalendrier_20.php

    function crea_eventi($Y,$M,$D)
    {
       $events = array();
      include_spip('inc/filtres');
    
     $my_q="SELECT mots.born, mots.titre
       FROM spip_mots as mots
       WHERE  (MONTH(mots.born) = '$M') ORDER BY mots.born";
              $result = spip_query($my_q);
              while($article=mysql_fetch_assoc($result))
              {
                $date = ereg_replace("^([0-9]{4})-([0-9]{2})-([0-9]{2}).*$", "\\1\\2\\3", $article['born']);
                if ($date > date("Ymd", mkdate($M, $D - 31, $Y)) && $date < date("Ymd", mkdate($M, $D + 31, $Y))) {
                   if (!isset($events[$date])) {
                      $events[$date] = array();
                   }
                   $events[$date][] = array(
                   'link' => generer_url_entite($article['id_mot'],"mot"), 'title' => supprimer_numero($article['titre']), 'logo' => "");
                }
               }
    return $events;
    }

    mais ça ne me renvoie rien alors que le sql

    SELECT mots.born, mots.titre
       FROM spip_mots as mots
       WHERE  (MONTH(mots.born) = 4)
     ORDER BY mots.born

    me renvoie bien ce qu’il faut.
    (et oui, j’ai bien testé le calendrier pour avril ;) : spip.php?page=test&calendrier_mois=4&calendrier_annee=2010)

    Ais-je fait une erreur dans la fonction ? (je ne connais pas php...)
    Ou bien y a t’il un autre fichier à modifier ?

    Merci d’avance

    • J’avais deux pb, mais qui ne venaient pas du code, sinon de ce que je voulais faire : un calendrier de type « anniversaire » qui affiche des dates anniversaires de décès ou de naissance.

      Il m’a donc fallu :

      1. modifier le test de date de la fonction function crea_eventi($Y,$M,$D) pour que le test se fasse uniquement sur le mois (et pas mois / année)
      1. modifier la fonction appelante balise_ABCALENDRIER_dyn qui n’affichait que les événements du mois à une date supérieure ou égale à celle du jour en cours (alors que je souhaite afficher ceux de tous le mois).

      et du coup hop ça marche... c’est pas encore en prod donc je n’ai pas d’exemple, mais si qq est intéressé, n’hésitez pas à me demander le code.

    Répondre à ce message

  • aurélien

    bonjour,

    quelle serait la syntaxe à suivre si je veux insérer la varialble #ID_RUBRIQUE, dans le fichier abcalendrier20.php ?

    ev_du_jour&#ID_RUBRIQUE&date=

    quelque chose proche de ça ?

    Aurélien

    Répondre à ce message

  • 2
    mlleviolette

    Bonjour,
    j’ai un souci avec le bilinguisme. J’ai une rubrique FR et une EN et je voudrais que les événements en français s’affiche dans le calendrier français, et ceux en anglais dans le calendrier Anglais...

    Je n’ai pas réussi à placer le filtre de lang au bon endroit car ça ne marche pas ... tous les événements s’affichent dans les deux langues....

    Si vous avez un solution à ma proposer , merci d’avance .

    • jotacese

      @mlleviolette

      J’ai eu le même problème. J’ai trouvé une solution pas très orthodoxe mais elle fonctionne.

      J’ai créé une nouvelle version du fichier /balise abcalendrier.php lorsque je sélectionne le fichier à inclure :

      if (isset($_GET['lang'])) $lang=($_GET['lang']);
      if ($lang == 'fr') {
      	include_spip('balise/abcalendrier_20');
      } else {
      	include_spip('balise/abcalendrier_20_en');
      }

      J’ai ensuite créé le fichier abcalendrier_20_en.php dans le dossier /balise (une copie exacte de abcalendrier_20.php).

      Dans chacun ajouté une dernière ligne dans la requête MySQL :

      AND articles.lang = ’fr’
      et
      AND articles.lang = ’en’

      Et violà !

      Pardonnez mon français. J’espère que vous comprenez.

    • mlleviolette

      Merci beaucoup de votre réponse.
      Votre français est parfait :)

      J’avais envisagé une solution de ce type , mais en fait j’ai installé le plugin AGENDA qui existe maintenant pour Spip 2.0 et qui correspond plus à mes attentes .
      Mais votre solution pourra probablement servir à d’autres.
      Cordialement,

    Répondre à ce message

  • 1
    Thierry

    Bonjour,
    J’ai installé le plugin,, créer le mot clé, mais je ne sais ou inserer le tag dans les squelettes.
    Quels squelettes ? Celui de l’article ? Celui de la rubrique ?
    Je galère. Aidez-moi svp !!!

    • Quels squelettes ? Celui de l’article ? Celui de la rubrique ?

      Si tu vouz le calendrier ainsi que la navigation, en faisant référence à la dist peut mettre dans le fichier inc-rubriques.html

    Répondre à ce message

  • 1

    Bonjour je viens de me rendre compte que easyphp 5.3.0 signale une erreur deprecated sur :

    spip\plugins\abcalendrier\balise\abcalendrier_20.php on line 230

    ce qui correspond à :

    $date = ereg_replace("^([0-9]{4})-([0-9]{2})-([0-9]{2}).*$", "\\1\\2\\3", $article['date_redac']);

    aprés quelque recherches ici je l’ai remplacé par :

    $date = preg_replace("^([0-9]{4})-([0-9]{2})-([0-9]{2}).*$^", "\\1\\2\\3", $article['date_redac']);

    ce qui semble fonctionner, je ne sais pas si cela change complètement la logique du code et si je dois m’attendre à des erreurs ?
    cela dit j’ai cru bon de mentionner cette solution ici.

    • « Bonjour je viens de me rendre compte que easyphp 5.3.0 signale une erreur »

      merci pour la correction

    Répondre à ce message

  • probleme avec email

    désolé

    Répondre à ce message

  • 1

    Bonjour,

    Je viens d’installer le plugin et j’ai rencontré deux difficultés :

    1- comment on peut personnaliser le background du titre agenda (actuellement en bleu foncé) ?

    2- c’est où que je puisse trouver les abréviations des jours (lu, ma, mer, ...) ? comment on peut les supprimés si on veut ?

    Merci.

    NB : j’utilise spip 2.0.9 et les squelettes Ahuntsic.

    • 1- comment on peut personnaliser le background du titre agenda (actuellement en bleu foncé) ?

      Vous pouvez modifier le fichier abcalendrier.css
      (malheureusement pas très propre, je travaillais sur une nouvelle version mais je ne sais pas quand j’aurai fini)

      2- c’est où que je puisse trouver les abréviations des jours (lu, ma, mer, ...) ?

      supprimer lines 65-67

         for($i = 1; $i < 8; $i++) {
            $my_cal_tab .= '<th>'.$days[$i%7].'</th>';
         }

      en le fichier balise/abcalendrier.php

      l’espoir peut aider

    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