ErrorPresenter a BasePresenter – neznámá šablona při erroru

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

Ahoj,

chtěl jsem si nastylovat error stránky a zjistil jsem, že pokud
si vygeneruji error v BasePresenteru, tak nejsem schopen najít šablonu, která vykresluje error stránku.

V templates/error jsem si přepsal obsah stránek na vlastní a pokud vygeneruji chybu v kódu jinde než v BasePresenteru, tak se zobrazí mé error stránky. Vygeneruji však chybu v BasePresenteru, tak se objeví původní 500 error před přepsáním. (když jsme to zkoušeli na jiném PC, tak se dokonce místo error stránky objevila při chybě v BasePresenteru laděnka).

Nějaké řešení pro to?

Díky.

David Matějka
Moderator | 6445
+
0
-

Error presenter nastav v configu

tttpapi
Člen | 100
+
0
-

To nastavené samozřejmě mám.
Nicméně to nevysvětluje toto odlišné chování a navíc, že to načítá buď již neexistující šablonu nebo dokonce otevře laděnku, i když je nastaveno setDebugMode(FALSE).

Azathoth
Člen | 495
+
0
-

no, možná je to proto, že error presenter dědí z base presenteru, a když vyvoláš výjimku v base presenteru, tak se to možná k tomu error presenteru nedostane.
Já to vyřešil tak, že jsem si udělal baseNonErrorPresenter, ze kterého dědí všechny kromě errorPresenteru a pomohlo to. Výjimku tak nevyhazuji v basePresenteru, ale v baseNonErrorPresenteru.

Šaman
Člen | 2666
+
0
-

ErrorPresenter, stejně jako cokoliv od čeho dědí, nesmí už obsahovat chyby! Je to dost problém, když vyhodí chybu nástroj pro hlášení chyb :)

Ideálně nedědit, ale když, tak v BasePresenteru nemít žádnou vyšší logiku, tedy potencionalní zdroj chyb.

Azathoth
Člen | 495
+
0
-

Já třeba z basePresenteru dědím kvůli překládání. Ale jinak nic nedělá.