Otváranie sekcie v menu podľa aktívnej položky
- Čamo
- Člen | 798
Dobré ráno,
Už niekoľko hodín sa pokúšam vytvoriť také menu, ktoré by bolo schopné
otvoriť iba tú sekciu, ktorá obsahuje aktuálnu url.
V databáze mám tabuľku menu(zjednodušené):
- id PK
- parent_id int
- title
- url (v tvare :Module:Presenter:action)
No a chcem, aby sa v menu zobrazila, iba aktívna sekcia. Lenže keď začnem v šablone prechádzať tie položky cez foreach, tak neviem ako zistiť, či daná sekcia obsahuje aktívnu položku(aby som tú sekciu buď otvoril, alebo preskočil). Ako by sa to dalo vyriešiť?
Mám takú metódu v BasePresentery, ktorá dokáže rozoznať aktívny modul.
public function isSectionCurrent($url)
{
$url = ltrim($url, ':');
$section = explode(':', $this->getName())[0];
return stripos($url, $section) === 0;
//return \Nette\Utils\Strings::startsWith($this->getName(), $module);
}
Lenže to je závislé na tom, aby všetky položky v sekcii patrili do toho
istého modulu.
Chcel som napísať funkciu, ktorá by rekurzívne urobila ifCurrent, ale neviem
sa dopátrať k tej funkcii čo je za tým makrom.
Vie mi prosím vás niekto poradiť ako by sa to dalo vyriešiť?
Editoval Čamo (22. 11. 2014 2:38)