Über rekursive Aufrufe des {include}-Befehls können sie auch relativ einfach beliebig Tiefe Navigationen erstellen. Dies eignet sich besonders, um z.B. eine einfache Sitemap zu generieren.
Dazu legen Sie z.B. direkt im Design-Verzeichnis eine Datei unterseiten.html an, die wie folgt aufgebaut ist :
{if $aktuelle_id}
{navigation id=$aktuelle_id var=unterseiten}
{else}
{navigation page=$aktuelle_seite var=unterseiten}
{/if}
{if $unterseiten}
<ul>
{foreach from=$unterseiten item=seite}
<li>
<a href="{page_url page=$seite}">{$seite->field.name}</a>
{include file=unterseiten.html aktuelle_seite=$seite}
</li>
{/foreach}
</ul>
{/if}</ul>
Jetzt muss man nur noch an passender Stelle (z.B. in der index.html) dieses Template zum ersten Mal einbinden :
{include file=unterseiten.html aktuelle_id=$site->rootId}
Um eine solche Rekursion zu realisieren greifen wir auf die Möglichkeit zurück dem {include}-Befehl zusätzliche Parameter übergeben zu können.
Näheres hierzu können Sie dem entsprechenden Kapitel des Smarty-Dokumentation entnehmen