[gelöst]wenn ein Haupt-Menü-Punkt keine Unterpunkte hat

Für Fragen und Diskussionen zum Layout und Design, Templates und Stylesheets sowie Themes
Post Reply
jazzbüro
Forum Members
Forum Members
Posts: 85
Joined: Sat Nov 28, 2009 10:15 pm

[gelöst]wenn ein Haupt-Menü-Punkt keine Unterpunkte hat

Post 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  :)
Last edited by jazzbüro on Wed Feb 03, 2010 9:17 pm, edited 1 time in total.
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm

Re: wenn ein Haupt-Menü-Punkt keine Unterpunkte hat

Post 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}

[this message is written with 100% recycled bits]
jazzbüro
Forum Members
Forum Members
Posts: 85
Joined: Sat Nov 28, 2009 10:15 pm

Re: wenn ein Haupt-Menü-Punkt keine Unterpunkte hat

Post 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?
jazzbüro
Forum Members
Forum Members
Posts: 85
Joined: Sat Nov 28, 2009 10:15 pm

Re: wenn ein Haupt-Menü-Punkt keine Unterpunkte hat

Post by jazzbüro »

ich habs versucht, ich kriegs nicht gebacken... schade.

nockenfell, hast du noch eine Idee für mich?
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm

Re: wenn ein Haupt-Menü-Punkt keine Unterpunkte hat

Post 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
[this message is written with 100% recycled bits]
jazzbüro
Forum Members
Forum Members
Posts: 85
Joined: Sat Nov 28, 2009 10:15 pm

Re: wenn ein Haupt-Menü-Punkt keine Unterpunkte hat

Post by jazzbüro »

Mensch, da haben sich unsere Posts überschnitten, gerade wollte ich auch Vollzugsmeldung geben!  :D

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!
jazzbüro
Forum Members
Forum Members
Posts: 85
Joined: Sat Nov 28, 2009 10:15 pm

Re: [nicht ganz gelöst]wenn ein Haupt-Menü-Punkt keine Unterpunkte hat

Post 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!
Post Reply

Return to “Layout und Design”