Ahoj,
potřeboval bych vybrat položky do menu a to tak, že ne všechny. Ideálně, což nejde (alespoň se mi nepovedlo), bych potřeboval zkombinovat start_element='' a items=''. Mám vybraných několik položek přes items, ale potřeboval bych i jejich potomky.
Struktura stránek je třeba následující:
- úvod
- o nás
- produkty
- - produkt 1
- - produkt 2
- služby
- - služba 1
- - služba 2
- kontakt
A v šabloně potřebuju tohle {menu items='produkty, sluzby'} (a k tomu jejich děti). Potomci mohou přibývat, nemůžu je proto specifikovat explicitně.
Druhá možnost (počet vybraných rodičů bude neměnný) je říci něco jako: {menu start_page='produkty' count=2}.
Jak tohle udělat? Samozřejmě, možnost je taky rozdělit stránky do sekcí, ale jednak jich je moc (skoro 200) a přibyl by název sekce do URL (mod_rewrite), což by nebylo žádoucí.
Děkuji za rady.
Výběr položek menu
Re: Výběr položek menu
Možná by bylo vhodnější použít pro výběr položek do menu atributy stránky (při editaci stránky na kartě Nastavení). Použij např. atribut "menu" a pak v šabloně menu by to mohlo vypadat nějak takhle:
Důležitá je ta část kódu {if ($node->extra1 == 'menu'}...kód...{/if}. Já tenhle princip využívám o webu s archivem online vydání týdeníku EURO http://evydani.euro.cz, i když v jiné souvislosti. Tam je stránka Archiv, která se zobrazí v menu až v okamžiku, kdy je uživatel přihlášen, takže mám tu podmínku postavenou trochu jinak. Uděláš si svojí šablonu, ve které se vypíší pouze stránky, které mají v atributu stránky odpovídající hodnotu. That's all 
Code: Select all
{* CSS classes used in this template:
#menuwrapper - The id for the <div> that the menu is wrapped in. Sets the width, background etc. for the menu.
#primary-nav - The id for the <ul>
.menuparent - The class for each <li> that has children.
.menuactive - The class for each <li> that is active or is a parent (on any level) of a child that is active. *}
{if $count > 0}
<ul id="nav-secondary">
{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->extra1 == 'menu')}
{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
<li class="menuactive menuparent"><a class="menuactive menuparent" {elseif $node->current == true}
<li class="menuactive"><a class="menuactive" {elseif $node->haschildren == true}
<li class="menuparent"><a class="menuparent" {else}
<li><a {/if}
href="{$node->url}">{$node->menutext}</a>
{/if}
{/foreach}
{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}

-
- New Member
- Posts: 3
- Joined: Fri Jan 29, 2010 8:36 pm
Re: Výběr položek menu
Napadá mě použít atribut includeprefix, kdy se zobrazí stránky s určitým prefixem, nebo pokud máš pevně daný počet parent stránek, tak použít více menu za sebou, například
{menu start_page='produkty'}
{menu start_page='sluzby'}
{menu start_page='produkty'}
{menu start_page='sluzby'}