Výpis hierarchického menu dotazovým zdrojem

Předpokládáme, že _template.root_menu je výčtový datový zdroj obsahující první úroveň menu.

Výpis je rekurzivní, při opakovaném volání šablony v režimu node se mění parametr reprezentující aktuální sekci (pojmenovaný také node).

Vždy se vypíše odkaz na tuto sekci, a pokud je tato sekce předkem aktuální sekce, vypíšo se všechny její podsekce. K tomu se volá iterace přes zdroj _template.menu_source, což musí být dotazový zdroj, který vrací podsekce zadané sekce.

Fragmenty kódu

Defaultní režim šablony
<ul>
{while _template.root_menu}
  {_template mode="node" node=_.asset}
{/while}
</ul>
Režim "node"
<li>
  <a href="{link(node)}">{node.title}</a>
  {if isParent(node, _primary)}
    {while _template.menu_source folder=node}
    {whilefirst}<ul>{/whilefirst}
      {_template mode="node" node=_.asset}
    {whilelast}</ul>{/whilelast}
    {/while}
  {/if}
</li>