Rekursive Aufrufe

Ü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}
wb_incandescent
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