Komponenta pro vytvoření menu (diskuse)
- Endrju
- Člen | 147
Zdravím,
Zkoušel jsem například komponentu od Honzy Marka Navigation, ale ta bohužel nezvýrazňuje aktuální položku menu (nenastavuje ji to SAMO).
Zkoušel jsem se s tím potrápit sám, ale vždycky jsem narazil na nějaký problem. Proto se chci zeptat vás zkušenějších, jak by jste na to šli?
O co tedy jde?
Potřebuju vytvořit menu, u kterého se budou zvýrazňovat aktivní
položky a také bude umožňovat nastavit nějaké parametry.
Například bych chtěl nastavit u konktétní položky v menu (např
Diskuse) parametr "paginator-page" => NULL
Důvody, které mě k tomu vedou:
Menu mám definováno tímto stylem (neumožňuje definovat paramerty):
V šabloně jej pak vypisuju takto:
V menu mezi položkami mám „Diskusi“. Diskuse využivá VisualPaginator.
V Diskusi je možno reagovat na příspěvky, takže když chci na nějaký
reagovat, požaduji, abych se po zpracování formuláře vrátil zpět na
stránku, na které jsem na příspěvek reagoval. To lze, pokud v presenteru
definuji persistentni parametr @persistent paginator
:
V metodě, která zpracováná formulář, pak mohu díky persistentnímu parametru přesměrovat na původní stránku:
Bohužel to má pro mě i negatovní stránku. Číslo stránky z diskuse
se totiž prenese i do odkazu v menu. Výchozí položka (pro diskusi) v menu
generuje takovýto odkaz: http://domena.cz/discussion/
a takto by
to mělo zůstat. Protože jsem ale nastavil persistentní parametr, tak při
procházení stránek v diskusi se odkaz v menu mění (nežádoucí
vlastnost) podle právě zobrazené stránky např.:
http://domena.cz/discussion/?paginator-page=2
.
Aby odkaz v menu zůstal ve výchozím tvraru, tak bych definoval pro tuto
položku menu (např. „Discussion:“) parametr
"paginator-page" => 1
, kterým bych nastavil stránku, kerá se
má zobrazit jako výchozí.
Byl bych strašně rád, kdyby jste zkusili nastínit nebo ideálně napsat
konkrétní řešení.
Potřebuji tedy vytvořit menu, u kterého se budou zvýrazňovat aktivní
položky a také bude umožňovat nastavit nějaké parametry.
- Cifro
- Člen | 245
Navigation od Honzy vie
prijimať ďalšie parametre pomocou metódy add()
v druhom
parametri s metódou link()
kde $item->id
obsahuje id stránky a
$item->destination
cieľový presenter a akciu.
A problém, ktorý maš s vlastným definovaným menu, by som poriešil tak, žeby som urobil viacrozmerné pole, kde ďalší rozmer by boli parametre…
- Endrju
- Člen | 147
Díky za „nakopnutí“ :).
Trochu jsem si s tím pohrál a dosáhl toho čeho potřebuju.
Komponenta v presenteru pro vytvoření menu (nic jiného v komponentě Honzy Marka Navigation jsem neměnil):
Editoval Endrju (20. 6. 2010 0:57)