20/09/2015, 22:58:24
Salut,
Je vois que tu en as profité pour modifier le code que tu souhaitais
.
En fait, j'avais juste une petite erreur, mais qui avait de grandes conséquences. Le premier parent, donc "navigation", est à $depth == 1, pas 0
.
Voilà le code fonctionnel et testé suivant tes derniers désirs, mon Prince
.
Si tu souhaites une explication, n'hésite pas.
Je vois que tu en as profité pour modifier le code que tu souhaitais

En fait, j'avais juste une petite erreur, mais qui avait de grandes conséquences. Le premier parent, donc "navigation", est à $depth == 1, pas 0

Voilà le code fonctionnel et testé suivant tes derniers désirs, mon Prince

Code :
{* this template uses recursion, but not a smarty function. *}
{*
variables:
node: contains the current node.
aclass: is used to build a string containing class names given to the a tag if one is used
liclass: is used to build a string containing class names given to the li tag.
*}
{if !isset($depth)}{$depth=0}{/if}
{strip}
{if $depth=0}
<div id="navbar" class="navbar-collapse collapse">
<ul class='nav navbar-nav navbar-right' role='menu'>
{$caret='<b class="caret"></b>'}
{else}
<ul class='dropdown-menu' role='menu'>
{/if}
{$depth=$depth+1}
{foreach $nodes as $node}
{* création et reset classes liens et ancres *}
{$liclass=[]}
{$aclass=[]}
{if $depth=1}{* si on est sur le top parent *}
{$liclass[]='dropdown'}
{$liclass[]='active'}
{$aclass[]='dropdown-toogle'}
{$aclass[]=$node->alias}{* supprimer si pas d'alias dans la classe de l'ancre *}
{elseif $node->has_children}{* si l'item a des enfants *}
{$liclass[]='dropdown'}
{$liclass[]='dropdown-submenu'}
{$aclass[]='dropdown'}
{$aclass[]='dropdown-toogle'}
{$aclass[]=$node->alias}{* supprimer si pas d'alias dans la classe de l'ancre *}
{else}
{$aclass[]='scrollTo'}
{/if}
{* build the menu item from the node *}
{if $node->type == 'sectionheader'}
<li class='{implode(' ',$liclass)}'><a{if count($aclass) > 0} class="{implode(' ',$aclass)}"{/if}><span class="sectionheader">{$node->menutext}</span></a>
{if isset($node->children)}
{include file=$smarty.template nodes=$node->children}
{/if}
</li>
{elseif $depth=1}
<li class="{implode(' ',$liclass)}">
<a{if count($aclass) > 0} class="{implode(' ',$aclass)}"{/if} href="{$node->url}" data-toggle='dropdown' data-target='#' target='_self'>{$node->menutext} {$caret}</a>
{if isset($node->children)}
{include file=$smarty.template nodes=$node->children}
{/if}
</li>
{elseif $node->type == 'separator'}
<li style="list-style-type: none;"><hr class="menu_separator"/></li>
{else}
<li{if count($liclass) > 0} class="{implode(' ',$liclass)}"{/if}>
<a{if count($aclass) > 0} class="{implode(' ',$aclass)}"{/if} href="#{if !$node->has_children}{$node->alias}{/if}">{$node->menutext}</a>
{if isset($node->children)}
{include file=$smarty.template nodes=$node->children}
{/if}
</li>
{/if}
{/foreach}
{$depth=$depth-1}
</ul>
{/strip}