Bonjour,
J'essaie de comprendre comment est construit le menu du template défaut.
{* define current ID *}
{loop name="current_cat" type="category" current="yes"}
{assign var="current_category_id" value="{$PARENT}"}
{/loop}
{* define the function *}
{function menu level=0}
{if $level == 0}
<ul id="category" class="accordion">
{else}
{if $parent == $current_category_id}
<ul id="collapse{$parent}" class="in">
{else}
<ul id="collapse{$parent}" class="collapse">
{/if}
{/if}
{loop name="cat-parent-$level" type="category" parent=$parent need_count_child=1}
{if $CHILD_COUNT> 0}
<li><a href="{$URL}#collapse{$ID}" class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#collapse{$ID}">{$TITLE}</a>
{menu parent=$ID level=$level+1}
</li>
{else}
<li><a href="{$URL}">{$TITLE} ({count type="product" category="{$ID}"})</a></li>
{/if}
{/loop}
</ul>
{/function}
{menu parent='0'}
Le code parait simple, mais cette relative simplicité est surement dû au côté récursif de la fonction ... la ligne "{menu parent=$ID level=$level+1}" appelle déjà la fonction avant la fin de la balise {/fonction} ?
Quelqu'un peut-il m'expliquer simplement comment ça fonctionne ?
On initialise directement l'argument level dans la déclaration de la fonction > {function menu level=0} ?
Merci pour votre éclairage
Last edited by anti-conformiste (28-04-2014 10:15:57)