SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Agendas et Dates > Plugin Agenda

Plugin Agenda

lundi 14 août 2006, par Cedric Morin. Dernier ajout lundi 23 avril 2007


Le plugin agenda permet d’ajouter un objet « événement » aux articles


Introduction

Un évènement est délimité dans le temps par une date de début et une date de fin. Il est décrit par un titre, un lieu et un descriptif. Des mots clefs peuvent lui être associés.

Le principe d’associer les événements aux articles a été retenu plutôt que de leur créer un workflow indépendant.

Il y a principalement deux façons d’utiliser les événements :

  • Pour les types d’évènement nécessitant une présentation éditoriale significative (comme des spectacles par exemple), l’article est utilisé pour rédiger la présentation éditoriale (avec toute la richesse de contenu permise par l’article), et les évènements attachés à l’article pour en préciser les occurrences, les lieux associés, et éventuellement certaines précisions liées à l’occurrence. Dans ce cas, on pourra regrouper les articles dans une rubrique.
  • Pour la gestion d’un agenda évènementiel dans lequel les évènements sont décrits de façon plus succincte (pas de réel contenu éditorial), on pourra regrouper tous les évènements dans un même article, en utilisant simplement le descriptif et le lieu de chaque évènement pour apporter les précisions nécessaires.

Selon le mode d’utilisation retenu, en fonction de votre besoin fonctionnel, les squelettes et boucles utilisés seront différents. Aussi le plugin n’intègre pas de squelettes tout prêts à l’emploi, mais plutôt des exemples et des modèles qu’il convient d’enrichir ou de personnaliser.

Télécharger le plugin

- La version 0.1 pour SPIP 1.9 est disponible en téléchargement sur la zone ici
- Et le plugin Widget Calendrier se télécharge ici
- La version 0.11 pour SPIP 1.9.1 est disponibe ici
- La version 0.13 pour SPIP 1.9.2 est disponibe ici

Installation

Pour fonctionner, ce plugin nécessite le plugin Widget calendar. Il faut donc installer les deux plugins (Widget calendar + Agenda ) dans le répertoire plugins à la racine de votre site. Une fois installés, rendez-vous au menu "Configuration" à "Gestion des plugins" et cochez les cases "Activer le plugin" en regard de Agenda et Widget Calendar.

Définir des groupes de Mots Clés

Pour pouvoir utiliser des mots-clés sur les évènements, vous devez spécifier dans les groupes que ceux ci s’appliquent aux évènements de l’agenda.

Saisir un évènement

Il y a deux modes de visualisation et d’édition des évènements dans l’interface privée : sur les pages articles, et par le gadget agenda.

Dans un article vous diposez d’une nouvelle barre d’outils dépliable nommée Agenda, située entre la zone d’édition des mot-clés et celle de validation de l’article. En la dépliant vous disposez de nouveaux champs pour créer votre évènement :

  • Titre : par défaut reprend le titre de l’article, mais il est possible de le modifier ;
  • Lieu : pour indiquer le lieu de l’évènement ;
  • Horaire : case à cocher pour gérer ou non les horaires de l’évènement (cochée par défaut) ;
  • Dates : permet de saisir les dates (et heures) de début et de fin de l’évènement. Soit à l’aide de deux calendriers graphiques sous forme de tableaux, soit à l’aide de menus déroulants (jour, mois, année, heure, minute) ;
  • Mots clefs : vous pouvez associer des mots cles (dans les groupes définis pour) aux événements. Pour les groupes à choix multiples, selectionnez/deselectionnez les différents mots clefs dans la liste en utilisant la touche ’ctrl’.
  • Répétitions : un calendrier vous permet de cocher les répétitions de l’évènement. Si l’évènement dure plus d’une journée, il est présumé que c’est la date de début qui est indiquée ici pour chaque évènement. Les heures de début et de fin et la durée seront conservées pour chaque occurrence.
    Toutes les occurrences de l’évènement héritent également des mots clés de l’évènement principal
  • Ajouter : bouton pour ajouter l’évènement.

