ErrorPresenter – původní request, který způsobil chybu

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

Chtěl bych zobrazit chybové hlášky v layoutu daného modulu, ale při chybě v jiném než výchozím, nemohu získat název presenteru, ve kterém vznikla chyba (a z něj následně název modulu), protože

$this->getRequest()->getParameters()['request'];

je null. Ve výchozím modulu je předchozí request přístupný.

Idea je taková, že ErrorPresenter jednotný pro všechny moduly dostane do šablony cestu k layoutu a tu v makru nastaví. Pro mé potřeby je zbytečné mít různé ErrorPresentery pro různé moduly – a i kdybych to chtěl, tak dosáhnout toho (podle starších dotazů tady na fóru) je otázka stejného problému, jako řeším já.

UPDATE
Tohle mi funguje (context neřešte, dělal jsem to v rychlosti).

$request = $this->context->getService('application')->getRouter()->match($this->getHttpRequest());
list($module) = explode(':', $request->getPresenterName());

Ne vždy se ale nějaká routa namatchuje, takže je potřeba obsah proměnné $request zkontrolovat a případně mít nějaký fallback.

Editoval sKopheK (23. 4. 2014 11:05)