Description
- Le calendrier permet la publication d’événements qui s’étendent sur plusieurs jours
- On utilise la date de publication en ligne comme date de départ et la date de publication antérieure comme date de fin.
- Les évènements disparaitront une fois leur date de fin dépassée.
- ATTENTION : L’utilisation de l’agenda nécessite l’activation de la publication des articles post-datés.
Exemples
Deux exemples en ligne de cet agenda :
Télécharger
Version actuelle : version 2.0, sept 2003 à télécharger ici.
Adresse de publication originale :
http://support.cassiopea.org/spip/spip-tech.shtml#agenda
Pour ceux qui veulent en savoir plus :
Règles d’écriture de l’agenda :
- La Date de publication en ligne = la date de DEBUT de l’événement (événement durant 1 ou plusieurs jours). Obligatoire.
- La Date de publication antérieure = la date de FIN de l’événement (événement durant 1 ou plusieurs jours). Obligatoire.
- Le Surtitre = le nom de l’organisateur.
- Le Sous-titre = le lieu de l’événement.
Démarche pour les dates de l’agenda :
- Ecrire l’événement normalement
- Fixer la date de fin (DATE DE PUBLICATION ANTÉRIEURE)
- Publier l’événement en ligne
- Fixer la date de début (DATE DE PUBLICATION EN LIGNE)
Note : Vous devez publier en ligne l’événement avant de pouvoir fixer sa date de publication en ligne (début), car cette dernière n’est modifiable qu’après cette action.
Les codes de cette contribution
- le code + la boucle à copier / coller dans la page rubrique du calendrier.
- le code + la boucle à copier / coller dans la page article du calendrier.
- le fichier agenda-sequentiel.inc à télécharger dans le répertoire racine de votre site spip (là où il y a les squelettes .php3). [1]
1) Le code + la boucle à copier / coller dans la page rubrique
<B_articles>
<b>Evénements</b><br><br>
<ul>
<BOUCLE_articles(ARTICLES){id_rubrique}{par date}{age_redac<=0}>
<?php
// Récupération et formatage des dates de l'événement
$datep= '#DATE';
$dater = '#DATE_REDAC';
include "agenda-sequentiel.inc";
?>
<li><b><?php echo $dateaffiche; ?></b>[<b> à (#SOUSTITRE|supprimer_tags).</b>]
[<br><i>Organisé par (#SURTITRE|supprimer_tags)</i>]
[<br><A HREF="#URL_ARTICLE">(#TITRE)</a>]
[<br>(#DESCRIPTIF)]
<hr class="spip">
</BOUCLE_articles>
</ul>
</B_articles>
<br>Il n'y a pas d'événements au calendrier.
<//B_articles>
2) le code + la boucle à copier / coller dans la page article
<BOUCLE_evenement(ARTICLES){id_article}>
<h1>[(#TITRE|supprimer_numero)]</h1>
<?php
// Récupération et formatage des dates de l'événement
$datep= '#DATE';
$dater = '#DATE_REDAC';
include "agenda-sequentiel.inc";
?>
<b><?php echo $dateaffiche; ?>[ à (#SOUSTITRE|supprimer_tags)]</b>
[<br><i>Organisé par (#SURTITRE|supprimer_tags)</i>]<br><br>
[(#CHAPO|justifier)<br><br>]
[(#TEXTE|justifier)<br><br>]
[<P><i>(#PS|justifier)</i>]
[<HR class="spip" width="25%" align="left">(#NOTES)]
</BOUCLE_evenement>
3) Le code contenu dans « agenda-sequentiel.inc »
<?php
/************************************************/
// Fonction pour formater la date de l'agenda
// ATTENTION: La publication des articles post-datés doit être activée (Administration du site)
// La date de publication = date de départ, la date de publication antérieur = date de fin
// Les articles dans les boucles sont classés par date de publication
// Le code ci-dessous doit se trouver dans les boucles articles des squeletes rubrique et article adéquat
/*****
<?php
$datep= '#DATE';
$dater = '#DATE_REDAC';
include "agenda-sequentiel.inc";
?>
<?php echo $dateaffiche; ?>
*****/
// Auteur: robert.sebille(at)cassiopea.org - sept 2003
// Sous licence GNU/GPL http://www.gnu.org/copyleft/gpl.html
/************************************************/
$mois["January"] = "janvier";
$mois["Febrary"] = "février";
$mois["March"] = "mars";
$mois["April"] = "avril";
$mois["May"] = "mai";
$mois["June"] = "juin";
$mois["July"] = "juillet";
$mois["August"] = "août";
$mois["September"] = "septembre";
$mois["October"] = "octobre";
$mois["November"] = "novembre";
$mois["December"] = "décembre";
$jour=array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi");
$datep=strtotime($datep);
$msp = date("F", $datep);
$jrp=date("w", $datep); // jour de la semaine
$datepub=date("l j F Y",$datep);
$datepub=str_replace(date("F", $datep), $mois[$msp], $datepub);
$datepub=str_replace(date("l", $datep), $jour[$jrp], $datepub);
$dater=strtotime($dater);
$msr = date("F", $dater);
$jrr=date("w", $dater); // jour de la semaine
$dateredac=date("l j F Y",$dater);
$dateredac=str_replace(date("F", $dater), $mois[$msr], $dateredac);
$dateredac=str_replace(date("l", $dater), $jour[$jrr], $dateredac);
if ($datep == $dater) {$dateaffiche = "Le ".$datepub;} else {$dateaffiche = "Du ".$datepub." au ".$dateredac;}
?>
Remarque de mise à jour :
Pour ceux qui avaient implémenté la version 1.0 et qui souhaitent passer à la version 2.0 :
Le passage de la 1.0 à la 2.0 prend 2 minutes, voici ce qu’il y a à faire :
1) Uploader le fichier « agenda-sequentiel.inc » dans le répertoire racine de votre site spip (là où il y a les squelettes .php3).
2) Dans le code des squelettes .html rubrique ET article de l’agenda, remplacer
les anciennes lignes :
// getDateAgenda est dans mes_fonctions.php3
$datep= '#DATE';
$dater = '#DATE_REDAC';
$dateaffiche = getDateAgenda($datep, $dater);
par ces nouvelles :
// Récupération et formatage des dates de l'événement
$datep= '#DATE';
$dater = '#DATE_REDAC';
include "agenda-sequentiel.inc";
3) Supprimer le code de la fonction « getDateAgenda(.. » de votre fichier mes_fonctions.php3. (ce dernier point n’est pas obligatoire, mais inutile de charger du code devenu inutile).
Discussions par date d’activité
11 discussions
Avez-vous une version plus récente de cet article ? Patricia pour serrurerie
Répondre à ce message
Bonjour, pardonnez mon ignorance, mais je ne comprends vraiment pas comment utiliser ce calendrier. J’ai du faire un impasse sur le fonctionnement général de spip, que j’arrivais néamoins à utiliser selon mes besoins auparavant. J’aimerais tout simplement installer un agenda sur une page de mon site. Ce que je ne comprends pas, c’est dans quelle pages article et rubrique je dois copier/coller ces codes... En effet, je n’ai jamais utilisé de page rubrique sur mes sites...
Je pense donc qu’une explication plus détaillée de l’installation serait nécessaire, ne serait-ce que pour permettre au gens qui ne maitrisent pas bien le fonctionnement de spip de le comprendre un petit peu mieux...
Merci.
Répondre à ce message
Moi j’ai un problème avec ce script.
Lorsque je poste un article, il me met toujours « le jeudi 1 janvier 1970 » au lieu de ce qui est prévu soit du jour mois année au jour moi année.
Quelqu’un peut il m aider ?
ps : j ai la dernière version de spip et du script, et pas de mes_fonctions.php3
J’ai repéré le problème au niveau de la ligne suivante :
$datep=strtotime($datep) ;
dans « agenda-sequentiel.inc »
Avant la ligne la variable $datep est correcte,après la ligne elle prend la valeur de -1.
Très bizarre puisque cela fonctionne très bien en local avec easyphp 1-7
Répondre à ce message
Salut
Merci pour cette contrib, ces quelques boucles sont très bien adaptées à un agenda de type « manifestations ».
Pas de problème pour la mise en place sous SPIP 1.7...
Répondre à ce message
J’ai regardé la syntaxe de l’agenda séquentiel
A la page sommaire j’ai mon lien vers la rubrique agenda id=4
Je colle le code dans la page rubrique-ag.html (différent autres rubriques)
Je colle le code dans la page article-ag.html après je suis un peu pommé. Pourrais-til y avoir une explication plus détaillée.
Répondre à ce message
POURQUOI ?
Evénements
Parse error : parse error, unexpected $ in /home/users/b/bachant/www/agenda-sequentiel.inc on line 41
essazicalendar
LIGNE 41
$datepub=str_replace(date(« l », $datep), $jour[$jrp], $datepub) ;
bon ça fonctionne presque, a part le petit bug de la ligne 41
une petite question, je souhaite crer dans mon agenda des sous rubriques et pouvoir les afficher.
rubrique agenda
evenements quelconque
sous-rubrique foot -> les matchs
sous-rubrique judo -> les competitions
or la ne s’affiche que evnement quelconque, ou faire la modif pour afficher les matchs et les compet.
suis je assez clair !
pb de la ligne 41 résolue
c’est d’enfer ça fonctionne.
agenda couplé aux annonces séquentiel !
j’ai crié victoire trop vite
a priori les news s’affiche en permanence
date de pub en ligne : date de début de l’evenement
date de pub antérieur : fin de l’evenement
ors quel que soit la date de pub en ligne, l’evenement s’affiche.
j’ai modifié cet ligne
<BOUCLE_articles(ARTICLES)id_rubriquepar dateage_redac<=0>
par
<BOUCLE_articles(ARTICLES)id_rubrique !==^(20)$par dateage_redac<=0>
afin d’afficher les sous rubriques de la rubrique agenda.
serait ce cette modif qui pertube ?
Répondre à ce message
Bravo pour cette boucle, malheureusement elle ne fait que pallier à un gros défaut de SPIP (le seul heureusement) : il faut valider l’article avant de pouvoir modifier la date => être administrateur.
Il manque à SPIP un vrai gestionnaire d’agenda séquentiel...
Avec ça il serait parfait, déjà que...
Répondre à ce message
Bonjour,
Je teste en local le calendrier, sans succès.
J’obtiens toujours « il n’y a pas d’événement » lorsque je demande à voir la rubrique abritant le calendrier.
- J’ai créé à la racine du site une rubrique « agendas » (n°18) ; puis j’ai créé une sous-rubrique « vacances » (n°19).
- J’ai fait un article pour la rubrique « agenda » (date de public. = ce jour / date de fin = demain)
- J’ai bien déclaré dans l’interface privé l’affichage des dates de public. antérieure.
- J’ai créé un squel. article-18.html + un squel. rubrique-18.html + article-18.php3 + rubrique-18.php3
- le fichier « agenda-séquentiel.inc » est bien à la racine avec les autres squelettes.
Le squel. article fonctionne lorsque j’arrive directement sur cet article. Rien à faire pour le squelette rubrique-18.
Une idée ?
Répondre à ce message
merci pour ce travail ! si j’en juge par les deux urls-exemple ;) parce que chez moi, en local, ça ne marche pas :
pourtant
1. la date de publication antérieure est autorisée
2. les boucles sont copiées respectivement dans un rubrique-33.html (ma sous-rub calendrier) et dans un article-33.html (squel particulier et dépendant de la rubrique 33 c’est bien ça ?)
3. le cache de spip et celui du navigateur sont vidés
4. un article a été *publié* dans la rubrique 33
mais
la page rubrique m’affiche toujours « Il n’y a pas d’événements au calendrier. »
mmmh :-/
jc
haaaaaaa
faut pas se gourrer d’un an
:-|
:-)
Répondre à ce message
Bonjour,
Merci pour tout ce que vous faites.
J’ai récupérer la version 2.0 d’« agenda séquentiel ».
Je suis en train de faire des tests en local et j’ai un bug au niveau de l’affichage du mois de février :
j’ai mis un événement du 25 février 2003 au 10 octobre 20003 et le résultat affiche :
« Du mardi 25 2003 au vendredi 10 octobre 2003 à Le grand palais. »
Apparemment (je n’ai pas fait tous les mois) cela ne concerne que « février ».
Où est le bug (qui se retrouve dans la page article). Je n’ai rien vu de bizarre dans « agenda-sequentiel.inc ».
Autre chose, mais là , ce n’est pas un bug, lorsque mon lieu commence par « Le » quelque chose on se retrouve avec « à Le » ce qui peut passer pour un nom propre(quoique à Le Grand Palais" c’est bof bof, mais lorque on veut mettre le restaurant Machin ....que faut-il modifier et où.
merci encore
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 : |