Schritt 1: Vorgabe öffnen
Als aller erstes öffnen wir mal die Navigationsvorlage minimal_menu.tpl, dessen Code wir als Vorlage für unsere neue Navigation verwenden wollen. Zur besseren Veranschaulichung der komplette Code:
Code: Select all
{* CSS classes used in this template:
.currentpage - The active/current page
.bullet_sectionheader - To style section header
hr.separator - To style the ruler for the separator *}
{if $count > 0}
<ul class="clearfix">
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string="<ul>" times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
</li>
{elseif $node->index > 0}</li>
{/if}
{if $node->current == true}
<li><a href="{$node->url}" class="currentpage"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>
{elseif $node->parent == true && $node->depth == 1}
<li class="activeparent"> <a href="{$node->url}" class="activeparent"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>
{elseif $node->type == 'sectionheader'}
<li class="sectionheader">{$node->menutext}
{elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="separator" />
{else}
<li><a href="{$node->url}"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>
{/if}
{/foreach}
{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}
Nun entfernen wir und
(Achtung! Nicht alle -Tags löschen. Der überflüssige Tag sollte sich in der 2 letzten Zeile vor {/if} befinden)
Schritt 3: Abfragen einfügen
Damit Smarty nun weiß, ob ein neuer -Container angefangen werden soll, müssen wir die verschiedenen Möglichkeiten per if-Abfragen abfangen.
Suche:
Code: Select all
{if $node->current == true}
Code: Select all
{if $node->type != 'sectionheader' and $node->hierarchy == 1}
<ul class="submenu">
{/if}
Suche:
Code: Select all
{elseif $node->type == 'sectionheader'}
Code: Select all
{if $node->hierarchy != 1}
</ul>
{/if}
Suche:
Code: Select all
{elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="separator" />
{else}
Code: Select all
{if $node->type != 'sectionheader' and $node->hierarchy == 1}
<ul class="submenu">
{/if}
Schritt 4: Überschriften der Navigationsboxen anpassen
Suche:
Code: Select all
{elseif $node->type == 'sectionheader'}
{if $node->hierarchy != 1}
</ul>
{/if}
<li class="sectionheader">{$node->menutext}
Code: Select all
<li class="sectionheader">{$node->menutext}
Dazu solltet ihr zuerst einmal den -Tag entfernen, da dieser nun überflüssig ist.
Zudem ist es wichtig, dass ihr noch
Code: Select all
<ul class="submenu">
Das ganze könnte dann ung. so aussehen:
Code: Select all
{elseif $node->type == 'sectionheader'}
{if $node->hierarchy != 1}
</ul>
{/if}
<h1 class="sectionheader">{$node->hierarchy}: {$node->menutext}</h1>
<ul class="submenu">
Wenn ihr das ganze fertig habt, wird euch folgender Code generiert:
Code: Select all
<h1 class="sectionheader">Navigationsbox 1</h1>
<ul class="submenu">
<li>Menüpunkt 1</li>
<li>Menüpunkt 2</li>
</ul>
<h1 class="sectionheader">Navigationsbox 2</h1>
<ul class="submenu">
<li>Menüpunkt 1</li>
<li>Menüpunkt 2</li>
</ul>
Schritt 5: Abspeichern
Speichert den geänderten Code am besten in eine neue Datei, z.B. mit Namen multiple_menues.tpl.
Als letzten Schritt müsst ihr nur noch in eurem Template die neue Navigation eintragen.
Tipp: Um eine neue Navigationsbox zu erstellen, müsst ihr unter Neue Seite hinzufügen bei Inhaltstyp SectionHeader auswählen.
So, das wars. Ich hoffe ihr könnt damit etwas anfangen.
Viel Spaß!
MfG demon_firefox