Volání signálu – více modulů
- aGr
- Člen | 45
VYŘEŠENO
Mám (pro testovací účely) v @layout:
<a n:href="Sig! 5">Kosik</a>
v HomepagePresenteru (který je v namespace FrontModule) mám funkci
handeSig($id). Po kliknutí na link, ale Laděnka:
Cannot load presenter 'Front:Front:Homepage
. Proč proboha tam je
to dvojité Front? Je mi jasné, že zde je kámen úrazu. Normální
„Homepage:“ funguje v pořádku! I odkaz na signál je znetvořený –
.../front.homepage/default/5?do=Sig
. Špatně signál volám?
Přeci se volá na současný presenter, takže není třeba upřesňovat místo
(resp. ani nevím jak).
Díky moc za radu, už mě to otravuje pár dnů :).
Editoval aGr (24. 2. 2012 16:38)
- Jan Tvrdík
- Nette guru | 2595
Signály se normálně píší malými písmeny (sig!
), ale to
by na to snad nemělo mít vliv.
- aGr
- Člen | 45
Ot@s napsal(a):
Vypadá to divně… Vyzkoušej onen signál v sandboxu (nebo v examples s moduly).
Jak máš napsané routy aplikace?
V sandboxu funguje. Routy jsem měl takto:
$router[] = new Route('index.php', 'Front:Homepage:default', Route::ONE_WAY); //homepage
$router[] = $adminRouter = new RouteList('Admin');
$adminRouter[] = new Route('admin/<presenter>/<action>', 'Homepage:default');
$router[] = $frontRouter = new RouteList('Front');
$frontRouter[] = new Route('<presenter>/<action>/<name>', array(
'presenter' => array(
Route::VALUE => 'Homepage',
Route::FILTER_TABLE => array(
'produkt' => 'Product',
...preklady dalsich presenteru
),
),
'action' => 'default',
'id' => NULL,
));
$router[] = new Route('<presenter>/<action>[/<id>]', 'Front:Homepage:default'); //zbytek
Teď koukám, že ta poslední je nějaká zbytečná. Zkusil jsem tedy routy upravit takto:
$router[] = new Route('index.php', 'Front:Homepage:default', Route::ONE_WAY); //index.php
$router[] = new Route('', 'Front:Homepage:default'); //homepage
$router[] = $adminRouter = new RouteList('Admin');
$adminRouter[] = new Route('admin/<presenter>/<action>', 'Homepage:default');
$router[] = $frontRouter = new RouteList('Front');
$frontRouter[] = ...
a signál funguje! Jsem to ale blb, měl jsem koukat do routeru rovnou. Je takhle ta druhá routa pro Homepage v pořádku?
EDIT: není to v pořádku. Signál funguje jen na homepage. Jakmile to přesunu do BasePresenteru, který všechny ostatní dědí, dostávám v jiných presenterech stejné chyby. Jdu si přečíst info o routách, neboť tomu evidentně nerozumím..
Editoval aGr (24. 2. 2012 16:20)