Filtry rout podle aktuální action a jazyka

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
jann
Člen | 30
+
0
-

Zdravím, mám následující routu a potřeboval bych vědět, jakým způsobem do těch callbacků FILTER_IN a FILTER_OUT přidám informaci o aktuálním jazyce (lang). Také bych v těch funkcích potřeboval aktuální action, jelikož ty filtry se budou aplikovat jen na 2 akce. Jaký je nejvhodnější způsob řešení?

<?php
$router[] = new Route('cs/<presenter #cs-presenter>/<action>/<id>',array(
        'module' => 'Front',
        'lang' => 'cs',
        'presenter' => 'Homepage',
        'action' => 'default',
        'id' => array(
                Route::VALUE => 0, // default value
                Route::FILTER_IN => callback('LibraryModel::getIdByUrl'),
                Route::FILTER_OUT => callback('LibraryModel::getUrlById'),
        ),
));
?>

Taky mám problém s voláním toho callbacku. Třída LibraryModel je v modulu FrontModule a pokud mám na začátku třídy namespace FrontModule; (jako u všech tříd daného modulu), tak callback nelze zavolat:

InvalidStateException
Callback 'LibraryModel::getUrlById' is not callable.

Díky za jakékoliv rady…

Aurielle
Člen | 1281
+
0
-

callback('FrontModule\LibraryModel::getIdByUrl')

Martin
Člen | 171
+
0
-

gmvasek: Dík, taky jsem to teď řešil (stejná chyba, ale u extensionMethod). Vlastně je to logické, ale drobné nakopnutí začátečníkovi pomůže.