Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[résolu]Menus. gabarits perso ?
#14

Citation :Il y manquerait encore un class = "last" pour chaque DERNIER li d'un niveau.
Il suffit alors de placer en première condition dans ta boucle : {if $node->last == true}<li class="last"...
{elseif ...
Voici le code dans lequel j'ai ajouté quelques fonctions smarty très utiles qui permettent d'éviter les répétitions de sous-conditions :
Code :
{assign "class" "bootstrap"}{* on assigne une valeur quelquonque à $class voir smarty : http://www.smarty.net/docs/en/language.function.assign.tpl *}

{if $count > 0}
<nav class="navbar navbar-fixed-top" id="menutop"><div class="navbar-inner"><div class="container"><h1 class="brand" >Nom du projet</h1><ul class="nav">
{foreach $nodelist as $node}{* raccourci d'écriture : voir smarty : http://www.smarty.net/docs/en/language.function.foreach.tpl *}
{if $node->depth > $node->prevdepth}{* si on est ul>ul *}    
{if $node->depth > 2}
{* si on est ul>ul>ul ou + on met .sub-menu dessus *}
{repeat string='<ul class="dropdown-menu sub-menu">' times=$node->depth-$node->prevdepth}
{else}
{repeat string='<ul class="dropdown-menu">' times=$node->depth-$node->prevdepth}
{/if}
{elseif $node->depth < $node->prevdepth}{* si on descend de niveau *}
{repeat string='</li></ul>' times=$node->prevdepth-$node->depth}
{elseif $node->index > 0}</li>
{/if}
{if $node->last == true}{* si on est sur le dernier élément d'un niveau, on concatène $class avec last-menu-item voir smarty : http://www.smarty.net/docs/en/language.modifier.cat.tpl ET http://www.smarty.net/docs/en/language.function.capture.tpl*}
{capture class assign=class}{$class|cat:" last-menu-item"}{/capture}
{/if}
{if $node->haschildren == true and $node->type != 'sectionheader' and $node->type != 'separator'}
{capture class assign=class}{$class|cat:" dropdown"}{/capture}
<li class='{$class}'>children<a href="{$node->url}" data-toggle="dropdown">{$node->menutext} <b></b></a>
{elseif $node->type == 'sectionheader'}{* à vérifier si c'est ce que tu veux *}
<li class='{$class}'><a href="{$node->url}" data-toggle="dropdown">{$node->menutext} <b></b></a>
{else}
<li class='{$class}'>else<a href="{$node->url}">{$node->menutext}</a>
{/if}
{assign "class" "bootstrap"}{* important : on réinitialise $class pour l'élément suivant *}
{/foreach}
{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul></div></div></nav>{/if}

Post à déplacer dans Modules, Tags
Sujet fermé


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)