Menu pro všechny kategorie (latte)
- dog.big
- Člen | 49
Zdravím,
generuji si menu (statické) pro zobrazení v latte, vše funguje ok,
i označení aktivní „sekce“. Avšak já potřebuji, abych měl označenou
sekci (v menu class=„current“) i když navštíví uživatel nějakou
podsekci. Dejme tomu Distribution:test1. Jak na to?
Generované menu pomocí kódu:
public function beforeRender()
{
// Dynamicaly created menu along with user permissions
...
if ($this->user->isAllowed('distribution', 'access')) {
$this->template->menuItems['Distribuce produktů'] = 'Distribution:';
}
...
}
}
v základním latte zobrazené pak jako:
...
<div n:inner-foreach="$menuItems as $item => $link">
<a {ifCurrent $link}class="current"{/ifCurrent} n:href="$link">{$item}</a>
</div>
...
Editoval dog.big (27. 2. 2012 12:45)
- Etch
- Člen | 403
@pilec:
Vidíš. Píši rychleji, než mi to myslí. :) V šabloně bych to normálně otrimoval, než abych tam měl nějaký „složitý“ regex.
Ono teda obojí je dost naprd, ale dle mého názoru kodér spíše dá
trim($link. ':*')
než
preg_replace('/:([a-z0-9]+.*)$/i',':*',$link)
.
Pokud je to navíc takhle jednoduché, tak bych se nebál ani
$this->template->menuItems['Distribuce produktů'] = 'Distribution:';
<div n:inner-foreach="$menuItems as $item => $link">
<a n:href="$link" n:class="$presenter->isLinkCurrent($link.'*')?current">{$item}</a>
</div>
Popřípadě bych klidně posílal oba linky. Něco ve smyslu:
$items[] = array('title' => 'Distribuce produktů', 'link' => 'Distribution:')
foreach($items as $key => $val){
$items[$key]['current_link'] = $val['link'].'*';
}
$this->template->menuItems = $items;
<div n:inner-foreach="$menuItems as $item">
<a n:href="$item['link']" n:class="$presenter->isLinkCurrent($item['current_link'])?current">{$item['title']}</a>
</div>
Editoval Etch (28. 2. 2012 6:01)
- Etch
- Člen | 403
@pilec:
Ano tohle je samozřejmě pravda, ale marně v paměti pátrám potom, kdy
jsem naposled potřeboval použít
$presenter->isLinkCurrent('Foo:*')
a přitom jsem chtěl
odkazovat na jiné než defaultní view. Teď mě ani moc nenapadá, k čemu
bych to v praxi nějak využil. Nemáš nějaký příklad, kdy by se tohle
dalo nějak „více“ prakticky využít??
PS:
Co jsem koukal na ten regulár tady, tak když bude link absolutní
':Distribution:'
tak pravděpodobně vrátí jenom
':*'
. (netestováno)