Tuto-FR : SPIP - Installation du mini calendrier de Agenda 2.0
Télécharger le plugin agenda ici et SPIP Bonux ici.
Pour cela, il m'avait suffit de modifier (en gras ci dessous) dans plugins/agenda/formulaires/calendrier_mini.html une ligne dans la boucle à la fin, ce qui donne :
Dans la version 2.0 du plugin Agenda, si l'appel du calendrier est toujours le même (la balise a appelé directement dans une page est #CALENDRIER_MINI{#ENV{date},'date',#SELF} et si vous voulez le mettre en include c'est un peu plus compliqué), pour que les résultats des événements soient pris en compte il faut rajouter une boucle, celle qui était normalement dans le fichier calendrier_mini.html. Ce qu donne :<BOUCLE_calendrier(EVENEMENTS)
{agenda date_debut, mois, (#ENV{date}|annee), (#ENV{date}|mois)}>[
(#DATE_DEBUT|Agenda_memo_full{#DATE_FIN,[(#TITRE|addslashes)],
#DESCRIPTIF,#LIEU,
spip.php?page=aujour&date=[(#DATE_DEBUT|affdate{'Y-m-d'})]})
]</BOUCLE_calendrier>[
(#ENV{date}|agenda_mini)
]
Ensuite il ne faut pas oublier de créer une page dans squelettes, ici je l'ai appelé aujour.html dans laquelle il faut mettre les boucles événements nécessaires à l'appel des données qui sont attendues, du style de :[(#REM) Menu de navigation par rubriques ]
#CALENDRIER_MINI{#ENV{date},'date',#SELF}
<BOUCLE_calendrier(EVENEMENTS){agenda date_debut, mois, (#ENV{date}|annee), (#ENV{date}|mois)}>
[(#DATE_DEBUT|Agenda_memo_full{#DATE_FIN,[(#TITRE|addslashes)],#DESCRIPTIF,#LIEU,
spip.php?page=aujour&date=[(#DATE_DEBUT|affdate{'Y-m-d'})]})]
</BOUCLE_calendrier>
<BOUCLE_evenements(EVENEMENTS) {agenda date_debut, mois, (#ENV{date}|annee), (#ENV{date}|mois)}{jour_relatif=0}{statut=publie}><!-- {agenda date_debut, mois, (#ENV{date}|annee), (#ENV{date}|mois)} -->
[(#LOGO_ARTICLE_RUBRIQUE|#URL_ARTICLE)]
<a href="#URL_ARTICLE" class="titre">#TITRE</a><br>
<em> [(#DATE_DEBUT|nom_jour)] [(#DATE_DEBUT|jour)]
[(#DATE_DEBUT|affdate_mois_annee)]
<!-- à [(#DATE_DEBUT|heures)]h[(#DATE_DEBUT|minutes)] -->
</em><br> #LIEU<br>
[
<div class="#EDIT{intro} texte">(#DESCRIPTIF)</div>
]<br>
</BOUCLE_evenements>
Publié le mardi, août 4 2009 par @matiasgrenn
Commentaires
Bonjour,
moi qui n'arrivait pas à créer un lien entre mon agenda en page d'accueil et l'évenement j'y arrive enfin grace à votre code, par contre maintenant je n'ai plus de fléche pour faire défiler les mois.
Comment fait-on pour avoir les évenements avec les mise en page du site c'est à dire à l'intérieur du cadre fixe et non dans une page vierge ?
Merci pour votre tuto
Barbs
pour ne pas le mettre dans une page vierge, vous pouvez par exemple reprendre une partie du code de sommaire.html en enlevant les boucles articles récent etc. pour y placer vos boucles événements et l'appeler aujour.html ou autre nom de page qu'il faudra préciser et remplacer dans les parties du code "spip.php?page=aujour&date" si votre page s'appelle truc.html ça donnera "spip.php?page=truc&date"...
Bonjour et merci pour le code :-)
Par contre, je voudrais centrer le calendrier dans une colonne et je ne sais pas comment faire, avez-vous une idée ?
Si je rajoute <div style="text-align: center"> devant [(#REM) Menu de na... et que je mets </div> à la fin du code, j'ai bien le mot "Calendrier" qui est centrer, mais pas le calendrier, vous avez une solution ? Car moi et la programmation ...
J'ai bien essayé de mettre <P align=center> et </P> comme cela en parle dans l'aide de spip http://www.spip.net/fr_article901.h...
Mais cela n'a aucun effet :-(
Merci d'avance de votre aide !
en fait le calendrier est dans un tableau <table> donc les propriétés sont à définir pour ce tableau
Bonjour et merci pour ce plugin !
Je cherche cependant où modifier le code pour permettre aux rédacteurs d'associé un événement à un article.
Pour être plus précis, j'ai modifier les fonctions dans agenda_autorite pour qu'elle autorise cette manipulation et ça marche impec, mais je ne trouve pas comment faire apparaitre le bouton "Agenda" dans le menu "naviguer" afin qu'ils accèdent à l'ensemble des événements.
Merci d'avance
Mathieu
Bonjour Erwan :-)
Maintenant, c'est bon, via tes explications et l'aide de la liste, j'arrive à faire ce que je souhaite pour la présentation, donc merci :-D
J'aurais une dernière question, mais qui n'est pas dérangeante, donc, au pire, ce n’est pas grave :-)
Je préférerais que, quand je clique sur un événement dans le calendrier, j'arrive directement sur l'article en question, je suppose qu'il faut faire une modif dans le fichier aujour.html, mais quoi ?:-(
Dans tous les cas, merci Erwan :-)
Franck
le plugin le fait pas défaut ce lien direct sur un événement - j'avais réalisé des modifications car la structure proposait souvent plusieurs événements par jour...
par contre si, lorsqu'il y a qu'un événement sur le jour sélectionner, pour aller directement sur l'article il suffit de créer une boucle qui vérifie s'il y en a un ou plusieurs et redirige vers l'article quand il y en a un ! A réfléchir et surtout à écrire...
Donc à suivre !
Merci Erwan :-)
Je pensais juste qu'il fallait supprimer des lignes.
Bref, que c'était un truc simple.
Trop complexe pour moi et pas la peine de t'embêter, cela marche très bien comme ça :-)
Par contre, il y a une chose, je ne sais pas si c'est t'on code ou si cela vient du plug.
Exemple:
Soirée le 26 de 21h00 à 01h00
Il faut que je créer deux événements l'un le 26 de 21h00 à 00h00 et l'autre le 27 de 00h00 à 01h00
Car sinon, je ne fais qu'un événement du 26 à 21h00 qui fini le 27 à 01h00
Dans le calendrier publique, les deux dates sont cliquable (normal), par contre, si je clique sur le 27, j'ai rien, contrairement à, si je clique sur le 26 ou je peux après, cliquez sur le lien qui envoi vers l'article
Mais bon franchement, quand tu sais cette "particularité" c'est très simple de faire avec :-)
Cordialement Franck
Ah je pense que ce problème vient du plugin original. Il faudrait poser la question dans les commentaires sur spip-contrib...
Bonjour,
En fait je ne voudrais pas aller sur une page spécifique mais bien sur la page d'un article... tu dis que la version originale permet de le faire, mais cela ne fonctionne pas .
Si je met #CALENDRIER_MINI{#ENV{date},'date',#SELF} , j'ai bien le calendrier mais aucune date cliquable, j'ai pourtant des évenements.
Merci
c'est la partie suivante qu'il faut modifier :
spip.php?page=aujour&date=[(#DATE_DEBUT|affdate{'Y-m-d'})]
essayer par exemple :
spip.php?article[(#ID_ARTICLE)]
je n'ai pas essayé mais la boucle EVENEMENTS récupérant les infos des articles, il y a des chances que ça fonctionne...
par contre si tu créés des événements et qu'ils n'apparaissent pas du tout dans l'agenda, là il y a un problème. L'article est-il bien en ligne ? Y a-t-il une URL sur laquelle je pourrais voir le problème ?
Erwan, possible que cela vienne de la feuille de style.
Je t'avais demander comment comment changer la taille du calendrier et grace à toi, cela m'a fait découvrir les feuilles de style :-)
Donc, j'ai fait ma feuille et tout fonctionnait très bien, enfin c'est ce que je pensais, car en réalité, il y a peu , je me suis rendu compte que cela ne fonctionnait pas bien sous IE.
Ce soir, j'ai trouver la solution :-D
Le truc, c'est qu'il faut mettre position:relative, sinon, j'avais mes dates qui étaient non cliquable sous IE
J'ai trouver la solution ce soir ici :-)
http://forum.alsacreations.com/topi...
Je viens de me rendre compte avant de cliquer que non, j'ai pas encore tout résolu, puisque si mes liens sont bien cliquable.
Si jamais je clique sur la flèche pour voir le mois suivant, j'ai bien le mois qui apparait, par contre, si je clique sur la flèche pour revenir en septembre, mes dates qui étaient cliquables ne le sont plus. Il faut que je fasse "recalculer cette page" pour qu'ils soient de nouveau cliquables.
Hello,
Javais le même problème que Barbs à l'origine (pas de liens dans le mini_calendar).
Maintenant tout fonctionne bien.
Je souhaiterai juste être aiguillé.
Quand on clique sur une date du calendar_mini, on est renvoyé sur la page aujour.html qui liste les articles liés a la date.
En l'occurence je n'aurai toujours qu'un seul article lié a la date.
Y a t-il moyen de "zapper" cette page, et aller directement à l'article en cliquant sur la date ?
Merci
> Hum
à essayer ce que je propose dans le commentaires 11 http://www.veille-web.fr/index.php/...
> Franck
as-tu vider le cache ?
Merci beaucoup Erwan.
Ca fonctionne nickel.
Oui, j'ai vider le cache et même le navigateur Erwan.
Là, j'ai fait pleins d'essai :-D
Ce que je ne comprends pas, c'est que par exemple avec des evenements en septembre
(Cache et navigateur vide)
Je vais dans la partie publique, mes dates en septembre sont cliquables. (normal)
Je clique sur le flèche pour voir s'il y a des dates en octobre
Aucune date de cliqable ( normal car j'ai aucun événement)
Je clique sur la flèche du calendrier pour revenir en septembre.
Mes dates en septembre sont cliquable ( normal)
Je re-clique sur la flèche du calendrier, pour revoir octobre
J'ai de nouveau aucune date de cliquables ( toujours normal)
Maintenant, je clique de nouveau sur la flèche du calendrier pour revenir en septembre
Mes dates de septembre, ne sont plus cliqable :-(
Il faut que je vide mon cache pour que cela fonctionne de nouveau car si je fais simplement actualiser cette page via le navigateur, cela ne suffit pas.
C'est un problème que j'ai systématiquement :-(
J'arrive pas à comprendre pourquoi cela fonctionne une fois, mais pas deux ?
Cela pose problème, car (j'ai pas fait cet éssai) un simple lecteur ne peut pas vider le cache :-(
Tu as une idée ? histoire de savoir si cela vient du plug, de mon squelette (multiflex3) ou d'un bug dans ton code. :-)
j'ai eu un problème similaire et il s'est résolu tout seul mais c'est en effet un problème... car ça n'est pas très compréhensible une fois les caches de spip et du navigateur vidés... as-tu une url où je puisse constater le problème ?
Ensuite l'objectif est de mettre le calendrier en INCLUDE en rajoutant dans l'appel un {date}... mais là c'est un autre défis ;-)
http://www.lien-d-amis.net/prototyp...
Si cela ne marche pas, j'ai déjà un autre spip pret :-D, donc, suffit de me le dire et je met en route le squelette et calendrier dedans
Le 11, il y a un evenement toute la journée
L'évenement du 17, c'est un truc du genre 21h a 1h00 du matin, c'était pour voir, si avec la derniere version du plug, j'avais encore le bug que je t'avais plus haut ( la réponse est oui)
Le 19 un evenement de 10h à 11h avec une répétition le 21
Le 25 de 16h à 17h il y a un evenement
Le 25 il y a un autre événement toute la journée
Le 27 il y a un evenement toute la journée avec un répétition le 29
Je ne fais que du local maintenant ( easyphp 5.3), car le site déconne, il semble que cela vienne d'OVH.
Quand j'aurais enfin réussi à faire un truc qui tienne un peu la route, je tel à l'hebergeur pour qu'il me trouve une solution, car à parts dire que spip bla bla bla...
Heuuu, sinon, tu réalises que je ne comprends pas ce que tu veux dire quand tu parles de mettre le calendrier dans un include (( j'ai aucune idéé de la différence entre maintenant et après) j'en suis pas là dans ma compréhention de la programation) :-D
Quand il fonctionnera, je ferais un article pour le mettre en route dans multiflex 3 :-)
J'ai déjà commencer, d'ailleurs ( http://www.spip-contrib.net/ecrire/... ) :-)
Comme ça, plus de question en ce qui concerne ce squelette :-)
tu as mis ton calendrier en noisette (squelettes/noisettes/_navigation/vertical/calendrier.html)
comme je ne trouve pas sommaire.html dans squelettes et que celui du dossier squelettes-dist semble être le même que par défaut, je ne vois pas comment tu as mis tout ça en forme mais le mystère est curieux en effet car le dates disparaissent au bout de deux aller retour... !?!
Bein en faite, cela part du fichier inc-colonne de multiplex car quand j'avais voulu mettre en route le plugin "menus", marcimat m'avait dit que c'était ce fichier qui appelait, ce qu'il y avait dans la colonne, je vais voir avec pour savoir ce qu'il en pense :-)
Donc, j'ai pas sommaire dans squelettes, mais inc-colonne
Je vais voir avec lui et je te tiens au courant :-)
Merci Erwan :-)
donc s'il y a un problème il pourrait venir dans ton inc-colonnes de la ligne <INCLURE{fond=noisettes/_navigation/vertical/calendrier}{env}> (c'est un include !). Le calendrier semble récupérer les infos "date" par {env}, mais bon le problème ne vient pas de là puisque les mois changent bien quand on clique sur les flèches. On a plutôt l'impression que la boucle événement ne récupère plus rien au bout de 2 aller retour du calendrier... alors que pour le coup ses données devraient être gardées en cache. Est-ce que la page a un temps de cache spécifié ?
Pour ma part je pencherait plutôt sur un bug du plugin car sur mes sites le problème apparaît aussi après plusieurs aller retour (plus de deux par contre)... Du coup il faudrait poser la question dans les commentaires liés à la page du plugin sur spip-contrib ou sur plugin.spip.org. Ce ne me semble pas être un gros bug car il est assez rare sur une même page de faire des aller retour sur les mêmes mois mais lorsque ça se produit c'est assez gênant (par exemple lors d'une démonstration devant un client).
Hello,
Merci pour ces lignes mais faut les mettre ou? j'ai agenda2 bonux et tout. j'ouvre le fichier calendrier_mini.html dans un éditeur, et après? je suis si gourde que ça que je comprend rien? Le code de la nouvelle page aujour.html ok pas compliqué, mais le code citer juste au-dessus? je le met à la place de quoi dans le formulaire calendrier_mini
dans plugins/agenda/formulaires/calendrier_mini.html
les lignes à changer sont dans la boucle ligne 43
exactement ligne 49
ceci :
[(#ENV{self}|parametre_url{#ENV{var_date},[(#DATE_DEBUT|affdate{'Y-m-d'})]})]})
par cela :
spip.php?page=aujour&date=[(#DATE_DEBUT|affdate{'Y-m-d'})]})
si vous faites une réécriture d'URL dans htaccess pour afficher juste aujour.html alors cela :
aujour.html?date=[(#DATE_DEBUT|affdate{'Y-m-d'})]})
devrait fonctionner
ah oui je viens de voir la dernière version du plugin... Il y a du changement...
du coup à tester en changeant les lignes 33, 39 et 49 par ce que je propose ci-dessus
Bonjour Erwan
Je ne reviens que maintenant car je ne trouvais pas de solution à mon problème :-(
Donc maintenant pour que cela fonctionne et en plus en AJAX, je fais comme la personne l'explique dans le forum de ce jour du plug ( regarde, lupitek le 19-10-2009 à 12h05) http://www.spip-contrib.net/Agenda-...
Par contre, les lignes que tu donnes ne sont pas bonne, il s'agit des lignes
35, 41, 51
http://zone.spip.org/trac/spip-zone...
Cordialement, Franck
Bonjour Erwan,
Je viens de découvrir cette page internet et je te remercie beaucoup pour ta solution globale !!! C'est nickel !
J'aurais cependant une contrainte en plus à mettre en place... et si quelqu'un à une idée ce serait sympa...
J'ai plusieurs événements sur la même journée (rattachés à un seul article) Jusque là tout fonctionne... mais j'aimerais les classer par heures ... et là ca bloque !
Si quelqu'un a une solution ce serait super sympa... ;o) en attendant merci encore pour ce bout de code SPIP.
Emilie, je viens de lire ça:
http://www.spip.net/fr_article4129....
http://www.spip.net/fr_article4293....
Donc peut-être que si tu rajoutes |heures
spip.php?page=aujour&date=[(#DATE_DEBUT|affdate{'Y-m-d|heures'})]})
Enfin, je sais pas, mais si tu trouves pense à dire la solution
Merci Franck pour ta réponse,
J'ai essayé les différents filtres heures / horaire mais en vain...
Le filtre est pour mon problème à placer (si je ne me plante pas) sur la boucle d'affichage des événements du type :
<BOUCLE_evenements(EVENEMENTS) {agenda date_debut, mois, (#ENV{date}|annee), (#ENV{date}|mois), (#DATE_DEBUT|heures)}{jour_relatif=0}{statut=publie}>
Mais ca fonctionne pas... Si tu as une autre idée je suis preneur. En tout cas merci !! (et si je trouve une solut' d'ici là, je ne manquerais pas de vous le dire ;o)
Bonjour et merci pour cet article. Plugin génial.
Cependant je ne comprends pas comment
1. afficher une page reprenant tous les événements de l'année (voire de l'année suivante) en adaptant l'astuce 'aujour' ci-dessus.
2. afficher un calendrier comportant tous les événements du mois, même si on n'est pas sur la page d'un article associé à un événement. ex : sur sommaire.html ou encore rubrique.html, plan.html ...
Merci pour votre aide et surtout, bonne santé et bonne année à tous !
Une piste pour la question 2 : supprimer {id_article} dans la boucle <BOUCLE_calendrier(EVENEMENTS) du fichier formulaires/calendrier_mini.html (récupérer ce fichier depuis le plugin vers votre dossier squelette/formulaires)
Cependant sur un article sans événement le lien apparaît cliquable mais le clic n'amène nulle part !
Merci pour ce tuto qui m'ôte une épine du pied !!!
Bonjour,
Je commence à penser que je dois être un peu neuneu, ou alors je ne sais plus lire...
Je voudrais que, dans le mini agenda, le lien d'une date qui a un évènement pointe vers l'article lié à cet agenda.
J'utilise SPIP 2.0.10, le plugin Agenda 2.0.6 et Zpip pour mes squelettes.
Merci par avance.
Ça fonctionne...
Il faut remplacer le #SELF en début de ligne 52 par #URL_ARTICLE.
Solution proposée par un gentil utilisateur de spip-contrib.