Zvláštní 404 pro moduly
- grogy
- Člen | 147
Lze udělat pro každý modul jinou stránku s 404 (popř. 500)? Zkusil jsem do modulu hodit ErrorPresenter s templatkama, ale nechce se Nette brát tyto nové soubory v potaz. Musí se něco nastavit?
Nette 0.9.2 stable, $application->errorPresenter = ‚Error‘ v bootstrapu samozřejmě nastaven
- Michalek
- Člen | 212
Taky si nejsem jistý, ale pokud se přímo v modulu přepíše
ErrorPresenter pomocí
$application->errorPresenter = 'Admin:Error';
tak se ErrorPresenter teoreticky hledá v adresáři s modulem, pokud to
pomůže.
- grogy
- Člen | 147
$application->errorPresenter = 'Error';
Je veřejnou proměnnou, tam jen ukládáš kde ten presenter Nette má hledat.
Tzn. pokud nebudu mít v app složce složku (presenters – kde mám uložná BasePresenter a BaseAdminPresenter a pak template kde budou phtml šablony) tak to tak nastavím, aby se vůbec error zprávy zobrazily. Ovšem pro každý jiný modul toto řešení nepůjde.
- David Grudl
- Nette Core | 8254
grogy napsal(a):
Lze udělat pro každý modul jinou stránku s 404 (popř. 500)? Zkusil jsem do modulu hodit ErrorPresenter s templatkama, ale nechce se Nette brát tyto nové soubory v potaz. Musí se něco nastavit?
Nejsnadněji asi tak, že (base) presenter každého modulu si ve startup()
nastaví $this->getApplication()->errorPresenter = '...'
.
- Savannah
- Člen | 30
chtěl bych se ještě zeptat, jak správně na jména toho errorPresenteru. Mám:
app/AdminModule/presenters/ErrorPresenter.php:
a v Admin_BasePresenteru ve startupu nastavím
ale když v nějakém potomku Admin_BasePresenteru vyhodím jakoukoli výjimku, tak dostanu internal server error.
S tim, že ta default akce errorPresenteru se ani nevykoná, když tam dám die(..), tak to neudělá rozdíl.