Lorsqu’un évènement est saisi, il apparait dans une liste au dessus du formulaire. Vous pouvez modifier un évènement en cliquant dessus.

(Voir également la vidéo de Ben )

En cliquant sur « Calendrier », vous pouvez basculer vers la vue agenda des évènements de l’interface privée.

Il y a maintenant deux vues agenda : l’une pour les évènements, que nous allons détailler ici, et l’autre pour l’activité éditoriale, qui est celle d’origine, et correspond à la publication des articles.

Lorsque vous arrivez sur la vue agenda depuis un article, celui-ci est dans le contexte, et son titre est rappelé au dessus du calendrier. Vous pouvez alors cliquer sur un créneau horaire pour ajouter un évènement à cet article. Vous retrouvez, à droite de l’écran, un formulaire identique à celui décrit ci-dessus.

Vous pouvez aussi cliquer sur un évènement affiché dans le calendrier pour l’éditer. Si il s’agit d’une répétition, une mention l’indique en bas avec un lien vers l’évènement original pour le modifier.

Si l’évènement que vous éditez est rattaché à un autre article, c’est ce nouvel article qui devient celui du contexte, et auquel seront rattachés les évènements ajoutés. Dans le calendrier, les évènements liés à l’article du contexte apparaissent de manière différente des autres.

Dans les squelettes

L’introduction des événements passe par une nouvelle boucle : la boucle EVENEMENTS

Balises

Elles correspondent aux champs de l’évènement :

  • #TITRE
  • #DATE_DEBUT
  • #DATE_FIN
  • #LIEU
  • #DESCRIPTIF
  • #HORAIRE qui prend la valeur oui/non, et est utile pour savoir si on doit afficher l’heure ou non dans une boucle (cf 2° exemple de boucle)
  • #ID_EVENEMENT_SOURCE : lorsque l’évènement est une répétion, retourne l’id de l’évènement qui est répété, 0 sinon

Les Critères

Vous pouvez évidemment utiliser les champs de l’évènement comme critères : id_evenement, date_debut, date_fin, lieu, descriptif, horaire et id_evenement_source. À noter que le critère date est aussi utilisable, et est dans cette boucle identique à date_debut.

