společná šablona pro různé presentery ale stejné akce
- Filip111
- Člen | 244
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
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
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');
}