12 oct. 2008
Installer un mini calendrier sur SPIP 1.9.2
09:58
Jean-Christophe Duvivier
Internet
Site
SPIP
Tutoriel
Web
Le but de ce Tutoriel est de vous permettre d'intégrer un mini calendrier sur votre site SPIP, de la même manière que je l'ai fait sur ce site.
Ayant moi même rencontré beaucoup de problèmes dans l'installation de ce plugin, et, une fois réussi, ayant reçu beaucoup de mails me demandant conseils pour réaliser cette intégration, j'ai décidé de rédiger un Tutoriel, comme j'aurais aimé en trouver il y a 6 mois.
Un grand merci à Hervé, rencontré sur SPIP Contrib, qui m'a permis d'avancer ;)
Préambule :
Tout d'abord, il vous faut vous rendre sur SPIP Contrib pour télécharger la version 0.13 du calendrier, ainsi que le plugin Widget Calendrier. Ces deux plugins sont disponibles ici.
Une fois téléchargées, dézippez vos deux archives, et placez les dans le répertoire plugins présent à la racine de votre site (s'il n'y est pas, créez le).

Rendez-vous dans l'admin de votre site, puis dans Configuration > Plugins et activez les deux plugins.

À partir de maintenant, je vais décrire la marche à suivre pour implanter votre calendrier dans votre squelettes et énumérer les erreurs que vous pourriez rencontrer.
1ère étape :
Comme indiqué dans SPIP Contrib, vous devez insérez le code suivant dans votre squelette :
#CALENDRIER_MINI{#ENV{date},'date',#SELF}
1er Cas : Ça fonctionne, vous pouvez passer à l'étape suivante.
2ème Cas : Si le calendrier s'affiche mais que vous ne pouvez pas naviguer entre les mois c'est en général parce-que vous avez placé votre code dans un squelette que vous appelez (grâce à INCLURE) dans votre squelette principal. Le calendrier doit être inséré directement dans le squelette principal.
2ème étape :
Pour tester votre calendrier, vous décidez de programmer un événement (pour programmer un événement, rendez-vous dans l'article concerné, et cliquez sur la flèche noire à gauche de AGENDA).
1er Cas : Votre événement s'affiche dans votre calendrier, et vous accédez à l'article en cliquant sur le jour concerné. Vous pouvez passer à l'étape suivante.
2ème Cas : Si votre événement ne s'affiche pas, cela vient de votre page Plugins > agenda_1_9_2 > formulaires > calendrier_mini.html. Créez un dossier formulaires dans votre dossier squelettes, et copier votre page calendrier_mini.html dans votre nouveau dossier formulaires.
Remplacez le code suivant :
<tbody> <BOUCLE_calendrier(EVENEMENTS) {id_article}{id_mot?}{agenda date_debut, mois, (#ENV{date}|annee), (#ENV{date}|mois)}> [(#DATE_DEBUT|Agenda_memo_full{#DATE_FIN,[(#TITRE|addslashes)],#DESCRIPTIF,#LIEU, [(#ENV{self}|parametre_url{#ENV{var_date},[(#DATE_DEBUT|affdate{'Y-m-d'})]})]})] </BOUCLE_calendrier> [(#ENV{date}|agenda_mini)] </tbody>
Par celui-ci :
<tbody class="calendrier-td"><BOUCLE_calendrier(EVENEMENTS) {id_mot?} {agenda date_debut, mois, (#ENV{date}|annee), (#ENV{date}|mois)}> [(#DATE_DEBUT|Agenda_memo_full{#DATE_FIN,[(#TITRE|addslashes|supprimer_numero)], #DESCRIPTIF,#LIEU,#URL_ARTICLE,[(#DATE_DEBUT|affdate{'Y-m-d'})]]})] </BOUCLE_calendrier> [(#ENV{date}|agenda_mini)] </tbody>
3ème étape :
Enfin, on va remanier le style de l'agenda. En principe vous ne rencontrerez pas de problème pour le personnaliser, mais je préfère vous donner toutes les cartes.
Personnalisation des cellules :
#calendar td { }
Personnalisation des cellules du mois en cours :
#calendar td.libre{ }
Personnalisation des cellules n'appartenant pas au mois en cours :
#calendar td.horsperiode{ }
Personnalisation de la cellule du jour en cours :
#calendar td.today{ }
Personnalisation des cellules des jours occupés :
#calendar td.occupe { }
Si vous voulez changer le nom des classes, en rajouter, en enlever etc., ça se passe dans le fichier agenda_1_9_2 > balise > calendrier_mini.php lignes 96, 100 et 107.
Utilisation :
Il ne vous reste plus qu'à tester votre calendrier en y ajoutant plusieurs événements. Rendez-vous dans votre article, et dépliez la partie concernant l'agenda.

Renseignez-y le titre, le lieu, la date, le descriptif, et validez. En principe, l'événement figure dès à présent dans le calendrier ;-)
Si vous rencontrez des problèmes en suivant ce tutoriel, n'hésitez pas à laisser un message. J'essaierai d'y répondre ;-)
Mise à jour du 8/02/2009 : Plusieurs événements le même jour
Comme vous l'avez surement remarqué, lorsque plusieurs événements sont programmés le même jour, le lien renvoi sur le premier événement saisi, rendant les autres inaccessibles. Suite à de nombreuses demandes, je vous propose une solution à ce problème, facile à mettre en place. Elle est majoritairement basée sur l'infobulle javascript de Damien Alexandre, que j'ai remaniée à ma sauce, en la combinant avec le script de l'agenda. Voici les étapes de mise en place :
1ère étape : Le fichier calendrier_mini.html : squelette et scripts
Rendez-vous tout d'abord dans le fichier plugins > agenda_1_9_2 > formulaires > calendrier_mini.html ou dans squelettes > formulaires > calendrier_mini.html (si vous avez au préalable dupliqué le squelette de votre calendrier dans ce dossier).
Juste après ce code :
<div id="calendar">
Insérez ceci :
<div id="curseur" class="infobulle"></div>
Ce code représente une infobulle qui contiendra les liens de différents événements de la journée. Peut-importe où vous l'insérez étant donné qu'on la mettra en position absolute. Mais mieux vaut la mettre ici pour ne pas la perdre.
Ensuite le script. Vous pouvez le mettre ou vous voulez, tant qu'il est présent dans la même page que votre mini calendrier. Pour mon test, je l'ai mis tout en haut de mon calendrier_mini.html, c'est à dire avant le :
<div id="calendar">
Voici l'intégralité du code à insérer :
<script language="javascript" type="text/javascript"> <!-- // Fonction qui nous retourne l'élement en fonction de son id function GetId(id) { return document.getElementById(id); } var i = false; // Si l'infobulle est invisible, i = false et invesement var a = true; // Si le curseur a déja survolé le jour, a = false // Fonction qui calcule la position de l'infobulle en fonction de celle du curseur function move(e) { if(i && a) { // Si la bulle est visible et que c'est la première fois que le curseur survole le jour, on calcul en temps reel sa position idéale if (navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE GetId("curseur").style.left=e.pageX + 5+"px"; GetId("curseur").style.top=e.pageY + 10+"px"; } else { // Si on est sous IE if(document.documentElement.clientWidth>0) { GetId("curseur").style.left=20+event.x+document.documentElement.scrollLeft+"px"; GetId("curseur").style.top=10+event.y+document.documentElement.scrollTop+"px"; } else { GetId("curseur").style.left=20+event.x+document.body.scrollLeft+"px"; GetId("curseur").style.top=10+event.y+document.body.scrollTop+"px"; } } } a = false; // Le curseur vient de survoler le jour, on passe a à false } // Fonction qui affiche l'infobulle function montre(text) { if(i==false) { // Si l'infobule est invisible, on l'affiche GetId("curseur").style.visibility="visible"; // Si il est caché (la verif n'est qu'une securité) on le rend visible. GetId("curseur").innerHTML = text; // on copie notre texte dans l'élément html i=true; a = true; } else { // Si l'infobule est visible, on la cache cache(); } } // Fonction qui cache l'infobulle function cache() { if(i==true) { GetId("curseur").style.visibility="hidden"; // Si la bulle est visible on la cache i=false; } } </script>
Je pense que les commentaires de Damien mêlés aux miens sont suffisants pour comprendre le code. Mais n'hésitez pas si vous avez des questions ;)
2ème étape : Le fichier habillage.css : style
Comme précédemment, vous pouvez mettre ce code n'importe où, mais c'est plus propre de le mettre dans votre fichier css principal. Il vous suffit donc d'y insérer ce code :
.infobulle { position : absolute; visibility : hidden; border : 1px solid Black; padding : 10px; font-family : Verdana, Arial; font-size : 10px; background-color : #ffffcc; }
Modifiez le style à votre guise, mais laissez bien la position en absolute, c'est nécessaire pour le calcul de la position de votre infobulle en fonction de votre curseur.
3ème étape : Le fichier calendrier_mini.php : remplissage de l'infobulle
Rendez-vous dans le fichier plugins > agenda_1_9_2 > balise> calendrier_mini.php et remplacez ce code :
$evts = $evenements[$amj]; $class=""; if ($evts) { $evts = "<a href='".parametre_url($evts[0]['URL'],'date',"$annee_en_cours-$mois_en_cours-$jour")."' title='".$evts[0]['SUMMARY']."'>".intval($jour)."</a>"; $class='occupe'; } else { $evts = intval($jour); $class='libre'; }
Par ce code :
$evts = $evenements[$amj]; $info = ""; // Initialisation du contenu for($i=0 ; $i<sizeof($evts); $i++) // Pour tous les éléments du tableau d'événements, { // On créé un lien vers l'événement et on l'affiche $info .= "<a href=\'".parametre_url($evts[$i]['URL'],'date',"$annee_en_cours-$mois_en_cours-$jour")."\' title=\'".$evts[$i]['SUMMARY']."\'>".$evts[$i]['SUMMARY']."</a><br />"; } $class=""; if ($evts) { $evts = "<a onmouseover=\"montre('".$info."');move()\" href='".parametre_url($evts[0]['URL'],'date', "$annee_en_cours-$mois_en_cours-$jour")."' title='".$evts[0]['SUMMARY']."'>".intval($jour)."</a>"; $class='occupe'; } else { $evts = intval($jour); $class='libre'; }
La méthode est simple, on parcoure le tableau des événements, et pour chaque élément, on affiche dans l'infobulle le titre de l'événement, qui mène directement à l'article.
Au final, l'utilisation est très simple : un survol sur le jour et vos événements apparaissent dans l'infobulle (vous pouvez donc choisir l'événement qui vous intéresse). Un deuxième survol sur le jour, et votre infobulle disparait.
Et voilà ! Si vous ne vous êtes pas trompés, tout est opérationnel ! N'hésitez pas à venir exposer vos problèmes si vous en rencontrez ;)
Parce qu'ils le méritent !




Commentaires
Le 12 oct. 2008 à 17:06
Bonjour,
j ai un petit soucis concernant l' insertion du code suivant :
#CALENDRIER_MINI{#ENV{date},'date',#SELF}
en effet j utilise le plugin Alternative qui cree une architecture de site sans cree de squelette.
Donc si je comprend bien je dois donc cree un squelette et y inserer le code dans une page html ?
Pouvez m eclairer dans ce cas de figure ?
Merci d avance !!!
Le 12 oct. 2008 à 17:16
Tu utilises le plugin alternative, ou le squelette alternative ?
http://www.stages.alternatives.ca/a...
Le 12 oct. 2008 à 17:31
oui, il s agit bien de ce lien dont j ai telechargé les trois fichiers :
spip loader
plugin
et themes
hors sur le repertoire de mon site je n ai pas de repertoire squelette.
Le 12 oct. 2008 à 18:00
Ok. En principe, tu dois avoir tes squelettes dans le dossier alternatives > inc.
Pour les personnaliser, créés un dossier squelettes à la racine de ton site, dossier dans lequel tu créés un dossier inc dans lequel tu vas copier tous les fichiers présents dans ton alternatives > inc. Si t'as des modifs à faire, fais les sur les fichiers présents dans ton dossier squelettes > inc. Dans ton cas, tu vas avoir à coller le code du mini calendrier. Je te laisse agir sur le fichier HTML de ton choix, ça dépend où tu veux le mettre :p
Le 12 oct. 2008 à 21:20
Concernant le repertoire inc d alternatives il n y a que des fichiers .php cependant j ai un repertoire nommée dist qui contient des fichiers .html tels que rubrique.html et article.html je pense que ce sont ses fichiers que je dois copier dans mon squelette.
tu en penses quoi.
Le 12 oct. 2008 à 21:30
exact ce sont ceux-là =)
Le 13 oct. 2008 à 13:49
Bonjour Jean christophe,
voila j y suis presque, j ai inclus le lien #CALENDRIER_MINI{#ENV{date},'date',#SELF} au dessus de ma colonne breve dans mon fichier sommaire.html, elle apparait bien mais le probleme c est que je perds ma feuille de style pourtant tous ce trouve dans le dossier squellettes.
Cependant si je remets l ensemble des fichiers dans le repertoire dist comme il etait à l origine je recupere bien ma feuille de style mais je perds mon calendrier.
comment puis je solutionner ce petit probleme.
merci d avance pour ton probleme.
Le 13 oct. 2008 à 16:40
Ok. Ton site est actuellement en ligne ? T'aurais un url que je puisse aller voir ? :p
Le 13 oct. 2008 à 17:38
voici le lien
Le 13 oct. 2008 à 19:10
Chez moi ton site fonctionne bien oO
Le 15 oct. 2008 à 19:23
Bonjour,
Euréka, j ai trouvé....
En fait la problématique venait du fait que j'utilisais le squelette alternative et par conséquent la procédure d installation d un calendrier et agenda etait quelque peu différente.
Je te joins le lien d installation du calendrier au cas ou tu aurais encore des demandes concernant ce probléme.
http://zone.spip.org/trac/spip-zone...
En tout cas je te remercie pour ton aide et ta sympathie et surtout ta disponibilité.
bye.
Le 15 oct. 2008 à 19:39
Merci pour le lien, ça servira à plus d'un ;-)
Bonne continuation =)
Le 22 oct. 2008 à 16:41
Merci beaucoup pour l'affichage du calendrier qui ne marchait pas si pas mis dans le dossier squelette !!
Super
Le 27 oct. 2008 à 23:54
Bonjour,
Les liens ne fonctionnent pas avec le repertoire squelette de mon site SPIP. J'ai du le renommer en squelettes, mais du coup je perds les CSS.
Que dois-je faire ?
Merci par avance.
Le 28 oct. 2008 à 07:59
Bonjour,
Est-ce que tu utilises le plugin alternative ?
Le 28 oct. 2008 à 23:18
Non... Le plugin BLiP.
Le 29 oct. 2008 à 15:50
Je ne connais pas ce plugin. Je l'installe ce soir pour voir comment il fonctionne et je te tiens au courant ;-)
Le 29 oct. 2008 à 19:11
Salut,
J'ai installé un nouveau Spip avec les squelettes Blip, j'ai copié l'intégralité de /dist dans /squelettes et tout fonctionne bien de mon côté. Le seul problème éventuel serait que tu aies oublié de copier ton habillage.css dans ton /squelettes.. Je vois que ça. Tiens moi au courant ;)
Le 29 oct. 2008 à 23:43
Merci beaucoup pour ton aide, c'est vraiment sympa. En fait j'ai repris le site http://aopa.free.fr que je dois faire évoluer, et je ne comprends pas encore bien l'architecture. En tout cas le fichier habillage.css est bien présent dans le répertoire squelettes.
Je crois que je vais faire comme toi, refaire une installation de SPIP pour comprendre d'où vient mon problème actuel.
Je te tiens au courant, demain probablement.
Le 04 nov. 2008 à 21:00
Bonjour,
J'ai installé le calendrier avec votre très bon tutoriel.
Merci beaucoup, ça s'est fait tout seul.
Voilà la merveille en bas du menu gauche.
http://www.margueritecie.org/
J'ai programmé deux "événements", le 15/11 et un autre en décembre.
Le souçi c'est que lorsque j'appuie sur les flèches ( >> ou << en rouge ) pour changer de mois ( avant ou arrière ) j'arrive toujours sur le même article de novembre.
Si vous avez une idée de l'origine du problème, elle est bienvenue.
merci
Le 04 nov. 2008 à 21:18
Salut !
Est-ce-que t'as remplacé le code de ton calendrier_mini par le code que j'ai fourni dans l'étape 2 ?
Le 04 nov. 2008 à 22:45
Merci de ta réponse rapide.
Oui, je l'ai fait, j'avais mis le nouveau code.
L'événement de Novembre fonctionne bien.
Maintenant l'événement de Décembre" pointe sur un article qui n'a rien à voir avec celui à partir duquel j'ai programmé l'événement.
Pour Décembre il devrait pointer sur l'article 192.
Le 04 nov. 2008 à 23:09
Ton calendrier n'affiche même pas le mois de décembre, il reste bloqué sur le mois de novembre... Je cherche, je te tiens informé si j'ai des nouvelles ;)
Le 04 nov. 2008 à 23:37
Merci beaucoup !
Le 05 nov. 2008 à 21:03
Je pose la question au cas ou : tu n'appelles pas ton calendrier via un INCLURE ?
Si c'est pas le cas, est-ce-que tu peux m'envoyer le dossier contenant ton plugin, ainsi que le code de ta page d'appel du calendrier ?
mon mail : contact(at)jchristophe(dot)fr
Le 05 nov. 2008 à 21:20
Salut,
En fait j'appelle le calendrier - #CALENDRIER_MINI{#ENV{date},'date',#SELF} - dans un fichier .html (le menu latéral gauche) que j'inclus par un INCLURE dans les autres pages.
C'est dans ce cas que tu veux les fichiers ?
Le 05 nov. 2008 à 21:25
Non c'était dans l'autre :D
Le problème vient de là. Il faut que tu mettes ton calendrier directement dans ta page, sans passer par un INCLURE. J'ai pas eu le temps de chercher pourquoi ça ne fonctionne pas via un INCLURE, mais si ça te pose pas trop de problème, procède de cette manière. Vu que ton calendrier est en fin de ta sidebar, ça devrait pas trop poser de problème... En principe ça devrait marcher, tiens moi au courant ;)
Le 05 nov. 2008 à 22:00
Oui, super ! ça vient de là, je l'ai mis en gros sur une page de test pour essayer :
http://www.margueritecie.org/spip.p...
Je vais le mettre finalement en haut du menu tellement qu'il est beau mon calendrier :-) et le reste du menu dans une include.
Merci beaucoup pour ton aide !
Le 06 nov. 2008 à 17:45
Content que ça fonctionne ;)
Bonne continuation ;)
Le 12 nov. 2008 à 15:45
Salut,
Très bien fait ton tuto et le calendrier a l'air d'être sympa.
avant de m'y coller, une petite question:
Est-ce que les évènement doivent forcement appartenir à un article?
En fait je vais utiliser spip pour une association sportive et j'aurais voulu intégrer un calendrier des compétitions, sans pour autant qu'il y ait un article particulier pour chaque compétition...
merci d'avance
Le 12 nov. 2008 à 19:20
Salut !
En effet, un événement est forcément lié à un article étant donné que l'on renseigne la date de l'événement dans l'article lui même. Cependant, tu peux par exemple ne renseigner que le titre de l'article...ça peut être une alternative...
Le 13 nov. 2008 à 11:31
Ok, je comprends mieux. je suis un peu novice en spip... ;-)
Une autre question à laquelle j'espère tu pourras me répondre....elle concerne toujour le calendrier_mini.
Une fois installé sur mon site, je souhaiterais que lorsque l'on clique sur une date contenant un évènement, une page différente de article.html soit ouverte.
je ne sais pas où placer le lien "spip?page=mapage.html"...
merci d'avance
Le 13 nov. 2008 à 12:01
Le lien à modifier se situe dans agenda_1_9_2 > balise > calendrier_mini.php ligne 94. Elle doit commencer par ça :
$evts = "<a href='".parametre_url[...]
Le 15 nov. 2008 à 11:49
Ok, je te remercie encore!
J'ai suivi tes indications et modifier la ligne comme ça:
$evts = "<a href='".parametre_url($evts[0]['URL']."&page=NOMDEMAPAGE&",'date',"$annee_en_cours-$mois_en_cours-$jour")."' title='".$evts[0]['SUMMARY'].
ça fonctionne nickel!
Le 17 nov. 2008 à 21:38
Salut,
Je reviens avec mon calendrier qui a un petit souci.Pour mémoire, je ne pouvais pas changer de mois car le calendrier se trouvait dans un include.J'ai modifié ça et l'ai mis directement dans la page.
En ayant des événements ponctuels ça fonctionne bien mais là, avec un événement à cheval sur deux mois ( 16/11 au 24/12 ) , le mois de décembre n'affiche pas les jours concerné comme occupé.
Si tu as une idée là dessus, je suis preneur.
Merci d'avance.
le site : http://www.margueritecie.org
Le 18 nov. 2008 à 21:13
Salut !
Je suis rapidement allé faire un tour sur ton site et j'avoue que c'est assez problématique. Je n'avais pas encore testé le plugin avec des événements sur deux mois... Je peux pas regarder ça tout de suite, un peu occupé, je vois ça ce WE, sans rien te promettre niveau solution ;)
@+
Le 19 nov. 2008 à 08:58
Bonjour,
merci beaucoup pour ce petit tutoriel qui m'a permis de mettre en ligne un agenda très rapidement.
Par contre, j'ai un petit problème. J'ai souvent plusieurs événements le même jour, est-ce possible d'ajouter une option pour visualiser les différents événements pour pouvoir choisir auquel on souhaite accéder ?
Le 20 nov. 2008 à 15:30
Par défaut le plugin n'intègre pas d'option de ce type. Cependant, ça doit pas trop être compliqué d'afficher une infobulle avec plusieurs événements quand on clique sur le jour...
Ça doit se passer ici :
agenda_1_9_2 > balise > calendrier_mini.php ligne 94.
J'ai pas le temps de regarder maintenant, si jamais je m'y met, je te fais signe ;)
Le 21 nov. 2008 à 10:28
Ok, merci, pas de souci.
Si je m'en sors je te fais signe également.
Le 29 nov. 2008 à 13:10
Salut,
Je reviens à propos des événements chevauchant deux mois. J'ai trouvé une solution en programmant deux événements. ex : si l'événement va du 15/11 au 24/12, on programme le premier du 15/11 au 30/11 et le deuxième du 1/12 au 24/12.
A+
Le 29 nov. 2008 à 15:21
Exact j'y avais pas pensé. C'est une alternative assez efficace en attendant une modification du plugin :p
Merci pour l'info ;)
Le 30 nov. 2008 à 15:54
Salut,
je ne parle pas francais...excusez moi par advant. je suis une novice en spip. I've installed AGENDA and WIDGET CALENDRIER on mi web site but I'm not able to activate these plugins. In my admin area there's no such place where I can do the plugin activation. Please help me! My web site now is a mess (i've changed the css and the sommaire.html) and it says that this error has occurred: "ERROR IN THE LAYOUT MODEL Tabella SQL « evenements » sconosciuta, '_calendrier"
thank you
Laura
Le 30 nov. 2008 à 16:29
Hi !
Did you unzip your files in a "plugins" directory ?
Can you see the plugins interface with this url : ?
http://YOURDOMAIN/ecrire/?exec=admi...
Le 09 déc. 2008 à 14:58
Bonjour,
Comme je vois que ce topic est actif et que l'on peut espérer recevoir des réponses, je vais vous exposer mes problèmes avec le plugin agenda
Version spip 1.9.2c
1) sur la page
/spip.php?page=agenda
les descriptions des événements qui s'affichent dans l'encadré vert en survol sont de plus en plus bas par rapport au jour au fur et à mesure que le mois se déroule et finissent par disparaître
2) je rentre les événements via l'interface normale (pas la liste rapide)
quand je veux rentrer des événements sans heure ils ont l'heure de la création de l'événement en base de donnée sur la page agenda. Si manuellement on leur met 00h00 00h00 en début et fin, ils s'affichent correctement sans heure mais font disparaitre d'autres événements par effet de bord (surtout s'ils ont une durée... comme des vacances scolaires)
J'ai du mettre tous mes événements sans heure de 00h01 à 23h59 pour être sûr d'éviter ce genre de problèmes.
Pouvez vous m'aider ?
merci
Le 10 déc. 2008 à 08:49
SAlut,
J'ai suivi votre tuto sur l'agenda.
Cependant l'évenement ne s'affiche pas dans le calendrier. Et dans le
Firefox il y a une erruer qui s'affiche; une erreur :
<BOUCLE_calendrier>(evenements)
Erreur MySQL
evenements.id_evenement, evenements.date_debut, evenements.date_fin,
evenements.titre, evenements.descriptif, evenements.lieu,
evenements.id_article FROM spip_evenements AS `evenements` WHERE
(DATE_FORMAT(evenements.date_debut, '%Y%m') = 200812) GROUP BY
evenements.id_evenement
Table 'spip.spip_evenements' doesn't exist
</BOUCLE_calendrier>
Pouvez vous m'apporter une assistance?
Le 10 déc. 2008 à 22:09
Salut Alain
Je n'ai pas encore testé la version "full" du plugin agenda. Je me suis limité à la version "mini". Aussi je peux pas t'aider pour le moment, mais je me penche dessus ce WE, en espérant trouver une réponse... Je tiens au courant samedi de mon avancement ;)
Gaga, est-ce-que tu aurais une url ou je pourrais voir ton site ? Ça me permettrait de mieux comprendre d'où vient le problème.
(Si des lecteurs on des solutions aux problèmes posés, n'hésitez pas à vous montrer ;))
Le 16 déc. 2008 à 08:24
gaga>moi ce qui me gène dans ton message d'erreur c'est la présence d'un . dans Table 'spip.spip_evenements' doesn't exist
quelle est le nom de ta table dans la base de données, ça devrait être spip_evenements je ne me rappelle plus l'installation du plugin mais aurais tu changé l'installation par défaut en mettant par hasard des . dans ton nom de table ?
Ou as tu changé une requête sql dans le code php ?
Le 16 déc. 2008 à 13:52
Pour ton problème d'infobulle Alain, le problème doit venir du style :
a:hover .calendrier-verdana10 > span.survol {}
de ta css 'agenda.css'
Il faut changer la position de "fixed" à "absolute"
Pour le reste, je cherche ^^
Le 16 déc. 2008 à 13:59
Concernant ton problème gaga (j'attends d'avoir l'url de ton projet pour en dire davantage), je pense que l'installation ne s'est tout simplement pas bien passée... Es-tu aller vérifier si ta table "spip_evenements" est bien présente dans ta base de données "spip" ?
Le 16 déc. 2008 à 14:40
Merci... je n'avais pas vu cette css dans img_pack du plug-in... quelle naïveté de ma part de croire que img_pack ne contient que ... des images
Ah juste un petit détail pour être complet c'est
absolute et non absolue
Merci encore.
Le 16 déc. 2008 à 20:15
Oui exact, je rectifie ça desuite. Merci ;)
Le 20 déc. 2008 à 15:19
Hello
j'ai installé comme tu le décris les 2 plugins widget et agenda, je peux activer le plug agenda mais pas le plug Widget, spip me répond que je dois avoir une version au moins 1.9.0 ou 2.0.0 ou supérieure, hors j'ai la version spip 2.0.1
avez-vous une idée ?
Le 21 déc. 2008 à 16:25
Bravo pour le tuto qui m'a bien aidé à utiliser agenda 2 sur spip 2, pour afficher un mini calendrier sur la page sommaire !
Merci.
Le 28 déc. 2008 à 16:23
Bonjour,
j'ai integré le calendrier tout se passe bien mais lorsque je clique sur un jour ou il ya un évenement (pour visualiser l'article donc) je suis bien renvoyé vers l'article mais avec le quelette par default de spip comment faire ?
Le 29 déc. 2008 à 13:24
Salut tout le monde, désolé pour le temps de réponses. C'est la faute aux fêtes =d
@xadelenn : As-tu téléchargé le bon agenda ? J'ai entre autres vu que le nouvel agenda pour Spip 2.0 était sorti. Voici le lien :
http://www.spip-contrib.net/Agenda-...
@fluss : Aurais-tu une url pour que je puisse visualiser le problème ? Si tu développes en local : est-ce-que l'url vers laquelle te redirige le calendrier est exactement la même que celle de l'article quand tu y accèdes de manière "normale" ?
Le 17 janv. 2009 à 01:00
Bonjour et merci pour le tuto ! Moi qui suis un débutant, j'ai tout bien lu... et çà marche !
Mais je n'ai pas tout compris ! J'aimerais avoir plus d'infos concernant la personnalisation du calendrier car je voudrais améliorer le visuel sur le site que je gère : http://paysyonnais.catho85.org
Le 17 janv. 2009 à 01:03
Salut !
Pour la personnalisation de ton calendrier : est-ce-que tu sais utiliser les CSS ?
Le 17 janv. 2009 à 01:22
Hum! La aussi, je débute mais je veux bien essayer !
Tout d'abord, je souhaiterais modifier le titre ( de CALENDRIER à DANS VOS AGENDAS, par exemple)... C'est possible ?
Le 17 janv. 2009 à 10:55
Oui biensûr. Tu vas dans le fichier :
agenda_1_9_2 > formulaires > calendrier_mini.html
Et tu remplaces
<h2><BOUCLE_titre(ARTICLES){id_article}>#TITRE</BOUCLE_titre><:icone_calendrier:><//B_titre></h2>
par
<h2>Dans vos Agendas</h2>
Après, pour modifier l'habillage de ton calendrier, modifie les propriétés des éléments que je cite dans le tuto (td.horsperiode etc.).
Je pense qu'en mettant un petit margin et un background-color sur chacune de tes cellules ça sera déjà beaucoup mieux ;)
Le 02 fév. 2009 à 18:11
Bonjour
Merci beaucoup pour ce tuto.
J'ai changé le code de squelettes/formulaires/calendrier-mini.html pour celui fourni à l'étape 2 et les dates ayant un évènements s'affichent enfin avec un lien vers l'article.
Avec calendrier-mini et SPIP 1.9.2g, j'avais en dessous du mini-calendrier une section présentant le titre de l'événement et un commentaire si désiré.
Je n'ai pas cela en SPIP 2.03.
J'essaie de placer un {id_article} dans le code mais cela ne fonctionne pas.
Merci
Le 04 fév. 2009 à 14:26
hello!
je n'arrive pas à faire deux choses
tout d'abord comment enlever le mot "calendrier" du calendrier
ensuite est ce vraiment dans calendrier.css qu'il faut aller afin de modifier la couleur des jour (par exemple) ?
merci beaucoup
Le 04 fév. 2009 à 15:28
ah çayé! j'ai repris ce que tu avais donné plus haut :o)
maintenant il ne me reste plus qu'à modifier l'apparence du mois + année, des deux flèches d'à coté et des liens des dates occupées
de plus comment faire lorsqu'il y a plusieur evenements pour une date?
merci !
Le 05 fév. 2009 à 09:54
Bonjour et merci pour le tuto qui m'aide grandement.
Je suis preneur de plus d'infos également sur quel fichier css modifier sous agenda 2.0. J'ai essayé avec le fichier datepicker.css dans le dossier img_pack mais ca a pas l'air de marcher.
Et idem qu'océ, comment faire quand on a plusieurs événements dans une journée associés chacun à un article ?
Le 05 fév. 2009 à 13:35
Bon à force j'ai fini par comprendre qu'il fallait rajouter les lignes que tu donnais dans le tuto à son propre fichier css. Enfin ca marche.
Par contre pour avoir plusieurs événements sur un jour, j'ai vu ta réponse à un des commentaires plus haut, as-tu plus d'infos la dessus aujourd'hui ?
Merci.
Le 08 fév. 2009 à 21:40
Salut à tous !
Désolé de ma légère absence, j'étais fort occupé ces temps-ci.
J'ai mis à jour mon article sur le calendrier. Vous y trouverez une deuxième partie qui vous expliquera comment gérer simplement plusieurs événements pour un même jour. Si vous avez des questions n'hésitez pas ;)
Le 20 fév. 2009 à 21:57
Bonjour,
je suis ultra débutante en spip, je souhaite monter le site de ma commune, j'utilise spip 2 avec le squelette Ahuntsic. J'ai installer le plugin agenda 2 et je saisi plein d'évenements mais impossible de voir l'agenda sur le site public ? Il faut semble t'il inclure un code dans un fichier...mais là je suis totalement perdue.
Merci pour votre aide
Le 21 fév. 2009 à 11:44
Salut !
Quel agenda souhaite-tu inclure dans ton site ? Le mini calendrier ou le gros agenda ?
Plutôt un calendrier comme sur ce site :
http://www.amicalelaiquemourillon.f... (à gauche).
Ou un calendrier pleine page ?
Le 24 fév. 2009 à 17:43
J'ai installé cette modif qui m'intéresse beaucoup sur un spip 192g, mais ça ne fonctionne pas. De plus j'ai un petit soucis avec les titres d'évènements qui ont des apostrophes.
Voir en ligne mon problème:
http://groupes192g.sortirdunucleair...
Le 24 fév. 2009 à 19:19
Salut !
À en voir ton site, je me demande si tu as inséré le bon calendrier. Tu ne voulais pas insérer un mini calendrier ? Parce que là t'as inséré la grande version de l'agenda. C'est ce code qu'il faut intégrer dans ton squelette :
#CALENDRIER_MINI{#ENV{date},'date',#SELF}
Si je me trompe, dis le moi :p
Le 25 fév. 2009 à 12:08
Avec tout le respect que j'ai pour toi, oui tu te trompes!
c'est bien le mini calendrier que j'ai inséré dans la colonne droite de mon agenda mais qui est déformé par un bug dans le code javascript (je pense) quand il y a des apostrophes dans le titre de l'évènement.
(au jour du 13 février avec un événement sans guillement ça fonctionne par exemple)
Exemple de bug:
Conférence \"Areva en Afrique : pillage et résistances\"
');move()" href='spip.php?article1175&date=2009-02-03' title='Conférence \"Areva en Afrique : pillage et résistances\"'>3
Le 25 fév. 2009 à 13:06
Aïe je me trompe =D
Est-ce-que tu peux me montrer le code que t'as inséré dans le squelette ? Voir mieux, le squelette en entier ?
Parce que là y'a des éléments qui ne concordent pas x)
Le 25 fév. 2009 à 15:08
Dans le squelette j'ai inséré
[(#CALENDRIER_MINI{#ENV{date},'date',#SELF})]
J'ai utilisé les plugins agenda_1_9_2 et widget_calendar_1_9 et j'ai fait les modifications de code citées dans cet article.
Le 25 fév. 2009 à 15:29
Bonjour,
Je ne connais pas bien SPIP, mais j'aimerai pourtant insérer un mini agenda sur mon site, seulement les explications (aussi clair qu'elle soit) ne me suffisent pas. Je ne dois pas comprendre où insérer les codes, car rien ne s'affiche dans l'espace publique.
Si quelqu'un peut m'aiguilleé un peu, ça m'aiderait beaucoup :)
A bientôt.
Le 25 fév. 2009 à 17:13
Bonjour
Malgré votre tutoriel très explicite et détaillé, j'en suis a ma deuxième install sans que l'infobulle avec deux événements ne fonctionne. Je ne vois pas dans quelle direction aller.
http://lbbe.univ-lyon1.fr/-Seminair... pour le 22 janvier j'ai deux evenements.
Merci de votre aide.
Monlio
Le 25 fév. 2009 à 20:43
Salut à tous
@Monlio : le problème vient de mon bout de code (=D). Ca se passe ici :
// On créé un lien vers l'événement et on l'affiche
$info .= "<a href=\'".parametre_url($evts[$i]['URL'],'date',"$annee_en_cours-$mois_en_cours-$jour")."\'
title=\'".$evts[$i]['SUMMARY']."\'>".$evts[$i]['SUMMARY']."</a><br />";
Juste avant le title, je saute une ligne. Dans ton code, enlève ce saut de ligne et met tout à la suite. En principe ça devrait marcher x_x
@Sylvain : Aurais-tu, tu ne serait-ce que de petites notions en SPIP ? Sais-tu où se trouvent les squelettes de ton site et à quoi ils correspondent ? Si oui, c'est très simple, il te suffit d'insérer le code suivant à l'endroit voulu dans ton squelette :
[(#CALENDRIER_MINI{#ENV{date},'date',#SELF})]
@Sabine : J'y vois plus clair x) En fait j'avais pas vu que t'avais voulu insérer l'infobulle (honte à moi). Donc oui t'as raison, c'est bien un problème de JavaScript, ou plutôt de PHP, dans mon bout de code je n'ai pas protégé les accents (Quelle idée de mettre des " dans les titres de ses article ? :p). Essaye de remplacer ceci :
$info .= "<a href=\'".parametre_url($evts[$i]['URL'],'date',"$annee_en_cours-$mois_en_cours-$jour")."\'
title=\'".$evts[$i]['SUMMARY']."\'>".$evts[$i]['SUMMARY']."</a><br />";
par ceci :
$info .= "<a href=\'".parametre_url($evts[$i]['URL'],'date',"$annee_en_cours-$mois_en_cours-$jour")."\'
title=\'".str_replace('\"', '', $evts[$i]['SUMMARY'])."\'>".str_replace('\"', '', $evts[$i]['SUMMARY'])."</a><br />";
Et tiens moi au courant =)
Le 26 fév. 2009 à 15:22
Bonjour,
Je ne sais justement pas où je dois l'inserer, je sais où se situe mes squelettes, mais aprés je bloque :(
Est-ce que c'est dans Rubrique.html, Sommaire.html, ou autre?
Merci pour vos réponses.
A bientôt
Le 26 fév. 2009 à 16:58
Alors, j'ai enfin réussi à faire apparaitre cette agenda :), mais un problème persiste :(
On dirait que l'agenda est logé dans une bande blanche qui prend toute la largeur de la page :(
Encore une erreur de ma part?
Merci.
Le 26 fév. 2009 à 19:16
Salut
Ton problème est un "simple" problème d'HTML... C'est un peu la base de tout développement web, je te conseille donc vivement de t'y mettre :p
Au cas où, t'as un un lien où je pourrai voir ton site ?
Le 27 fév. 2009 à 09:49
Merci beaucoup Jean Christophe,quelle réactivité, quelle efficacité, ça marche nickel.
Le 27 fév. 2009 à 10:13
Par contre la fonction move ne fonctionne pas x_x. J'avais adapté celle de Damien pour qu'elle réponde à mes besoins, mais là ça marche pas... En principe l'infobulle s'affiche à côté de ton curseur... Je vais voir d'où vient le problème ce WE ;)
Le 04 mar. 2009 à 13:04
Bonjour,
Merci pour tes réponses, j'ai enfin réussi à mettre l'agenda où je voulais. Cependant, j'ai un autre problème mais qui cette fois se situe dans la partie privée du site.
Je n'ai plus l'affichage des dates pour selectionner les jours pour les évenements et je ne sais pas pourquoi alors qu'avant ils apparaissaient.
Merci encore :)
Le 04 mar. 2009 à 13:13
Re bonjour,
En fait tout est rentré dans l'ordre :)
A bientôt.
Le 04 mar. 2009 à 15:00
Alors voilà, aprés avoir cherché je n'arrive toujours pas à savoir où modifier le style de mon agenda. Pourrais tu me dire dans quel fichier je dois faire les modifs?
Merci.
Le 06 mar. 2009 à 12:10
Directement dans ton fichier css (en principe habillage.css situé dans ton dossier squelettes).
Le 07 mar. 2009 à 19:38
Bonjour,
Je tente d'insérer un mini agenda sur mon site, mais j'ai un affichage bizarre sans possibilité de changer de mois. J'ai inséré le code directement dans le squelette sommaire.html et créé un dossier Formulaires dans Squelettes, mais ça ne marche pas. Merci pour ton aide...
Le 07 mar. 2009 à 20:37
Salut !
Je suis allé sur ton site et y ai vu un agenda fonctionnel. Le problème a été résolu ou je ne regarde pas au bon endroit ?
Le 11 mar. 2009 à 10:41
ça fonctionne, merci!
Le 20 mar. 2009 à 10:36
Bonjour,
J'ai installé spip 2.05 et le plugin Agenda pour spip2. Mais je ne trouve pas le plugin "widget calendar" version 2. Si je mets la version 1.9 je ne peux pas l'activer.
-a quoi sert exactement "widget calendar"?
-est-il disponible pour spip2 quelque part?
Bref que faire?
Merci!
Le 01 avr. 2009 à 18:06
Bonjour au créateur de ce tutoriel !
Je n'ai aucune question particulière puisque le calendrier fonctionne parfaitement sur mon site. Je voulais juste saluer ton excellent travail et te remercier de l'avoir partagé sous forme de tutoriel ! Ca fait plaisir de voir des gens comme toi !
Le 02 avr. 2009 à 14:38
@Marie :
Salut ! Vraiment désolé pour le temps de réponse, je suis pas mal occupé... Surtout que je n'arrive pas avec une réponse à te proposer. Je n'ai eu le temps de me pencher que sur l'agenda compatible avec les versions 1.9.X de SPIP. Je te conseille d'aller voir directement le créateur du plugin, ou alors d'autres utilisateurs. Désolé pr le manque d'infos...
@Fabian :
Merci pour ce com' Fabian, ça fait vraiment plaisir ;)
Le 12 avr. 2009 à 14:25
Excellent article! Très clair. Merci.
Le 18 avr. 2009 à 09:34
Bonjour, Je voudrais afficher 3 mois dans le mini calendrier. Est-ce possible ? Merci
Le 21 avr. 2009 à 12:00
Salut
Oui ça doit être possible, mais pas forcément facile. L'essentiel des modifications à apporter se situent dans le fichier calendrier_mini.php. Je n'ai hélas pas le temps de faire un test.
Bonne chance !
Le 30 avr. 2009 à 15:06
Un GRAND merci à toi pour les précisions de ta "procédure" et ta contribution.
bonne continuation.
salut
Le 18 juil. 2009 à 13:13
Ca marche, ca fesait des mois que j'avais laissé tombé et là ca marche, comme quoi avec du recul on voit mieux ses erreures. Merci beaucoup
Le 23 juil. 2009 à 09:30
Très bien expliqué - félicitations !
Une chose qui ne semble bizarre dans le code source de la page affichée c'est le décalage des mois :
exemple pour septembre 2009 affiché , on a dans le code source de la page :
<table summary="Calendrier">
<caption>
<a href="./?date=2009-08" title="août 2009">«</a>
septembre 2009
<a href="./?date=2009-10"
title="octobre 2009">»</a>
C'est à dire un peu tout. Savez-vous comment le rectifier ?
Le 25 juil. 2009 à 00:21
BOnjour à tous. J'ai installé le plugin, affiché mon mini calendrier qui retrouve bien mes évènements...
Je souhaite filtrer les évènements associés à mon article pour n'afficher que ceux de la journée cliquée dans le mini calendrier (et pas tous les evts associés à l'article en cours)
Avez vous une idée ? Merci et bravo pour la réactivité de ton blog.
Le 25 juil. 2009 à 09:43
@PRX :
Concernant ta remarque, si j'ai bien compris, tu t'étonnes que dans le code source, pour septembre 2009 il soit affiché aout 2009 et octobre 2009 ? Si c'est le cas, c'est normal. C'est le titre des flèches "suivant" et "précédent" qui correspondent au mois d'avant et au mois d'après (donc aout et octobre)
@trampo :
Je ne comprends pas. Lorsque je programme plusieurs événements sur un seul article et que je clique sur la date correspondante dans le calendrier, j'atterris sur l'événement en question, et pas sur tous les événements associés...
Pour info, je pars une semaine en vacances dans 2h ^^ Je pourrais donc plus répondre après :p
Le 04 août 2009 à 16:57
Bonjour,
tout d'abord merci pour le tuto, bon coup de main pour l'archi débutant que je suis.
Reste 2 problèmes et peut être quelqu'un a les réponses :
- les dates associées à des évènements apparaissent bien comme lien, en gras et couleur différente sur le mini-cal, mais quand on clique dessus, on reste sur la page courante au lieu d'arriver sur l'article associé
- l'infobulle qui apparait quand on passe sur une date associée à un évènement n'affiche pas le titre de l'évènement mais un truc genre "3A©vA©nements".
Je suis sur agenda 2.0 , spip 2.0.8 et squelette multiflex 3
D'avance merci pour votre aide et encore bravo pour le tuto
Le 01 oct. 2009 à 21:41
super tuto, après 6 mois d'échec et de recherche, j'ai découvert ce site et maintenant mon agenda fonctionne.
par contre j'ai voulu régler le problème en cas de double évnement le même jour, mais je n'ai pas du tout le code indiqué dans le fichier calendrier_mini.php.
Je n'ai donc pas pu régler le souci
cordialement,
barbu
Le 01 déc. 2009 à 23:28
Bonjour,
Je travaille en spip 1.9.2b
j'ai intégré votre plugin mais
je n'ai pas de jours en surbrillance dans mon agenda malgré des évenements programmés
quel fichier faut-il modifier ?
et dans quel répertoire ?
Le 04 déc. 2009 à 15:57
Salut !
Avant tout, ce plugin n'est pas de moi, je livre juste quelques informations à propos de problèmes que j'ai rencontré.
Concernant ton problème, le mieux serait de me donner dans un premier temps le lien de ton site ;)
a+
Le 02 fév. 2010 à 06:12
Merci bcp pour ce tuto qui m'a permis d'afficher correctement l'agenda 2.0 sur spip 2.xx...
Cependant, j'ai un soucis... Dans les calendriers apparaissent aussi les derniers jours des mois précédents et les premiers des suivants. Est-ce normal ? Peut-on les "cacher" ?
Merci.
.Boris
Le 02 fév. 2010 à 09:53
Salut !
Il suffit de modifier la classe "horsperiode" dans le fichier css :
td.horsperiode
{
display : none;
}
Le 03 fév. 2010 à 04:34
Ca n'a pas marché. Cette variable a "effacé" les dates à ne pas prendre en compte mais du coup, les dates affichées se sont décalées vers la droite...
Cependant, j'ai utilisé ta syntaxe et à la place de none, j'ai mis transparent et c'est ok...
Merci donc :p
Le 03 fév. 2010 à 04:36
(heu...)
les dates affichées se sont décalées vers la GAUCHE... (et non droite) :(
Le 03 fév. 2010 à 08:54
J'avais pas pris en compte le décalage. Pour la solution du transparent, je reste sceptique... Un display ne peut pas être paramétré en transparent... C'est très surprenant que ça marche..
Personnellement, je serais allé dans le squelette du calendrier, et aurais mis les numéros des jours entre <span>. Ensuite j'aurais appliqué le display : none sur le td.horsperiode span.
À vous de voir ;-)
Le 05 fév. 2010 à 03:09
j'vous jure que ça marche :p
La chance des débutants !!!
Le 01 mar. 2010 à 19:23
Bonjour,
Cela fais deux ans que je lis ce tuto et que j'échoue (no coment).
Lassé je tente depuis deux jours de le faire tourner.après 20 nouvelles tentatives , j'écris. J'ai bien suivie toutes les étapes.
Làs sous IE le calendier disparait et alerte php et l'infobulle ne s'affiche pas, ni sous mac ni pc.
A l'aide, n'y a t'il pas une version de se calendrier modifiée à télécharger que je comprenne ma grande bétise ?
Bien respecteusement.
Le 01 mar. 2010 à 19:39
j'ai trouvé, il faut supprimer les retours à la ligne présent dans le code additionnel. Le copier collé du code depuis cette page vers le code source provoque des retours à la ligne qui empêche le php de fonctionner !
Merci pour ce tuto !!!!!!!!!!!!!!!!!!!!!!!!!!
Le 01 mar. 2010 à 19:49
Rectificatif,
IE plante toujours.
Merci de votre aide !
Le 02 mar. 2010 à 12:47
Bonjour, dans le php, j'ai supprimé tous les espaces et remplacé par des tabulations et celà fonctionne, mais sous IE8 rien n'apparaît. Merci de votre aide !
PS : après j'arrête de pourrir ce post :)
Le 16 juin 2010 à 14:56
Pour ceux qui on la meme version que moi voici un site qui explique bien
http://www.veille-web.fr/index.php/...
Bon courage à tous ;)