Page not found. Missing template
- ArcusCox
- Člen | 1
Rad bych vedel, zda se da nejak osetrit chybejici sablona. V nekterych akci presenteru je kod natolik trivialni, ze se pro nej nevyplaci neustale vytvaret prazdou sablonu. Da se to nejak premostit? v nekterych frameworcich se pouziva napr.
public function viewAction() {
echo "obsah z presenteru misto obsahu z sablony 'Presenter.Action.latte'";
}
kdy nemusim zakladat latte nebo phtml sablonu a kod do pripadneho layoutu vypisu primo z presenteru?
- Michal Vyšinský
- Člen | 608
Osobně bych to řešil tak, že bych si vytvořil univerzální latte soubor (třeba blank.latte) a v render metodách, pro které nechceš/nepotřebuješ šablonu nastavit tuto šablonu. V šabloně bys mohl mít výpis proměnné třeba $content a v oné render metodě by sis ji naplnil čímkoliv chceš. V praxi by to mohlo vypadat asi takto:
blank.latte:
{block #content}
{!$content} {* neescapovat kvůli možnému HTML obsahu (ale záleží na tobě *}
presenter:
public function renderPage() {
$this->template->setFile("CESTA K blank.latte");
$this->template->content = "JAKYKOLIV TVŮJ OBSAH";
}
Editoval CherryBoss (6. 2. 2013 21:42)
- kubajz
- Člen | 47
Pokud to opravdu potřebuješ, tak prostě ukonči běh skriptu:
public function actionNeco() {
echo 'Vypiš pouze tento text';
die();
}
Anebo takto:
public function actionNeco() {
$this->sendResponse(new Nette\Application\Responses\TextResponse('Pošli tento textový výstup, nic víc.'));
}