Page 1 of 1
[gelöst]wenn ein Haupt-Menü-Punkt keine Unterpunkte hat
Posted: Tue Feb 02, 2010 9:42 pm
by jazzbüro
Hallo!
Ich setze ein horizontales Menü für die Hauptpunkte und ein vertikales Menü links für die Unterpunkte des aktiven Menüpunktes ein.
Nun gibt es in meiner Realisierung aber ein oder zwei Hauptpunkte, welche keine Unterpunkte haben. Dann möchte ich statt des Untermenüs einen GlobalContentBlock mit einer kleinen Galerie oder Youtube etc. alternativ einbinden
Ich verstehe aber den Menümanager einfach nicht, weiss nicht wo ich im Menü-Template diese Regelung einbinden kann.
Es gibt diesen Abschnitt und hier irgendwo muss ich das einbinden, aber ich produziere nur Murks..
Code: Select all
{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
{/if}
wie kann man die Ausgabe eines
{global_content name='statt_untermenue'} regeln?
Ich wäre froh, wenn es dafür eine Lösung gibt, das hilft mir weiter :)
Re: wenn ein Haupt-Menü-Punkt keine Unterpunkte hat
Posted: Tue Feb 02, 2010 9:48 pm
by nockenfell
hm, wenn es hauptmenü keine Unterpunkte gibt, liefert das vertikale Menü auch keine Datensätze. Somit kann dort nichts kommen.
Im Menümanager habe ich bei mir das Template mit {if $count > 0} begonnen. Entsprechend solltest du damit auch ein {else} definieren können. In diesem kannst du den Contentblock einbauen
Code: Select all
{if $count > 0}
<div id="menuwrapper">
<ul id="primary-nav">
{foreach from=$nodelist item=node}
.......
{/foreach}
{repeat string='</li></ul>' times=$node->depth-1}
</li>
</ul>
</div>
{else}
{global_content name='statt_untermenue'}
{/if}
Re: wenn ein Haupt-Menü-Punkt keine Unterpunkte hat
Posted: Tue Feb 02, 2010 10:08 pm
by jazzbüro
Mensch, das ist ja eine schnelle Antwort! Danke!
Schau mal, ich habe es so im "submenu" eingebunden:
Code: Select all
{if $count > 0}
<h3>Menü</h3>
<ul class="sidemenu">
{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->parent == true or ($node->current == true and $node->haschildren == true)}
<li><a class="current"
{elseif $node->current == true}
<li><a class="current"
{elseif $node->haschildren == true}
<li><a
{elseif $node->type == 'sectionheader'}
<li> {$node->menutext}
{elseif $node->type == 'separator'}
<li>
{else}
<li><a
{/if}
{if $node->type != 'sectionheader' and $node->type != 'separator'}
href="{$node->url}" {if $node->accesskey != ''}accesskey="{$node->accesskey}" {/if}{if $node->tabindex != ''}tabindex="{$node->tabindex}" {/if}{if $node->titleattribute != ''}title="{$node->titleattribute}"{/if}{if $node->target ne ""} target="{$node->target}"{/if}><dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
{elseif $node->type == 'sectionheader'}
><dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
{/if}
{/foreach}
{repeat string="</li></ul>" times=$node->depth-1} </li>
</ul>
{else}
{global_content name='slider'}
{/if}
im Template ist das Sub-Menü so eingebunden:
Code: Select all
{menu template='jazzbuero_submenu' number_of_levels='4' start_level='2'}
aber auf der Seite mit dem leeren Untermenü wird nichts angezeigt. (hab den globalen Cache und meinen Browser-Cache geleert ;=)
hab ich das doch an die falsche Stelle gesetzt?
Re: wenn ein Haupt-Menü-Punkt keine Unterpunkte hat
Posted: Wed Feb 03, 2010 11:10 am
by jazzbüro
ich habs versucht, ich kriegs nicht gebacken... schade.
nockenfell, hast du noch eine Idee für mich?
Re: wenn ein Haupt-Menü-Punkt keine Unterpunkte hat
Posted: Wed Feb 03, 2010 12:06 pm
by nockenfell
Probiere es mal so:
Code: Select all
{capture assign=menu}{menutag}{/capture}
if ($menu != "")
{menutag}
{else}
{global_content name='slider'}
{/if}
Dies direkt im Template (nicht Menü-Template) einfügen. Den {menutag} musst du noch durch deinen eigentlichen Menütag ersetzen.
Siehe auch
http://forum.cmsmadesimple.org/index.php?topic=41213.0;prev_next=next
Re: wenn ein Haupt-Menü-Punkt keine Unterpunkte hat
Posted: Wed Feb 03, 2010 12:22 pm
by jazzbüro
Mensch, da haben sich unsere Posts überschnitten, gerade wollte ich auch Vollzugsmeldung geben!
Ich habe in einem anderen Posting eine Lösung gefunden, die ich gerade getestet habe und die auch super funktioniert:
http://forum.cmsmadesimple.org/index.php/topic,23054.msg112162.html#msg112162
Wichtig ist vor allem, dass es im Seitentemplate und nicht im Menü-Template geregelt wird:
Jetzt probier ich deine Lösung auch noch aus, dann hab ich wieder was dazugelernt.
Danke!
Re: [nicht ganz gelöst]wenn ein Haupt-Menü-Punkt keine Unterpunkte hat
Posted: Wed Feb 03, 2010 9:16 pm
by jazzbüro
so, jetzt habe ich es erreicht, daß wenn ein Hauptpunkt keine Unterpunkte hat, kein Menü ausgegeben wird, stattdessen ein anderer Inhalt / global content block
was ich nicht bedacht habe:
dies geschieht nun bei allen "letzten" Unterpunkten, dort fehlen die übergeordneten Menüpunkte!
Meine Lösung hat bei ALLEN Punkten das Menü verschluckt,
Code: Select all
{if $cgsimple->has_children()} {menu template='jazzbuero_submenu' number_of_levels='4' start_level='2'}
{else}
{global_content name='name_des_globalcontentblock'} {/if}
die von nockenfell vorgeschlagene Lösung hat funktioniert:
Code: Select all
{capture assign=menu}{menu template='jazzbuero_submenu' number_of_levels='4' start_level='2'}{/capture}
{if ($menu != "")}
{menu template='jazzbuero_submenu' number_of_levels='4' start_level='2'}
{else}
{global_content name='name_des_globalcontentblock'}
{/if}
Merci!