Forum CMS Made Simple FR

Version complète : [résolu] CGCalendar : affichage conditionnel du type de liste
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
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...)
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
Bon ben c'est nickel! Ca marche parfaitement et du premier coup svp! Wink

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 Smile

En tout cas merci pour cette réponse rapide et parfaite!
bha t'as du bol, d'habitude mes codes fonctionnent jamais du premier coup Big Grin

allez met nous [résolu] dans le titre de ton premier message Wink