Introduction
Agendax est un calendrier Ajax. Ajax est une technologie javascript qui permet de charger le contenu d’une partie de page web sans pour autant avoir à recharger la page entière. On charge ainsi uniquement les éléments dont on a besoin. D’où une gain de temps, entre autre.
Dans notre cas, ce sont les données du mois demandé qui se chargeront quand le visiteur clique sur « mois suivant », « mois précédant ».
Pré requis
Pour utiliser Agendax vous avez besoin de la balise #INSERT_HEAD
dans le <head>
des squelettes.
Installation
Téléchargez le plugin sur la zone et mettez le dossier « agendax » dans le dossier plugins de votre SPIP. Ensuite activez le plugin dans l’espace privée. Et enfin, insérez le code suivant à l’emplacement ou le calendrier doit se mettre :
<div id="agendax"></div>
Paramétrage
La configuration est à faire dans les 3 fichiers principaux :
agendax.css, agendax.js.html et donnees_agendax.html :
- agendax.css : C’est lui qui rassemble les styles qui vont permettre d’affiner l’apparence du calendrier sur votre site.
- agendax.js.html : Au début de ce fichier se trouvent plusieurs variables :
-
style_rempli
: le style css à utiliser quand le jour à un évènement, -
style_pas_rempli
: le style css à utiliser quand le jour n’a pas d’évènements, -
fleche_suivant
: l’image ou le caractère qui va être affiché pour aller au mois suivant, -
fleche_precedent
: l’image ou le caractère qui va être affiché pour aller au mois précédent, -
sablier
: balise image animée (ou pas) ou le caractère qui va remplacer le nom du mois pendant le chargement de l’ajax.
- donnees_agendax.html : C’est dans ce fichier que va être faite la boucle. Vous pouvez le modifier comme vous voulez, en ajouter d’autres, etc...
Discussions par date d’activité
33 discussions
Tout d’abord félicitation à l’auteur pour ce plugin qui est simple et concis.
Cependant juste un point ne me semble pas fonctionnel :
Je me sers de la page agendax_view pour prévisualiser tous les évènements d’une date sélectionnée. Celle-ci est donc accompagnée, en div droite, du calendrier dans lequel on navigue de mois en mois.
Quand on sélectionne une date, la liste des évènements correspondants apparaît bien mais le calendrier se recharge par rapport au mois de la date du jour (comme quand on charge la page pour la première fois) au lieu de rester sur le mois en cours sélectionné.
Pas assez féru en js, ne serait-il pas possible de conserver les paramètres annee et mois passés à la fonction remplire_agenda() ?
A moins que cela ne se situe ailleurs ?
Répondre à ce message
bonjour,
tout d’abord bravo pour ce beau plug-in.
un petit souci. J’aimerais faire apparaitre dans l’agenda les articles ET les brèves associés à un mot clé.
J’ai tenté de mettre une deuxième boucles pour sélectionner également les brèves mais ça ne marche pas.
est possible ou est ce moi qui fait une fausse manoeuvre ?
(j’ai reposté le message à cause du titre qui était incomplet...)
Répondre à ce message
bonjour,
tout d’abord bravo pour ce beau plug-in.
un petit souci. J’aimerais faire apparaitre dans l’agenda les articles ET les brèves associés à un mot clé.
J’ai tenté de mettre une deuxième boucles pour sélectionner également les brèves mais ça ne marche pas.
est possible ou est ce moi qui fait une fausse manoeuvre ?
Répondre à ce message
Après avoir essayé toutes les solutions proposées sur les commentaires pour n’afficher dans l’agenda que les événements signalés par le mot-clé Agenda, je suis obligée de déduire que les modifs proposées pour Agendax (qui affiche pourtant les articles par leur date de parution) ne vont pas avec spip 1.9.3.
Dommage, il est bien ce pluging !
Répondre à ce message
Bonjour, j’ai installé Agendax pour voir un peu. Le plugin est bien activé.
J’ai choisi la page où l’agenda devrait apparaitre avec un mot-clé « agenda », et modifié le squelette de article.html en conséquence comme indiqué.
Cependant, l’article qui devrait faire apparaitre l’agenda me donne une erreur :
Erreur : $ is not defined
Fichier source : http://ha32.org/spip/Test?page=agendax.js
Ligne : 103
Que faire ?
Tu est en spip 1.9.1 qui n’as pas jquery. Il faut alors que tu rajoute jquery à la main dans les head de tes pages.
Un truc du genre :
Tu peut aller chercher jquery ici : http://jqueryjs.googlecode.com/files/jquery-1.1.3.1.pack.js
Et tu le met dans un dossier javascript dans ton dossier squelette par exemple.
Merci pour ta réactivité.
J’ai installé. Maintenant ma page devant faire apparaitre l’agenda commence ainsi :
J’ai toujours la même erreur.
Bon, j’ai carrément installé le plugin jquery. Alors c’est mieux : plus d’erreur.
Sur la page prévue pour l’agenda je vois apparaitre :
< >
Lu
Ma
Me
Je
Ve
Sa
Di
C’est sympa en effet mais je n’ai pas les dates des jours et pas d’événement...
Houla ... dans ta page sommaire je vois déjà deux jquery. C’est pas bon. En plus le plug jquery est en 1.0.4 : C’est du périmé.
Donc, je te propose déjà de désactiver le plug jquery et de mettre ton INSERT_HEAD et le lien vers jquery à la fin du head.
Ca devrait être mieux.
En effet, tu avais bien raison :
http://ha32.org/spip/L-agenda-du-Centre
Merci donc. Je vais réfléchir aux moyens d’avoir une présentation un peu plus sympa...
Là-dessus quand je clique sur le jour où il y a un événement (actuellement le 22 septembre) je tombe sur une page que je ne sais pas tellement bien utiliser !
As-tu fais quelque chose pour que l’Agenda prenne en compte l’événement au 22 septembre ? La date de publication de l’article est-il créé au 22/09 ?
Moi je n’arrive pas à voir mes événements de septembre et je n’ai vu mes événement d’août qu’à partir du moment où ils étaient antérieurs à la date courante.
C’est possible de voir les modif que tu as apporté au fichier « agendax.js.html » ?
Merci d’avance
Ça c’est pas trop dur : l’article a une date de publi antérieure (hier, c’est #DATE_REDAC) et une date de publi, #DATE, au 22 septembre. Cet article a un mot-clé « agenda ». La boucle qui appelle l’agenda est :
Absolument aucune !
tu dois changer les critères de boucle dans le fichier donnees_agendax.html dans le dossier du plugin.
Là tu dois mettre :
à la ligne 28 du fichier original
Et tu ne dois rien mettre autour du div
tu dois changer les critères de boucle dans le fichier donnees_agendax.html dans le dossier du plugin.
Là tu dois mettre :
à la ligne 28 du fichier original
Et tu ne dois rien mettre autour du div
Bonjour !
J’arrive maintenant à une présentation acceptable (quoique, les touches de navigation... on verra + tard).
Cependant, la mise à jour me fait un truc louche : mon événement du 22 septembre s’affiche maintenant au 22 août !! j’y comprends rien... et du coup quand je clique sur le 22 (août) la page agenda_view qui vient est vide.
Mon essai d’agenda
Bonsoir
C’est énervant de ne pas comprendre !
Que signifie : « tu ne dois rien mettre autour du div » ?
Faut-il supprimer les lignes 29 à 32 ?
« Ça c’est pas trop dur : l’article a une date de publi antérieure (hier, c’est #DATE_REDAC) et une date de publi, #DATE, au 22 septembre. Cet article a un mot-clé « agenda ». La boucle qui appelle l’agenda est : <BOUCLE_agenda(ARTICLES) » etc...
Dans quel fichier et à quel endroit faut placer cette formule de bobca ?
Répondre à ce message
Je débute un peu, je ne suis même pas sûr de poster au bon endroit pour ma question.
Je suppose qu’il faut indiquer à l’agenda de quelle rubrique il va dépendre, et à ce que j’ai compris la boucle se trouve dans dadonnees_agendax.html. Mais ou exactement ? Quand je vous disais que je débutais...
Salut à toi,
La boucle s’appelle « LesZevenements » et elle commence à la ligne 28 et se termine à la ligne 34. Tu peu voir le fichier ici
Il suffit de rajouter
{id_rubrique = 53}
pour qu’elle récupère les données de la rubrique 53Ou d’ajouter
{id_mot = 66}
pour qu’elle récupère tous les articles qui ont le mot clé n°66Ou les deux à la fois.
Ca peut donner quelque chose du genre :
ça marche nikel, merci beaucoup
Bonjour,
Voilà un plugin très attendu !
Toutefois, est-il possible de lui faire prendre en compte la date antérieure de SPIP ?
Merci d’avance pour la réponse
Qu’appel tu la date antérieure ?
souvent on met en place pour les articles un duo de dates : la date de publication et la date de publication antérieure. Cette dernière est en fait la date d’apparition de l’article tandis que la « date de publication » est la date de l’événement auquel l’article se réfère. C’est très pratique pour annoncer des événements futurs.
L’explication de bobca est limpide.
En fait, sur le site de l’association dont je m’occupe, je veux utiliser l’agenda pour annoncer les dates des prochaines réunions. J’ai créé une rubrique « Agenda » (pour trier les articles comme il est indiqué) mais je veux par exemple annoncer dans l’agenda les dates des réunions pour 12 et 18 septembre. Sachant que nous sommes au mois d’août, je n’ai rien qui s’affiche dans le mois de septembre. Comment faire ?
Autre questions au passage, lorsqu’on clic sur un événement, la page qui s’affiche n’est pas très lissible, il y en a dans tous les sens. C’est également le cas dans la page d’exemple mentionné dans cette contrib. Etant débutant en SPIP, je ne vois pas très bien comment intégrer correctement la page dans l’environnement du site. Une suggestion ?
Bonne journée
Tu peux annoncer de futurs évennements et tu peux aussi personnaliser la page d’arrivé. Preuve en est :http://www.lesmusesdutroquet.fr/
Le site est en construction et les évennements bidons mais ça fonctionne déjà.
Je débute également.
Ton squelette est très proche de ce que je cherche à faire, peux-tu me le laisser voir ?
Merci d’avance !
Ton site est bien la preuve que tout ça peut fonctionner.
Ce que je me demande c’est bien comment faire pour obtenir ce résultat.
Le fichier « agendax.js.html » contient la boucle suivante :
/* On recherche les jours avec des évènements et on met à jour les cases correspondantes */
for (k=1 ; k<=31 ; k++)
if ($("#contenu"+k,event).length > 0)
$("#jour"+k).addClass(style_rempli) ;
$("#jour"+k).attr("alt",$("#info"+k,event).text()) ;
$("#jour"+k+" a").attr("href",$("#lien"+k,event).text()) ;
else
$("#jour"+k).addClass(style_pas_rempli) ;
$("#jour"+k).remove("a") ;
Dans mon contexte, cette boucle ne donne pas de résultat (pas d’article trouvé) pour les événements positionnés par exemple au mois de septembre.
Je pense que tu as modifié ce fichier de manière significative. Est-ce possible d’avoir une description de tes modifications ?
Merci
J’ai fais deux modifs ultra simples
1) je me suis débrouillé pour que l’id de l’article passe dans l’url. par défaut c’est la date et je ne savais pas comment l’exploiter. J’ai du changer la ligne 32 dans le fichier donnees_agendax.html , la boucle concernée est LesZevenements.
?page=agenda_jour&id_article=#ID_ARTICLE .
Avec ce changement on obtient donc des url du type http://www.lesmusesdutroquet.fr/?page=agenda_jour&id_article=1
2) Il faut ensuite créer dans son fichier squelette une page agenda_jour.html car en l’état, c’est la page par défaut du fichier dist qui est appelée. Dans cette page on veut récupérer l’id_article passée dans l’url.
BOUCLE_jour(ARTICLES)id_article
h1 #TITRE /h1
p Le [(#DATE|affdate’d/m/Y’)]
à partir de (#DATE(#DATE
/p
/BOUCLE_jour
d’ailleur je suis sûr qu’il y a moyen d’écrire plus simplement l’heure et les minutes de l’evennement. C’est du fignolage mais je suis encore en phase d’apprentissage.
le copier coller des balises sur ce forum a altéré mon message, j’espère que ça reste claire. En tout cas je n’ai pas touché au js.
OK merci de cette explication.
Il y a tout de même une chose que je ne m’explique pas, c’est le fait que je vois les événements qui ont une date de création au mois d’aout et pas ceux de septembre.
Une idée ?
Si tu as une url, je vais pouvoir aller voir ce qui se passe ...
Jusque là j’étais en local.
J’ai donc mis à jour mon site et là je ne vois plus aucun articles dans le calendrier !!
url = http://fcpedescartesantony.free.fr/
La rubrique 8 est une rubrique agenda.
Merci de ton aide
Bon plusieurs choses :
Peut-être que c’est celle de ton squelette qui la courcircuite. Enlève la ligne
de ton header pour voir si c’est le cas.
Voilà ce que je peux dire à première vue. Après il faudrait des codes ftp, une analyse plus profonde et tout et tout si les bugs persistent .
Dis moi si ca fonctionne avec ca.
La suppression de la ligne n’a pas d’effet notable (test en local où j’ai installé la version 0.1.2 d’agendax)
Bonjour,
Je voudrais que n’apparaisse que les événements attachés au mot clé « Agenda ».
J’ai inséré
id_mot=Agenda après (ARTICLES)
L’agenda est vide.
J’ai introduit le chiffre correspondant au mot clé Agenda
id_mot=5 après (ARTICLES)
Même résultat.
L’événement étant dans une brève, j’ai pensé qu’il fallait ajouter « Brèves » à « Articles » :
( ARTICLES)( BREVES) id_mot=5
Là, les chiffres disparaissent de l’agenda !
Comment faire pour qu’apparaisse (et que n’apparaisse) sur cet agenda que les articles (et brèves) désignés par le mot-clé Agenda ?
Répondre à ce message
Merci pour la réponse à ma question précédente.
Je n’ai pas pu mettre en oeuvre jQuery sur spip 1.9.1 (même problème que celui abordé ci-dessous, version trop ancienne de jQuery) mais cela fonctionne pour spip 1.9.3.
Sauf que je ne vois pas l’intérêt de renvoyer à des dates de publication d’articles.
Je voudrais seulement indiquer en une ou deux lignes maxi des événements futurs.
J’ai suivi les conseils donnés ci-dessous (à l’envers) :
puis j’ai supprimé #DATE|annee), (#DATE|mois)par date> et remplacé par ?page=agenda_jour&id_article=#ID_ARTICLE parce que cela correspond à la ligne 32 comme indiqué ci-dessous :
Evidemment, cata. Plus de calendrier sinon la ligne lu ma mer jeu ven sam dim.
Comme je ne suis absolument pas doué, ce serait sympa à ceux qui ont procédé aux modifs de copier l’intégralité des fichiers modifiés (et pas seulement la ligne que je risque de ne pas trouver, même avec le numéro !) et de m’indiquer comment procéder pour alimenter cet agenda (nouvel article ? rubrique agenda qui serait invisible sur page d’accueil).
Merci à tous ceux et celles qui répondront à ces dernières questions.
Je complète ma question. Voici le fichier donnees_agendax.html
Je serais infiniment reconnaissant si quelqu’un pouvait y introduire les modif de façon à pouvoir obtenir uniquement les dates des événements que l’on souhaite mettre en valeur en lieu et place des dates de publication des articles. (En outre, je viens d’essayer avec une brève daté du 20 septembre ... et cela n’établit pas de lien sur l’agenda. J’ai donné l’info en brève car je souhaite que les infos de l’agenda n’apparaissent pas sur la page d’accueil mais j’aimerais ne pas avoir à les publier obligatoirement en brève. Qu’ils puissent être invisibles si on ne clique pas sur l’agenda).
A part ce petit problème, il est très très esthétique, cet agenda.
#HTTP_HEADERContent-Type : text/html
]
[
]
p.s. bon, ça ne va pas, le fichier se convertit lors de la mise en ligne. Si quelqu’un veut me répondre à le.pic.vert at free.fr
Répondre à ce message
Salut
Je vais poser des questions qui vont vous faire hurler de rire :
1) « Pour utiliser Agendax vous avez besoin de la balise #INSERT_HEAD dans le
des squelettes. » Dans quel fichier faut-il insérer cette balise ? Et à quel niveau exactement (je travaille sur spip 1.9.3 et un autre site 1.9.1)2) « insérez le code suivant à l’emplacement ou le calendrier doit se mettre :
< div id = "agendax">
» Si on veut le placer sur la page d’accueil, on le place dans Sommaire, n’est-ce pas ?
3) « http://jqueryjs.googlecode.com/files/jquery-1.1.3.1.pack.js Et tu le met dans un dossier javascript dans ton dossier squelette par exemple » Pour le site en 1.9.1, j’ai créé un répertoire "javascript" et inséré ce fichier. Est-ce cela qu’il fallait faire ?
4) Enfin, est-il possible de voir un calendrier en grandeur nature correspondant au calendrier téléchargeable sur cette page ?
Merci des vos réponses.
1) tout dépend de ta logique de fonctionnement :
- si tu travaille à partir des squelettes de la dist tu n’as rien à changer , la balise est déjà présente dans le fichier inc-head.html
- si tu travailles à partir de squelette perso tu dois dois avoir la balise
#INSERT_HEAD
qui doit se trouver quelques part dans tes squelettes, entre les balise<head></head>
2) tout se passe dans sommaire.html
3) sous spip 1.9.2 et 1.9.3 pas de problème jquery est déjà installé donc pas de modif à faire ; pour spip 1.9.1 je pense qu’en installant le plugin jquery trouvable ici cela devrait résoudre ton problème
Répondre à ce message
Je viens de comprendre !
Mes articles n’apparaissent pas dans l’agenda au delà de la date du jour !
Après une longue recherche, je viens de me rendre compte que mon paramétrage de SPIP était positionné sur : « Ne pas publier les articles avant la date de publication fixée. »
Il est donc indispensable de changer ce paramètre (icône Configuration de l’espace privé) pour que la référence à un article apparaisse dans l’agendax quelque soit sa date de publication.
Un point de réglé !
Il me reste maintenant à résoudre l’apparition du message :
« Warning : Missing argument 1 for generer_url_public() in ....www\spip\ecrire\inc\utils.php on line 801 »
Quelqu’un a-t-il une idée ?
Répondre à ce message
A tous :
J’ai mis à jour agendax.
Celle-ci corrige un bug d’affichage : Aucun article le premier du mois. Vous pouvez maintenant créer des activités le 1er d’un mois.
J’ai aussi mis un squelette de visualisation des résultats un peu plus clair que celui qu’ agenda_mois :)
Tout se configure encore dans donnees_agendax.html
Seb.
Bonjour,
merci pour ce plugin, il fonctionne parfaitement.
Dans cette nouvelle version (avec le squelette de visualisation) je vais certainement l’intégrer dans un de mes sites.
salutations
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 :
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.
Suivre les commentaires : |