[résolu] CGCalendar : affichage conditionnel du type de liste -
nicks - 04/11/2010
Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS -MLE- : 1.8.2
#~ Nom de l'hébergeur : OVH
#~ Informations Système :
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
Bonjour!
Je souhaiterai afficher un type de liste particulier en fonction d'un évènement passé ou non.
Je m'explique, en page d'accueil, s'affiche le prochain évènement à venir (display='upcominglist'). C'est très bien, ca fonctionne bien, seulement, lorsque je n'ai pas d'évènement "à venir" à afficher, il y a un blanc sur ma page. Je voudrais donc que lorsqu'il n'y a pas d'évènement à venir à afficher, ce soit le dernier évènement passé qui s'affiche (display='pastlist').
J'ai inséré la balise du module de cette manière dans le gabarit de ma page d'accueil :
Code :
{cms_module module='CGCalendar' display='upcominglist' detailpage="prochains-rdv" limit='1' upcominglisttemplate='accueil' category='seminaires'}
Je pense qu'il faudrait donc que j'ajoute quelque-chose qui ressemble à ceci (?):
Code :
{if $upcominglist!=0}
{cms_module module='CGCalendar' display='upcominglist' detailpage="prochains-rdv" limit='1' upcominglisttemplate='accueil' category='seminaires'}
{else}
{cms_module module='CGCalendar' display='pastlist' detailpage="prochains-rdv" limit='1' listtemplate='accueil' category='seminaires'}
{/if}
Le hic bien sur, c'est que mon paramètre 'upcominglist' est inhérent au module CGCalendar alors que cette partie de code est dans le gabarit de ma page (du coup ca ne "percute" pas...)
[résolu] CGCalendar : affichage conditionnel du type de liste -
bess - 04/11/2010
je connais pas bien les paramètres de CGCalendar mais j'imagine que tu as un template de rendu avec ton premier appel
à l'intérieur tu peux trouver la boucle qui doit être ainsi :
Code :
{foreach from=$ta_liste item=element_de_ta_liste}
...
{/foreach}
tu ajoutes en dessous un code d'assignation
Code :
{assign name='compteur' value=count($ta_liste)}
A partir de ce moment tu peux soit dans ton template soit dans la suite de ton gabarit de page appeler ton compteur et tester
Code :
{cms_module module='CGCalendar' display='upcominglist' detailpage="prochains-rdv" limit='1' upcominglisttemplate='accueil' category='seminaires'}
{if $compteur == 0}
{cms_module module='CGCalendar' display='pastlist' detailpage="prochains-rdv" limit='1' listtemplate='accueil' category='seminaires'}
{/if}
Avec 2/3 ajustements tu devrais être bon
[résolu] CGCalendar : affichage conditionnel du type de liste -
nicks - 04/11/2010
Bon ben c'est nickel! Ca marche parfaitement et du premier coup svp!
Effectivement, les gabarits de CGCalendar sont construits de la même manière que ceux du module de news (par ex).
Du coup, dans mon cas, voici le code utilisé :
Gabarit de la page :
Code :
{cms_module module='CGCalendar' display='upcominglist' detailpage="prochains-rdv" limit='1' upcominglisttemplate='accueil' category='seminaires'}
{if $compteur == 0}
{cms_module module='CGCalendar' display='pastlist' detailpage="prochains-rdv" limit='1' upcominglisttemplate='accueil' category='seminaires'}
{/if}
Le code du gabarit (upcominglisttemplate='accueil') :
Code :
{foreach from=$events key=key item=event}
<h2>{$event.event_title}</h2>
[... Je vous épargne la structure qui n'apporte rien à ce topic... ]
{/foreach}
{assign name='compteur' value=count($events)}
(Petite remarque HS, ces derniers jours je regardais un peu du côté de la concurrence et notamment de CONTAO (ex: typolight) parce-que j'ai pour projet de créer un site accessible pour les personnes handicapés (label accessiweb) (et Contao se veut accessible (?)). J'ai lu bcp de témoignages sur la facilité d'utilisation de ce CMS... Ben ce que je peux dire après qq jours c'est qu'à mon sens on est bien loin de la souplesse de MadeSimple... Bref, je vais voter doublement pour CMSMS
En tout cas merci pour cette réponse rapide et parfaite!
[résolu] CGCalendar : affichage conditionnel du type de liste -
bess - 04/11/2010
bha t'as du bol, d'habitude mes codes fonctionnent jamais du premier coup
allez met nous [résolu] dans le titre de ton premier message