Mais de nombreux autres critères sont également disponibles

  • Critères de date
    Tous les critères habituels age, age_relatif, mois_relatif, jour_relatif sont declinables sur les dates de début et de fin : age_debut, age_relatif_debut, mois_relatif_debut,, jour_relatif_debut, et de même age_fin, age_relatif_fin, mois_relatif_fin, jour_relatif_fin
    Dans ce cas, il est à noter que les comparaison sont faites par rapport à des date_debut et des date_fin.
    Ainsi si vous utilisez {mois_relatif_debut<0} comme critère de votre boucle EVENEMENTS, seront retenus les évènements dont lle mois de la date de debut est supérieur ou égal au mois de date_debut du contexte (soit #ENV{date_debut} #DATE_DEBUT de la boucle englobante)

Pour trier vos évènements par rapport à une date englobante, il convient donc de la passer en paramètre de votre inclure dans date_debut et dans date_fin

  • Critères d’arborescence
    Les évènements étant rattachés à un article, il est possible d’utiliser sur la boucle événements les critères liés à l’arborescence du site : id_article évidemment, mais aussi id_rubrique, id_secteur, branche ..., qui s’interprètent implicitement par rapport à l’article auquel est rattaché l’événement.
  • Critères de mots-clés
    Comme il est possible de rattacher des mots-clés aux évènements, les critère liés aux mots clés (id_mot, type_mot ...) sont utilisables, et s’interprètent vis à vis des mots clés rattachés aux événements. Si vous voulez trier vos évènements en fonction des mots clés rattachés aux articles associés, il vous faut passer par une boucle ARTICLES supplémentaire.
  • Critères agenda
    Le critère agenda de SPIP permettant de sélectionner des occurrences appartenant à un jour, une semaine, un mois, une période ne s’applique pas ici directement compte tenu qu’un évènement à une date de début et une date de fin, et qu’il faut en tenir compte. À défaut, il permet de sélectionner les évènements dont la date de début est dans la période considérée.
    Pour le compléter, le critère agendafull est défini, qui permet de sélectionner tous les évènements à cheval sur la période considérée (dont l’intersection avec la période n’est pas nulle). Exemples :
    {agendafull date_debut,date_fin, mois, #ENV{annee}, #ENV{mois}}

Les filtres

  • Les filtres Agenda_memo_full, Agenda_memo_evt_full et Agenda_affiche_full
    Ils sont la transposition des filtres natifs SPIP (agenda_memo et agenda_affiche) aux évènements. Ils prennent donc en plus en compte la date de fin. Exemples :
    • [(#DATE_DEBUT|Agenda_memo_full{#DATE_FIN,#TITRE,#DESCRIPTIF,#LIEU,#URL_ARTICLE, 'couleur'})] mémorise un événement qui sera affiché avec la class ’couleur’ dans l’agenda, sur le créneau horaire concerné
    • [(#DATE_DEBUT|Agenda_memo_evt_full{#DATE_FIN,#TITRE,#DESCRIPTIF,#LIEU,#URL_ARTICLE, 'couleur'})] memorise un évènement sans notion d’heure (donc a utiliser lorsque #HORAIRE=non) qui sera affiché avec la class ’couleur’, en bas de l’agenda
    • [(#TOTAL_BOUCLE|Agenda_affiche_full{<:aucun_article:>, 'mois'})] affiche l’agenda avec les événements mémorisés par les appels aux deus filtres précédents.
  • le filtre Agenda_affdate_debut_fin affiche sous forme sympathique la date de l’événement en prenant en compte le fait que la date de debut et la date de fin sont ou non le même jour, le même mois, la même année, et en prenant en compte l’affichage de l’heure ou non. Exemple :
    [(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})]
  • le filtre Agenda_dateplus sert a afficher une date avec ajout de temps :
    [(#DATE_FIN|Agenda_dateplus{3600,'H:i'})] affiche la date de fin augmentée de 1H (3600 secondes) au format ’H:i’ (heures:minutes, voir affdate pour les type de format)

Exemples de boucle

1° exemple

Version stable 1.9 : à noter le statut=publie dans cette boucle. En effet, vu qu’il n’y a pas de contexte d’article, tous les évènements à venir seraient publiés, même ceux attachés à un article non publié.

2° exemple

Squelettes

agenda_xx

Des adaptations à la boucle EVENEMENTS des squelettes agenda_jour, agenda_semaine, agenda_mois et agenda_periode et utilisant les criteres agendafull et les filtres associés sont inclus dans le plugin. Ainsi, lorsque le plugin est activé ?page=agenda affiche l’agenda avec tous les évènements définis au lieu de des articles.

ical-agenda

Il propose les évènements au format ical. On peux choisir de sélectionner ceux d’un article seulement en spécifiant dans l’url

Le Mini-Calendrier

Le plugin inclut un exemple de #CALENDRIER_MINI qui est une adapation à la boucle EVENEMENTS de la version proposée par James. Il est définit dans formulaires/calendrier_mini.html, et vous pouvez le personnaliser en le recopiant dans votre dossier squelettes (dans un sous répertoire formulaires/ comme dans le plugin).

Par défaut, sa syntaxe est :

#CALENDRIER_MINI{#ENV{date},'date',#SELF}

  • le premier argument est la date en cours
  • le second est le nom de la variable date dans l’url
  • le troisième est l’url de base vers laquelle le calendrier doit renvoyer.

Dans la version définie dans le plugin, le calendrier liste les articles liés à un id_article du contexte et éventuellement à un id_mot du contexte (si la balise est appelée dans une boucle MOTS par exemple.

Personnalisation du #CALENDRIER_MINI

Par défaut, la balise collecte l’id_rubrique, l’id_article et l’id_mot du contexte ou elle est appelée. Pour prendre par exemple tous les évènements d’une rubrique sans s’occuper de l’id_article ni de l’id_mot, on modifiera les critères de la BOUCLE_calendrier dans calendrier_mini.html

Un exemple d’appel a la balise est illustré dans le squelette de démo demo_calendrier_mini.html

Un formulaire d’édition des événements

Il est possible de mettre un formulaire en ligne pour permettre aux visiteurs d’éditer ou de proposer des évènements. Comme ceux-ci sont rattachés à des articles, il faut pour cela être dans une boucle article, qui permet de définir à quel article seront rattachés les évènements proposés.

Pour utiliser le formulaire, il suffit d’insérer la balise #FORMULAIRE_EDITION_EVENEMENT, dans une boucle article de votre squelette.

Si un id_evenement est spécifié dans l’url, le formulaire permettra de modifier l’événement selectionné. Sinon, si le paramètre ajout_evenement=oui est précisé dans l’url, il permet d’ajouter un évènement.

Le formulaire collecte tout seul l’id_article et l’id_evenement du contexte.

Pour faire un lien permettant d’ajouter un événement, utilisez la construction de l’url ci-dessous : <a href='[(#SELF|parametre_url{ajout_evenement,oui}|parametre_url{id_evenement,''})]'><:agenda:titre_cadre_ajouter_evenement:></a>

Pour permettre proposer des évènements, mais pas de les éditer, on peut par exemple afficher le formulaire avec un style display:none fonction de la présence de id_evenement ou non :

<div [style='(#ID_EVENEMENT|?{display:none,''})']>
#FORMULAIRE_EVENEMENT
</div>

Répondre à cet article

  • Plugin Agenda

    17 juillet 2008 14:19, par Muriel

    Bonjour à tous,

    Merci pour ce plugin, j’utilise en même temps le plugin Mots-Partout, le tout sous spip 1.9.2d.

    J’ai un petit souci, sous Firefox, tout marche bien : dans l’espace d’admin, lors de l’ajout d’évènements à un article , le calendrier des répétitions apparait bien à sa place sous les mots-clés à sélectionner pour l’évènement.

    Par contre, sous IE 6 et 7, lors de la rédaction d’un évènement, un message d’alerte annonce qu’un script tourne en boucle et doit être arrêté. En même temps, le calendrier des répétitions ne s’affiche pas.

    Quelqu’un a-t-il une solution ?

    Répondre à ce message

    Retour au début des forums

  • Plugin Agenda

    14 juillet 2008 13:39, par joz

    Bonjour, chez moi les critères de date décrit dans cette contrib ne fonctionnent pas :-(

    Ma boucle EVENEMENTS fonctionne sans problème avec des critères habituelles (genre par date etc). Mais pas avec les critères comme mois_relatif_debut<0. Ce critère est ignoré, tout les événements quoi qu’il soit leur date de début.

    Le même pour les critères agenda. Si je l’emploie comme dans l’exemple ci dessous (agendafull date_debut,date_fin, mois, #ENVannee, #ENVmois

    ) rien ne se passe, le critère est ignoré également.

    Qu’est-ce qui m’est échappé ? Je dois activer quelque chose pour pouvoir utiliser les critères ?

    merci pour vos astuces
    joz

    Répondre à ce message

    • ps : 14 juillet 2008 14:45, par joz

      Peut-être c’est un indice pour découvrir mon problème :
      #ENVdate debut ne retourne rien.. pas dans ma boucle EVENEMENTS ni dans une boucle ARTICLES.

      Mais sans #ENVdate_debut les critères de l’agenda ne peuvent pas fonctionner, non ? Qu’est-ce que je pourrais avoir oublié ?

      joz (avec un air un peux perdu..)

      Répondre à ce message

    Retour au début des forums

  • Plugin Agenda

    10 juillet 2008 10:21, par Max

    Merci pour ce plugin. J’utiise spip 1.9.2d et alternative. Jai bien chargé Widget+agenda 1.9.2. Agenda s’affiche bien sous Mot clés. Le mini calendrier ne s’affiche pas en dessous des dates à définir, ni dans la page d’accueil.Ais-je oublié quelque chose ? Merci de vos conseils.

    Répondre à ce message

    Retour au début des forums

  • Pourriez vous me dire où il faut intervernir pour ne pas être limité à l’année 2004 Comment peut on modifier cette limitation ???

    Merci à ceux qui le savent GB

    Répondre à ce message

    Retour au début des forums

  • Problème agenda mini

    14 mai 2008 21:44

    Salut à tous =)

    J’ai installé les deux plugins nécessaires au bon fonctionnement du calendrier et j’ai un petit souci. L’installation s’est bien déroulée, j’ai la case "agenda" qui s’affiche lorsque je rédige des articles, mes dates s’affichent dans le grand calendrier, tout va bien. Mais le problème vient du calendrier mini. Il s’affiche, aucun souci. Il détecte la date du jour, mais premièrement, les jours où il y a des événements ne sont pas cliquables, et deuxièmement, la navigation ne fonctionne pas. Je reste bloqué sur le mois de mai bien que le passage de variable en url fonctionne.

    Voici le lien pour que vous puissiez vous rendre compte :

    http://www.jchristophe.fr/amicaleMo...

    Si quelqu’un voit d’où vient le problème je lui en serait infiniment reconnaissant =D Merci à tous ceux qui prendront le temps de lire mon post =)

    PS : J’ai absolument rien modifié dans le calendrier_mini.html et j’ai inséré #CALENDRIER_MINI#ENVdate,’date’,#SELF pour l’afficher sur ma page.

    Répondre à ce message

    • Problème agenda mini 2 juillet 2008 14:32, par rv

      bonjour, je viens d’avoir le même problème. j’ai remarqué que la navigation ne fonctionne pas lorsque l’appel du mini agenda se fait dans un fichier ( exemple fichier de navigation ) qui est appelé par un include. Je réfléchis à un solution a+

      Répondre à ce message

      • Problème agenda mini 3 juillet 2008 11:11, par Jean-Christophe

        Merci !!

        Depuis le début je faisais des tests avec un include, j’avais pas pensé à l’insérer directement dans mon squelette de base... Ça me pose pas trop de problème de ne pas recourir à un include, donc je vais procéder comme ceci.

        Merci beaucoup pour ta réponse =)

        JC

        Répondre à ce message

        • Problème agenda mini 3 juillet 2008 16:20, par Loco

          Bonjour,

          Ben moi j’ai insérer le mini calendrier dans mon squelette. Je peux naviguer entre les mois par contre les événements ne sont pas cliquable. Je ne suis pas le seul à soulever ce pb mais je n’ai lu aucune piste.

          Merci

          Répondre à ce message

          • Problème agenda mini 3 juillet 2008 16:27, par Jean-Christophe

            Salut !

            Je me permets de mettre le code que m’a donné RV, suite à le même question. Il faut remplacer le

            ... du fichier calendrier_mini.html par ça : [ (#DATE_DEBUT|Agenda_memo_full#DATE_FIN,[(#TITRE|addslashes|supprimer_numero)], #DESCRIPTIF,#LIEU,#URL_ARTICLE,[(#DATE_DEBUT|affdate’Y-m-d’)]]) ][ (#ENVdate|agenda_mini) ]

            J’ai juste c/c, ça marche nikel =)

            Encore un grand merci à RV =)

            (ne pas oublier les accolades qui n’apparaissent pas...)

            Répondre à ce message

            • Problème agenda mini 3 juillet 2008 16:31, par Jean-Christophe

              C’est peut-être mieux ça :

              http://jchristophe.fr/codeAgenda.png

              ^^

              (remplacer le contenu du tbody existant par ce code, merci à rv)

              Répondre à ce message

            • Problème agenda mini 3 juillet 2008 17:30, par Loco

              Merci Jean-Christophe mais je n’ai pas compris ce que je devais remplacer ("remplacer le ...")

              Répondre à ce message

              • Problème agenda mini 3 juillet 2008 18:15, par Loco

                Ca marche !!!

                Merci beaucoup

                Répondre à ce message

                • Problème agenda mini 3 juillet 2008 18:33, par Loco

                  en fait j’ai un nouveau pb maintenant quand je veux naviguer entre les mois (<< juillet >>) je tombe sur le grand agenda alors que je devrais garder ma page normal mais avec le mini clandrier sur août. Ca ne faisait pas ça avant. D’où vient le pb voici la page : http://www.elsey.ouvaton.org/

                  Merci de ta patience

                  Répondre à ce message

                  • Problème agenda mini 3 juillet 2008 19:58, par rv

                    quand on survole la date ou il y a un evenement, on obtient dans la bulle la date et non le titre de l’evenement. Du coup ton url n’est pas bon. De plus je ne comprends pas comment tu obtiens un page= "spip.php?page=jour&date..." ? Apperement, la boucle repere un evenement mais il manque le reste : id_article... As-tu modifie le code de la boucle ?

                    Répondre à ce message

                    • Problème agenda mini 9 juillet 2008 11:51, par zinckoo@gmail.com

                      En fait, je me suis inspiré du code du mini calendrier de spip party. Donc, si je comprends bien quand je clique sur un autre mois, spip cherche une page mois, comme dans spip party. C’est un résolution qui peut m’intéresser.

                      Mais comment faire pour que le lien renvoie sur une page mois que j’aurais créée ? Je vais chercher de mon côté mais si quelqu’un a une piste je suis preneur ;-)

                      Merci

                      Répondre à ce message

    Retour au début des forums

  • évènement disparus

    29 mai 2008 19:34, par Mars

    Bonjour, j’ai essayé le plugin en local et il n’y avait aucun problème. J’ai du réhéberger le site dans la semaine (à cause d’un méchant plantage) et je me rends compte aujourd’hui que les évènement ne sont pas affichés. Et pour cause : même dans l’espace privé ils n’existent pas, le champ agenda est vide.

    Je saurais pas dire avec certitude mais j’ai peu-être bien activé les plugins après avoir restauré la base de données prise du local est-ce qu’il suffirait de la recharger ?

    Répondre à ce message

    • évènement disparus (réglé) 29 mai 2008 20:02, par Mars

      c’était ça

      Répondre à ce message

      • évènement disparus (réglé) 8 juillet 2008 14:10, par joz

        C’était ça ? bizarre, j’ai le même problème et ce n’était pas ça ...

        C’est pareil si j’importe la base avant ou après avoir activé les plugins, j’ai le même problème :

        il manquent deux tables dans la bas de donnés !
        Les tables nécessaire pour l’agenda : ’_evenements’ et ’_mots_evenements’.

        Qu’est-ce qui se passe ? Pourquoi ces deux tables ne sont pas importés avec le reste de la base ? (A la sauvegarde ces tables on bien été listés avec les autres tables sauvegardes.)

        Est-ce que quelqu’un aurait une réponse à ce problème ?

        merci
        joz

        Répondre à ce message

        • évènement disparus (réglé) 8 juillet 2008 15:37, par mars

          J’ai pas eu de problème majeur, je vais peut-être te dire un truc bateau mais si tu vide le cache bien comme il faut, que tu redémarres ton serveur, genre "on repart de zéro" ?

          Désolé de pas pouvoir t’en dire plus.

          Répondre à ce message

          • évènement disparus (réglé) 8 juillet 2008 19:25, par agnez

            Merci pour ton message. Mais ce n’était pas ça.

            J’ai trouvé la cause de mon problème : les version de MySQL chez moi en locale et sur l’hébergement n’étaient pas le même ! Chez moi 5, en ligne 4.

            Pour les autres tables il n’y avait pas de problème d’importation, juste pour les deux de ce plugin. (Aussi bien dans SPIP que dans phpMyAdmin).
            J’ai du effacer une ligne du fichier exporté de ma base en locale et puis je pouvais importer les tables dans ma base en ligne (en phpMyAdmin).

            Voila une chose de réglé :-)

            à bientôt
            Joz

            Répondre à ce message

    Retour au début des forums

  • Plugin Agenda : Correction de bug

    2 juillet 2008 21:35, par yazul

    Tout d’abord : merci pour ce plugin ! Je propose une correction de bug dans inc/agenda_saisie_rapide.php

    remplacer :

    define(’_format_date1’, ’([1-9]|\d2)/([1-9]|\d2)/?’._format_annee.’ ?’._format_heure) ; define(’_format_date2’, ’- ?([1-9]|\d2)/([1-9]|\d2)/?’._format_annee) ;

    par :

    define(’_format_date1’, ’(\d2|\d)/(\d2|\d)/?’._format_annee.’ ?’._format_heure) ; define(’_format_date2’, ’- ?(\d2|\d)/(\d2|\d)/?’._format_annee) ;

    NB : il y a des accolades autour de chaque chiffre "2".

    en clair : il faut essayer de prendre 2 chiffres si possible plutôt qu’un seul chiffre.

    Testé et approuvé ainsi.

    Répondre à ce message

    Retour au début des forums

  • Plugin Agenda

    23 juin 2008 18:23, par nonofr.91@free.fr

    bonjours à tous,je ne comprend pas pourquoi mais quand j’active le plugin agenda, je ne peut plus mettre de document dans mes articles sinon je tombe sur une page blanche dans la partie privé ?

    Quelqu’un a t-il déjà eu le cas si oui comment faire.

    Merci d’avance

    Répondre à ce message

    Retour au début des forums

  • Bonjour, pour l’affichage du programme d’un cinema, je souhaite faire une boucle qui affiche tous les jours où il y a un évènement. Parfois, il y a plusieurs evènements par jour. Avec la boucle suivante :

    BOUCLE_films(EVENEMENTS)par dateunique [(#DATE_DEBUT|affdate)] BOUCLE_filmssous(EVENEMENTS)par datedate_debut=#DATE_DEBUT #TITRE /BOUCLE_filmssous /BOUCLE_films

    Si j’ai 2 evènements dans la même journée, le tout est affiché 2 fois de suite, malgré unique.

    Auriez vous une idée ? merci.

    Répondre à ce message

    Retour au début des forums

  • Problème de tri des dates

    22 avril 2008 20:25, par Eloi

    Bonjour, J’ai un gros soucis de tri des événements. Voici ma boucle dans article.html (réduite pour l’occas’) :

    <BOUCLE_date(EVENEMENTS) {par date} {id_article}>
    #ID_EVENEMENT
    </BOUCLE_date>

    Il m’affiche bien tous les id_evenement, mais ne me les trie pas par date. Si j’enlève l’id_article, il m’affiche tous les événements du site et dans le bon ordre (par date) ! Dès que je remets l’id_article, il trie dans l’ordre des id_evenement. J’ai fait plusieurs tests, notamment avec {par lieu}, mais rien à faire, il ne prend pas en compte le critère de tri. J’ai Spip 1.9.2.d et Mysql 5.0. Là je n’ai vraiment plus d’idées... Je vous remercie pour les vôtres !

    Répondre à ce message

    • Problème de tri des dates 24 avril 2008 16:10, par Emmanuel

      #ID_EVENEMENT

      Essaye comme cela (en inversant id_article et par date) ! Il me semble que dans une boucle, j’avais eu ce problème et que je l’ai résolu comme cela. Il faut comprendre que ces boucles génèrent du Sql et que le id_article intervient sur la partie WHERE de la requête que que par date sur la partie ORDER BY qui se situe après le WHERE. Donc la logique informatique me fait penser que c’est normal. A tester !

      Répondre à ce message

      • Problème de tri des dates 26 avril 2008 02:39, par Eloi

        Malheureusement j’ai tenté le coup. Pour le moment, j’ai dédoublé la boucle en récupérant l’id_article avec un #SET, comme ceci :

        <BOUCLE_article(ARTICLES){id_article}>
        #SET{test,#ID_ARTICLE}
        <BOUCLE_date(EVENEMENTS) {par date} >
        <BOUCLE_test(EVENEMENTS) {id_evenement} {id_article=#GET{test}}>
        ...

        Mais c’est pas très propre. J’imagine Mr PHP qui patine dans la choucroute à faire le tour de l’ensemble des dates du site et qui ensuite en sélectionne une partie. Bref, y a certainement mieux mais je ne trouve pas meilleur bidouille et ne comprend toujours pas ce conflit que tu explicite bien sur l’ordre des actions PHP : entre WHERE et ORDER BY.

        Répondre à ce message

        • Problème de tri des dates 8 mai 2008 12:48, par lessorg

          Voici ma boucle qui fonctionne très bien

          BOUCLE_lesevenements(EVENEMENTS) par date id_article >

          Pour résoudre ton problème, il faudrait que tu donnes plus d’éléments et non pas seulement ta boucle dans article.html (réduite pour l’occas’)

          PS quelqu’un peut-il m’expliquer comment écrire la ligne BOUCLE avec le < sans qu’elle disparaisse du message du forum ?

          Répondre à ce message

          • Problème de tri des dates 3 juin 2008 16:11, par bbdoc

            J’ai exactement le même problème... l’ordre est correct si je supprimer l’id_article des critères, mais dés que je le rajoute, il n’est plus correct... Pourtant ma boucle est toute simple... bug étrange...

            Répondre à ce message

            • Problème de tri des dates 5 juin 2008 11:06, par bbdoc

              Pour ceux qui seraient confrontés au même problème, je l’ai personnellement résolu en laissant la boucle afficher tous les articles, et en filtrant l’affichage, à l’intérieur de la boucle, sur base de l’ID_ARTICLE :

              <B_agenda>
               <?php $ID_ARTICLE = #ID_ARTICLE; ?>
                 <BOUCLE_agenda(EVENEMENTS){par date}{statut=publie}>
                   <?php if ( #ID_ARTICLE == $ID_ARTICLE ) { ?> #TITRE <?php } ?>
                 </BOUCLE_agenda>
              </B_agenda>

              Répondre à ce message

              • Problème de tri des dates 16 juin 2008 17:06, par bbdoc

                Est-ce que quelqu’un a trouvé une autre solution, plus correcte à ce problème ? il devient vraiment ennuyant car ma solution de filtrer les évènements en php empêche l’utilisation des balises de début et de fin de boucle de spip...

                Merci

                Répondre à ce message

                • Problème de tri des dates 16 juin 2008 18:33, par eloi

                  Pour ma part, je n’ai trouvé aucune solution formidable et en effet ce soucis engendre des complications importantes dans le code. Impossible de savoir où se situe le problème. Personnellement je suis trop néophite en php pour mettre le nez dans le plugin et imaginer une solution à ce niveau-là. Je ne sais pas vers où il faut creuser pour qu’on arrive à résorber le problème. En effet, si quelqu’un d’autre a une idée...

                  Répondre à ce message

    Retour au début des forums

0 | 25 | 50 | 75 | 100 | 125 | 150 | 175 | 200 |...



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net