Získání aktuální routy pro identifikaci
- akadlec
- Člen | 1326
Řeším teď tvorbu extension pro menu protože ty stávající tři či kolik jich je co jsou v addons mě moc nevyhovují ;)
Aktuálně dělám filtr pro určení která položka je aktivní a která ne a narazil jsem na rozhodnutí zda to určovat tak že:
- Vezme se routa která je definována pro položku, vygeneruje se url a optá se presenteru zda je vygenerovaný link aktuální
- Vezme se routa která je definována položkou a pomocí reguláru se porovná s routou aktuálního requestu
Co je výhodnější? Ve skutečnosti se nepoužije pro určení routa položky ale je tam ještě další hodnota pro tento případ, aby bylo možné udělat aktivní menu napříč vícero akcemi atd.
Teď to ve filtru řeším jako v 1, ale mě osobně připadá lepší to řešit jako v 2 ale to bych se musel dostat buď k routě a nebo vygenerované url aktuálního requestu.
PS: doufám že se neobjevím na Filipově twitteru jako debilní dotaz ;)
Editoval akadlec (27. 8. 2014 9:48)
- David Matějka
- Moderator | 6445
na routy se vykasli. Porovnavej aplikacni requesty. K tomu slouzi prave to
makro ifCurrent, resp.
metoda isLinkCurrent
- akadlec
- Člen | 1326
@petr.jirous tak makro určitě nepotřebuju, to se jaksi nehodí použít ve službě, objektu.
@matej21 mno isLinkCurrent se dá, ale tady zas narážím na problém v tom že pokud chci položku povolit aktivní pro více variant, budu muset takto zkontrolovat více hodnot což se mi moc nelíbí.
- David Matějka
- Moderator | 6445
@akadlec no to budes muset resit i jinde ne? navic u isLinkCurrent
neni presna kontrola, ale pouze kontrola proti predanym parametrum. a akci
nemusis specifikovat, staci Presenter:*
(nebo tak nejak)
- akadlec
- Člen | 1326
Takhle, chtěl bych abych mohl např. pomocí jednoho reguláru udělat kontrolu zda je to povolené nebo ne.
Takhle by to šlo kdybych porovnával adresu requestu:
#^system/(system|settings|dashboard).*$#
ale asi by bylo více vhodné aby to porovnalo pomocí routy třeba nějak takto:
#^System:Admin:(Default|Settings|Dashboard).*$#
a do preg_match bych předal aktuální routu co se načetla. Jednoduše nechtěl bych mít v té definici nějaké pole pokud bych chtěl přesně vyjmenovat pro které routy by to mělo platit.
Nebo jdu špatným směrem?