společná šablona pro různé presentery ale stejné akce

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

Potřeboval bych poradit jak volat stejnou šablonu z více presenterů – mám akce pojmenované setStatusOn a setStatusOff.
Ty jsou obsaženy ve více presenterech (administrace). Při jejich provedení pouze změním status v databázi + následuje flash message a redirect.

Chtěl bych mít jednu šablonu např. status.latte a tu používat z více presenterů pro tyto akce.
Nebo vlastně nepotřebuji šablonu žádnou a pouze potřebuji Nette donutit, aby žádnou šablonu pro tyto akce nechtěl.

Zkoušel jsem ve startupu

$this->setLayout('../Common/status.latte');

což mi nezafungovalo – čekal jsem, že se to přesměruje pro všechny akce aktuálního presenteru, ale nic.

Nebo jsem našel, že můžu přepsat formatTemplateFiles() – nechce se mi ale přepisovat standard, nejde to nějak jednodušeji?

Díky.

Filip111
Člen | 244
+
0
-

Hned si odpovím…SetLayout je blbost,

$this->setView('../Common/status');

Tohle už funguje…zkusím si odchytit název akce a pokud bude StatusOn nebo StatusOff, přesměruji to na mojí šablonu v předkovi admin presenterů.

Oprava: funguje tak, že zavolá jinou akci, ale to já nechci – potřebuji jen zavolat jinou šablonu, takže stále ještě nefunguje.

Editoval Filip111 (15. 9. 2011 13:15)

Filip111
Člen | 244
+
0
-

Nekamenovat prosím..a ať někdo zodpovědný klidně celý topic smaže.
Pomohlo mi
https://doc.nette.org/…n/presenters#…

A výsledný kód po chvilce přemejšlení:

public function actionStatusOn($id) {
		$detail = $this->model->setStatus($id, 1);
		$this->flashMessage('Status byl změněn.');
		$this->redirect('default');
}