[Template]  – Automatické renderování šablon

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

Zdravím,

chtěl bych se zeptat, jestli jde nějak v nastavení vypnout automatické volání $template->render() v presenteru. Potřebuji udělat render manuálně v závislosti na předchozí akci, která mi vrátí dynamicky jinou šablonu a jiná data. Vím, že to jde udělat přes $this->template->setFile(), ale zase kvůli debugu a dalším věcem kvůli kterým mi defaultní auto render vadí.

Předem díky za odpověď a prosím o schovívavost. s nette začínám, zatím jsem dělal pořád v zendu a tam to šlo jednoduše. :-)

Panda
Člen | 569
+
0
-
public function renderSomething()
{
	//...

	$this->terminate(new RenderResponse($myTemplate));
}

Pozor, po volání terminate() dojde k vyhození výjimky a kód za ním se nevykoná! Pokud to uvedeš na konci metody render, tak přijdeš o volání afterRender() a ukládání globálního stavu komponent. Pokud by to bylo nežádoucí, tak můžeš překrýt metodu sendTemplate() a potřebnou logiku implementovat tam.

Editoval Panda (21. 8. 2010 10:22)

kesav
Člen | 5
+
0
-

Tak toto se mi zrovna nehodí, v tom případě bych to měl jako návrh na novou featuru k template.

Např v zendu je to:

<?php
$this->view->setNoRender(TRUE);
?>

kdyby se toho nějaký vývojář chytl :-)

Editoval kesav (21. 8. 2010 12:13)