Spezielle Anzeige des Menüs/ Umschreibung JavaScript

Hallo,
ich benötige eine spezielle Anzeige des Menüs. Leider fehlen mir die nötigen JavaScript-Kenntnisse, um die Datei categroy_tree.tpl umzubauen.
Und zwar soll die 2.Menü-Hierarchie (das Submenü) nicht direkt unter dem Hauptmenüpunkt erscheinen, sondern unter dem kompletten Hauptmenü.

Die 3. Menü-Hierarchie ( also 2. Submenü) soll dann allerdings direkt unter der 2. Menü-Hierarchie angezeigt werden.
Hier ein Screenshot:

SHOP ist Hauptmenüpunkt
clothing ist 2. Menü-Hierarchie
man ist 3. Menü-Hierarchie.

Aktuell sieht meine Template-Datei category_tree.tpl so aus http://www.calfeel.com/category_tree.tpl.

Ich habe die <ul>´s einfach doppelt reingesetzt und jeweils das Unerwünschte rausgenommen.

Wie aber muss die Abfrage aussehen, damit die 3. Navigationsebene direkt unter dem aktiven 2. Navigationspunkt angezeigt wird und nicht unter dem kompletten Zweig der 2. Navigationsebene?

Hoffe mir kann jemand helfen.
Danke schonmal im Voraus.
Liebe Grüße, Sandra

Hallo,
welcher User soll denn das verstehen ? Aber davon mal abgesehen kannst du einfach mit [{assign … }] die Sachen aus der schleife sammeln und dann drunter ausgeben. Javascript ist da nicht von Nöten.

Grüße

Rafael

Hi Rafael,
kannst Du mir bzgl assign bitte weiterhelfen?
Ich habe nun schon einiges Umkopieren ausprobiert, doch mir fehlen die Kenntnisse dazu:
Wo genau muss [{assign stehen? was genau muss ich hineinkopieren, um die 2. und 3. Navigationsebene separat aufgelistet zu erhalten?

[{if $tree || $oView->getContentCategory() }]
[{assign var=“oContentCat” value=$oView->getContentCategory() }]
[{defun name=“category_tree” tree=$tree act=$act class=$class testSubCat=’’}]
[{strip}]
<ul [{if $class}]class="[{$class}]"[{/if}]>
[{foreach from=$tree item=ocat key=catkey name=$test_catName}]
[{if ( !$ocat->isTopCategory() || !$oView->showTopCatNavigation() ) && $ocat->getContentCats() }]
[{foreach from=$ocat->getContentCats() item=ocont key=contkey name=cont}]
<li><a id=“test_BoxLeft_Cms_[{if $ocat->isTopCategory()}][{$ocat->oxcategories__oxid->value}][{$smarty.foreach.cont.iteration}][{else}][{$testSubCat}]sub[{$smarty.foreach.cont.iteration}][{/if}]" href="[{$ocont->getLink()}]" class="[{if $ocat->isTopCategory()}]root[{/if}][{if $oContentCat && $oContentCat->getId()==$ocont->getId()}] act last[{/if}]">[{ $ocont->oxcontents__oxtitle->value }]</a></li>
[{/foreach}]
[{/if}]
[{if $ocat->getIsVisible() }]
<li>
<a id="test_BoxLeft_Cat
[{if $ocat->isTopCategory()}][{$ocat->oxcategories__oxid->value}]
[{$smarty.foreach.$test_catName.iteration}][{else}][{$testSubCat}]_sub[{$smarty.foreach.$test_catName.iteration}][{/if}]” href="[{$ocat->getLink()}]" class="[{if $ocat->isTopCategory()}]root [{/if}][{if $ocat->hasVisibleSubCats}][{if $ocat->expanded }]exp [{/if}]has [{else}]last [{/if}][{if isset($act) && $act->getId()==$ocat->getId() && !$oContentCat }]act [{/if}]">[{$ocat->oxcategories__oxtitle->value}] </a>

    &lt;/li&gt;
    [{/if}]
[{foreachelse}]
    [{if $oContentCat }]            
        &lt;li&gt;&lt;a id="test_BoxLeft_Cms_0" class="root act" href="[{$oContentCat-&gt;getLink()}]"&gt;[{ $oContentCat-&gt;oxcontents__oxtitle-&gt;value }]&lt;/a&gt;&lt;/li&gt;
    [{/if}]
[{/foreach}]


[{assign fun name="category_tree" tree=$ocat-&gt;getSubCats() act=$act class="" testSubCat=$ocat-&gt;oxcategories__oxid-&gt;value 
}]


&lt;/ul&gt;

[{/strip}]
[{/defun}]
[{/if}]

also mit [{assign var=“menu1” value="<das was darin sein soll>"}] kannst du Sachen in eine Variable speichern.

Danach dann [{$menu1}] um sie wieder auszugeben.
um etwas an die selbe Variable dran zu hängen musst du [{assign var=“menu1” value=$menu1|cat:"<das was dran gehängt werden soll>" }]

alternativ: [{capture var=“menu1”}] <das was du zwischen speichern möchtest> [{/capture}]

Die Ausgabe ist dann [{$smarty.capture.menu1}]
Diese Methode hat den Vorteil das alles was zwischen den beiden captures passiert einfach aufgezeichnet wird also auch die Ausgaben von Schleifen etc.

Der Rest ist bei dir :wink:

Grüße

Rafael