Forum CMS Made Simple Francophone

Aide francophone sur CMS Made Simple

Vous n'êtes pas identifié(e).

Annonce

ATTENTION

  • Prenez le temps de rechercher si quelqu'un n'a pas déjà proposé une solution à votre problème. Sur le forum français et sur le wiki
  • Pensez à mettre à jour votre version de CMS Made Simple. Nous ne faisons de support que sur LA dernière version de CMS Made Simple.
  • Renseignez impérativement le formulaire de nouveau message de manière la plus complète que possible. Dans votre CMS utiliser le menu Administration du site/Informations du système en haut Vue au format texte. Ces informations demandées nous permettent de mieux vous aider
  • Ajoutez [Résolu] au début du titre de votre 1er message lorsqu'une solution a été trouvée.

#1 04/11/2010 16:35:38

nicks
Membre
Lieu : Strasbourg
Inscription : 24/03/2010
Messages : 76

[résolu] CGCalendar : affichage conditionnel du type de liste

#~~~~~ 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 :

{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 (?):

{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...)

Dernière modification par nicks (04/11/2010 18:32:17)

Hors ligne

#2 04/11/2010 17:25:40

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : [résolu] CGCalendar : affichage conditionnel du type de liste

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 :

{foreach from=$ta_liste item=element_de_ta_liste}

...

{/foreach}

tu ajoutes en dessous un code d'assignation

 {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

{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

Hors ligne

#3 04/11/2010 18:06:09

nicks
Membre
Lieu : Strasbourg
Inscription : 24/03/2010
Messages : 76

Re : [résolu] CGCalendar : affichage conditionnel du type de liste

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 :

{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') :

{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!

Hors ligne

#4 04/11/2010 18:27:46

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : [résolu] CGCalendar : affichage conditionnel du type de liste

bha t'as du bol, d'habitude mes codes fonctionnent jamais du premier coup big_smile

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

Hors ligne

Pied de page des forums