isLinkCurrent se seznamem možných akcí?
- Marek Šneberger
- Člen | 130
Ahoj, potřeboval bych v isLinkCurrent() vypsat možné akce.
Představoval bych si něco jako
$this->presenter->isLinkCurrent('Presenter:action1|action2|actionN', array($id));
Ve všech akcích pracuji se stejným $id, jde mi jen o rozlišení
akcí.
Jediný co mě napadá, je vypsat si to postupně.. To znamená
$this->presenter->isLinkCurrent('Presenter:action1', array($id));
$this->presenter->isLinkCurrent('Presenter:action2', array($id));
Ale toje hodně nepraktický vzhledem k počtu akcí.
Ve všech akcích pracuji se stejným $id, jde mi jen o rozlišení akcí.
Nevíte o nějakém jednodušším řešení? Díky
- enumag
- Člen | 2118
Routa je velmi primitivní, tam by nic vadit nemělo:
$container = $configurator->createContainer();
// Check SSL for Admin
$secured = (function_exists('apache_get_modules') && in_array('mod_ssl', apache_get_modules())) ? Route::SECURED : 0;
$container->router[] = $adminRouter = new RouteList('Admin');
$adminRouter[] = new Route('admin', 'Homepage:default');
$adminRouter[] = new Route('admin/<presenter>/<action>[/<entity>]', 'Homepage:default', $secured);
EDIT: Co používáš za verzi Nette? Já používám master z githubu, navíc s vlastními úpravami (které ale s tímto naprosto nesouvisí).
EDIT2: Nefunguje mi to ani na front modulu.
Editoval enumag (11. 10. 2012 9:57)
- enumag
- Člen | 2118
Tomu sandboxu jsem se chtěl právě vyhnout. :-)
No každopádně jsem to na tom sandboxu vyzkoušel a funguje to. A už jsem i zjistil proč:
Metoda isLinkCurrent volá metodu link, která vrací URL adresu.
V případě hvězdičky tvorba odkazu samozřejmě selže, což ale ničemu
nevadí, protože URL není potřeba. Problém nastane v případě použití
$presenter->invalidLinkMode = $presenter::INVALID_LINK_EXCEPTION;
,
což je můj případ. V tomto případě totiž neúspěšné vytvoření URL
způsobí vyhození výjimky.