Forum CMS Made Simple FR
[résolu] Smarty et affichage de blocs conditionnel - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Général (https://forum.cmsmadesimple.fr/forum-10.html)
+--- Sujet : [résolu] Smarty et affichage de blocs conditionnel (/thread-1633.html)



[résolu] Smarty et affichage de blocs conditionnel - Whymsun - 04/12/2011

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: -1.9.4.3
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Afin de gérer l'affichage de mes bannières dans mes différentes rubriques, j'utilise le code suivant :

Code :
[== Smarty ==]
{if $page_alias eq 'rubrique_1'}
{cms_module module='Banners' category='category_1'}
{elseif $page_alias eq 'rubrique_2' or $page_alias eq 'rubrique_2_page_01' or $page_alias eq 'rubrique_2_page_02' or $page_alias eq 'rubrique_2_page_03' or $page_alias eq 'rubrique_2_page_04'}
{cms_module module='Banners' category='rubrique_02'}
{else}
{cms_module module='Gallery' dir='bandeaux-generique'}
{/if}

La condition elseif présuppose que les pages 01, 02, 03, 04 existent déjà et je ne trouve pas comment indiquer que la bannière de la rubrique 2 doit s'appliquer à toutes les pages enfants de cette rubrique.

Une idée ? Smile


[résolu] Smarty et affichage de blocs conditionnel - airelibre - 04/12/2011

Hello,

Pour gérer ce genre de situation - même comportement pour tous les enfants d'une rubrique principale - j'utilise le module CGSimpleSmarty qui propose une fonction bien pratique :
Code :
{$cgsimple->get_root_alias()}

Qui retourne l'alias de la page racine par rapport à la page en cours. J'espère que ca pourra t'aider !


[résolu] Smarty et affichage de blocs conditionnel - Whymsun - 05/12/2011

Un grand merci pour le conseil airelibre,

get_root_alias() pour les têtes de rubriques,

get_parent_alias() pour les sous rubriques,

et c'est le contrôle absolu des blocs où l'on veut, quand on veut !

Désormais mon code donne ceci :

Code :
[== Smarty ==]
{if $page_alias eq 'page_1'}
{cms_module module='Banners' category='category_1'}
{elseif $page_alias eq 'sous-rubrique_2' or $cgsimple->get_parent_alias() == "sous-rubrique_2"}
{cms_module module='Banners' category='sous-rubrique_02'}
{elseif $cgsimple->get_root_alias() == "rubrique_03"}
{cms_module module='Banners' category='rubrique_03'}
{else}
{cms_module module='Gallery' dir='bandeaux-generique'}
{/if}



[résolu] Smarty et affichage de blocs conditionnel - airelibre - 05/12/2011

Et oui c'est bien pratique Wink C'est pas mal aussi pour associer une couleur à chaque rubrique, je fais généralement :
Code :
<body id="{$cgsimple->get_root_alias()}">

Et css fait le reste Wink

Comme c'est résolu, je ferme ou tu as d'autres questions ?


[résolu] Smarty et affichage de blocs conditionnel - Whymsun - 05/12/2011

Non, c'est ok, je vais explorer cette utilisation pour les couleurs...


[résolu] Smarty et affichage de blocs conditionnel - airelibre - 05/12/2011

Ca marche, je ferme la discussion !