Inhaltsverzeichnis Beispiele & Vorlagen Rekursive Aufrufe

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}

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