[Spip] boucle pour lister les événements du jour

378 views
Skip to first unread message

dd

unread,
Dec 19, 2011, 9:26:47 AM12/19/11
to sp...@rezo.net
Bonjour,

Avec le plugin agenda 2 j'ai créé une navigation par jour avec une liste
de dates.

Je sèche sur le lien sur chaque date qui listerait les événements de ce
jour :

<BOUCLE_date_event(EVENEMENTS){id_rubrique}>

[quelle syntaxe pur ce lien :]
<a href="[(#URL_PAGE{jour,date=agenda date})]">
[(#DATE_DEBUT|jour)]</a>
</BOUCLE_date_event>


j'ai essayé de m'inspirer de
http://www.spip-contrib.net/Plugin-Agenda#squelettes
et de l'exemple du calendrier_mini :

<a
href="(#ENV{self}|parametre_url{#ENV{var_date},[(#ENV{#ENV{var_date},#ENV{date}}|Agenda_moisdecal{-1,'Y-m'})]})"

title="[(#ENV{#ENV{var_date},#ENV{date}}|Agenda_moisdecal{-1,'Y-m'}|affdate_mois_annee)]"
>


mais comme je n’utilise pas la présentation en calendrier cela ne
fonctionne pas.

merci

dd

_______________________________________________
liste spip
sp...@rezo.net - désabonnement : envoyer un mail à spip...@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
http://archives.rezo.net/spip.mbox/

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Nathan

unread,
Dec 20, 2011, 3:34:02 PM12/20/11
to dd, sp...@rezo.net
Bonsoir.

Il me semble que le site genrespluriels.be a un agenda qui ressemble à ce que tu cherches.

Nat

mailou

unread,
Dec 20, 2011, 4:30:58 PM12/20/11
to Nathan, sp...@rezo.net

dd

unread,
Dec 20, 2011, 4:44:52 PM12/20/11
to Nathan, sp...@rezo.net
Merci de ta réponse, j'ai regardé mais le site utilise le mini calendrier :

[(#REM) ] #CALENDRIER_MINI{#ENV{date},'date',#SELF} [(#REM) ]
[(#PLUGIN{Agenda}|oui) ]

et ce n'est pas mon cas.

je vais continuer à fouiller

dd

dd

unread,
Dec 20, 2011, 4:48:21 PM12/20/11
to sp...@rezo.net, Nathan, sp...@rezo.net
Le 20/12/2011 22:30, mailou a écrit :
> Salut
> Tu peux aussi aller voir là:
> http://www.spip-contrib.net/Comment-faire-un-calendrier-simple#formulaire_forum

Merci mais j'utilise le plugin Agenda et pas les dates de rédaction
antérieures donc cet exemple ne marche pas pour moi.
je continue mes recherches

dd

Nathan

unread,
Dec 20, 2011, 6:34:04 PM12/20/11
to dd, sp...@rezo.net
Le mini calendrier va dans la colonne de droite.

Mais regarde plus bas dans le même squelette, le corps est constitué des évènements:

	[(#REM) <!-- ========================= AGENDA  DES EVENEMENTS ============================== --> ]

		<h2 class='titrerub'><:agenda:agenda:> :
		<BOUCLE_compte(EVENEMENTS){id_rubrique?}{id_article?}{id_mot?}{id_evenement_source?} {id_evenement ?} {statut=publie} {age_relatif_debut<=0} />
			[(#TOTAL_BOUCLE|singulier_ou_pluriel{agenda:info_un_evenement,agenda:info_nombre_evenements}|sinon{	<:agenda:aucun_evenement:>})]#SET{yena,#TOTAL_BOUCLE|oui}<//B_compte>
		</h2>			
		
		<B_agenda>
			
			<ul>
		        <BOUCLE_agenda(EVENEMENTS){par date_debut}{pagination #ENV{pagine,20}}{age_relatif_debut<=0}{id_evenement?}{id_article?}{id_rubrique?}{id_mot?}{id_evenement_source?}{statut=publie}>
		        <li class="even">
					[(#DATE_DEBUT|affdate_jourcourt|unique)<br />]
					
					<BOUCLE_vevent(EVENEMENTS){id_evenement}{tout}>
							<span class="titreven"><a href='[(#URL_PAGE{article,id_article=#ID_ARTICLE})]'>#TITRE</a></span><br />
							[<span class="dateven">(#DATE_DEBUT|agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE,'hcal'})</span><br />]
							[<span class="descriptioneven">(#DESCRIPTIF|PtoBR)</span><br />]
							[<span class="locationeven">(#LIEU|PtoBR)</span>[<span class="adresseven">(#ADRESSE|PtoBR)</span>]<br />]
							[<span class="locationeven">(#FORMULAIRE_PARTICIPER{id_evenement}|PtoBr)</span>]
					</BOUCLE_vevent>

		        </li>
		        </BOUCLE_agenda>
				[<li class="pagination">(#PAGINATION{page})</li>]
			</ul>
		</B_agenda>
		
		<//B_agenda>
Nat

dd

unread,
Jan 4, 2012, 2:03:29 PM1/4/12
to Nathan, sp...@rezo.net
Bonjour,

Merci mais en fait ce n'est pas cela non plus que je cherche.

Essayons de faire clair :

Soit une date de l'agenda.
Que dois-je passer dans l'URL sur cette date pour que les événements se
situant à cette date s'affichent en liste sur une nouvelle page ?

je ne peux pas mettre une date en dur dans l'URL car les dates sont
mouvantes.

merci de votre réponse

dd

Le 21/12/2011 00:34, Nathan a écrit :
> Le mini calendrier va dans la colonne de droite.
>
> Mais regarde plus bas dans le même squelette, le corps est constitué des
> évènements:
>
> [(#REM)<!-- ========================= AGENDA DES EVENEMENTS ============================== --> ]
>
> <h2 class='titrerub'><:agenda:agenda:> :
> <BOUCLE_compte(EVENEMENTS){id_rubrique?}{id_article?}{id_mot?}{id_evenement_source?} {id_evenement ?} {statut=publie} {age_relatif_debut<=0} />
> [(#TOTAL_BOUCLE|singulier_ou_pluriel{agenda:info_un_evenement,agenda:info_nombre_evenements}|sinon{ <:agenda:aucun_evenement:>})]#SET{yena,#TOTAL_BOUCLE|oui}<//B_compte>
> </h2>
>
> <B_agenda>
>
> <ul>
> <BOUCLE_agenda(EVENEMENTS){par date_debut}{pagination #ENV{pagine,20}}{age_relatif_debut<=0}{id_evenement?}{id_article?}{id_rubrique?}{id_mot?}{id_evenement_source?}{statut=publie}>
> <li class="even">
> [(#DATE_DEBUT|affdate_jourcourt|unique)<br />]

> Nat
>

>>
>>> Le 19 déc. 2011 à 15:26, dd a écrit :
>>>
>>>> Bonjour,
>>>>
>>>> Avec le plugin agenda 2 j'ai créé une navigation par jour avec une
>>>> liste de dates.
>>>>
>>>> Je sèche sur le lien sur chaque date qui listerait les événements de
>>>> ce jour :
>>>>
>>>> <BOUCLE_date_event(EVENEMENTS){id_rubrique}>
>>>>
>>>> [quelle syntaxe pur ce lien :]
>>>> <a href="[(#URL_PAGE{jour,date=agenda date})]">
>>>> [(#DATE_DEBUT|jour)]</a>
>>>> </BOUCLE_date_event>
>>>>
>>>>
>>>>

chankalan

unread,
Jan 5, 2012, 3:27:35 AM1/5/12
to sp...@rezo.net
Bonjour,
heu, dans l'url il faut bien qu'il y ait un paramètre de date qu'on pourra récupérer dans une boucle
par exemple, si dans un squelette on a une variable qui prend la valeur du jour, sinon la valeur du paramètre de l'url var_date, et l'écrit sous la forme 2012-01-05 : 
#SET{'eve_jour', (#ENV{#ENV{var_date},#ENV{date}}|affdate{'Y-m-d'})}
alors on pourra reprendre cette valeur dans une boucle de ce squelette, pour trouver par exemple les évènements qui commencent avant et finissent après :

        <BOUCLE_choixmilieu(EVENEMENTS) {date_debut<#GET{eve_jour}}{date_fin>#GET{eve_jour}}{par date_debut}>
        <B_articleevemilieu><ul class="liste-items">
        <BOUCLE_articleevemilieu(ARTICLES){id_evenement}>
                  
            <li class="evenement item">
               ...
            </li>
           
        </BOUCLE_articleevemilieu>
        </ul></B_articleevemilieu>
        </BOUCLE_choixmilieu>


est-ce que ça répond à la question ?



-- 
----
chan

dd

unread,
Mar 17, 2012, 5:06:35 PM3/17/12
to chankalan, sp...@rezo.net
Le 05/01/2012 09:27, chankalan a écrit :
> Bonjour,
> heu, dans l'url il faut bien qu'il y ait un paramètre de date qu'on
> pourra récupérer dans une boucle
> par exemple, si dans un squelette on a une variable qui prend la valeur
> du jour, sinon la valeur du paramètre de l'url var_date, et l'écrit sous
> la forme 2012-01-05 :
> #SET{'eve_jour', (#ENV{#ENV{var_date},#ENV{date}}|affdate{'Y-m-d'})}
> alors on pourra reprendre cette valeur dans une boucle de ce squelette,
> pour trouver par exemple les évènements qui commencent avant et
> finissent après :
>
> <BOUCLE_choixmilieu(EVENEMENTS)
> {date_debut<#GET{eve_jour}}{date_fin>#GET{eve_jour}}{par date_debut}>
> <B_articleevemilieu><ul class="liste-items">
> <BOUCLE_articleevemilieu(ARTICLES){id_evenement}>
>
> <li class="evenement item">
> ...
> </li>
>
> </BOUCLE_articleevemilieu>
> </ul></B_articleevemilieu>
> </BOUCLE_choixmilieu>
>
>
> est-ce que ça répond à la question ?

Non, désolée,
Je n'arrive absolument à rien depuis des semaines là-dessus.

Je suis sur une page rubrique avec ceci dans le squelette :

#SET{'eve_jour', (#ENV{#ENV{var_date},#ENV{date}}|affdate{'Y-m-d'})}


[afficher la date avec un lien vers la liste des événements à cette date : ]

<BOUCLE_date_event(EVENEMENTS) {par
date_debut}{id_rubrique}{unique}{id_evenement_source?}>
[<a href="#SELF" title="Voir les évènements du
jour">(#DATE_DEBUT|jour|unique)[<br />(#DATE_DEBUT|nom_mois|couper{3})]
</a>]
</BOUCLE_date_event>

[j'ai mis #SELF pour boucler sur la même page car apparemment c'est pas
possible de pointer sur une autre page avec le #SET mais du coup je ne
vois pas comment avoir un paramètre de date dans l'URL de la page
puisque je ne change pas de page (je me sens vraiment ratatiné du
cerveau sur ce coup là)]

[le lien ci-dessus affiche la liste des événements : ]

<B_vevent> <BOUCLE_vevent(EVENEMENTS){par
date_debut}{id_rubrique}{date_debut=#GET{eve_jour}}{date_fin>#GET{eve_jour}}>
[(#TITRE)]
[(#DATE_DEBUT|agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})]
</BOUCLE_vevent>
</B_vevent>


merci

dd


>
>
> Le 04/01/2012 20:03, dd a écrit :
>> Bonjour,
>>
>> Merci mais en fait ce n'est pas cela non plus que je cherche.
>>
>> Essayons de faire clair :
>>
>> Soit une date de l'agenda.
>> Que dois-je passer dans l'URL sur cette date pour que les événements
>> se situant à cette date s'affichent en liste sur une nouvelle page ?
>>
>> je ne peux pas mettre une date en dur dans l'URL car les dates sont
>> mouvantes.
>>
>> merci de votre réponse
>>
>> dd
>>
>
>

_______________________________________________

dd

unread,
Mar 26, 2012, 11:19:49 AM3/26/12
to sp...@rezo.net, sp...@rezo.net
Le 05/01/2012 09:27, chankalan a écrit :

Merci pour l'aide, j'ai enfin réussi.

Voici :

Dans un squelette rubrique j'ai une boucle qui m'affiche (une fois) les
dates de mes événements :

<B_date_event>
<ul>
<BOUCLE_date_event(EVENEMENTS) {!par date_debut}{id_rubrique}{unique}>
[<li>
<a href="spip.php?page=jour&date=[(#DATE_DEBUT|affdate{'Y-m-d'})]"
title="Voir les événements du jour">
(#DATE_DEBUT|jour|unique)[(#DATE_DEBUT|nom_mois|couper{3})]
</a>
</li>]
</BOUCLE_date_event>
</ul>
</B_date_event>

Et dans un squelette appelé "jour" par le lien ci-dessus j'ai une boucle
qui me liste les événements :

<ul>

#SET{'eve_jour', (#ENV{#ENV{var_date},#ENV{date}}|affdate{'Y-m-d'})}

<B_vevent>
[(#ANCRE_PAGINATION)]
[<p class="pagination">(#PAGINATION)</p>]
<BOUCLE_vevent(EVENEMENTS){par
date_debut}{date_debut==#GET{eve_jour}}{date_fin>=#GET{eve_jour}}{pagination}>
<li>
<a class="#EDIT{titre}"
href="[(#URL_PAGE{event,id_evenement=#ID_EVENEMENT})]" [
title="(#TITRE|attribut_html|couper{80})"]
onclick="jQuery.modalbox('[(#URL_PAGE{event,id_evenement=#ID_EVENEMENT}|parametre_url{var_zajax,contenu})]');return
false;">[(#TITRE)]</a>
[(#DATE_DEBUT|agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})]
</li>
</BOUCLE_vevent>
[<p class="pagination">(#PAGINATION)</p>]
</B_vevent>
</ul>

La seule chose qui manque est d'afficher le logo de l’événement même si
l’événement en question est une répétition.

chankalan

unread,
Mar 26, 2012, 2:50:43 PM3/26/12
to sp...@rezo.net, dd
Bonjour,
attention à la syntaxe html qui ne permet pas de mettre une autre balise que < li > dans un < ul > : les < p class="pagination" > devrait être à l'extérieur du  < ul >
ou alors les mettre dans une balise < li > également
+ pour récupérer l'évènement quand on est dans une répétition =
id_evenement_source



Et dans un squelette appelé "jour" par le lien ci-dessus j'ai une boucle qui me liste les événements :

<ul>   
#SET{'eve_jour', (#ENV{#ENV{var_date},#ENV{date}}|affdate{'Y-m-d'})}
<B_vevent>
[(#ANCRE_PAGINATION)]
[<p class="pagination">(#PAGINATION)</p>]          
<BOUCLE_vevent(EVENEMENTS){par date_debut}{date_debut==#GET{eve_jour}}{date_fin>=#GET{eve_jour}}{pagination}>
<li>
<a class="#EDIT{titre}" href="[(#URL_PAGE{event,id_evenement=#ID_EVENEMENT})]" [ title="(#TITRE|attribut_html|couper{80})"] onclick="jQuery.modalbox('[(#URL_PAGE{event,id_evenement=#ID_EVENEMENT}|parametre_url{var_zajax,contenu})]');return false;">[(#TITRE)]</a>
[(#DATE_DEBUT|agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})]
</li>
</BOUCLE_vevent>
[<p class="pagination">(#PAGINATION)</p>]
</B_vevent>
</ul>

La seule chose qui manque est d'afficher le logo de l’événement même si l’événement en question est une répétition.

dd

-- 
----
chan
Reply all
Reply to author
Forward
0 new messages