HTML kod šablony po vyrenderování
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- jansfabik
- Člen | 193
aha, zjistil jsem, že to nefunguje
jde to řešit třeba takto (ale je to hodně velká prasárna):
protected function beforeRender()
{
...
ob_start(callback($this, 'saveOutput'));
register_shutdown_function(callback($this, 'processOutput'));
}
private $output;
public function saveOutput($output)
{
return $this->output = $output;
}
public function processOutput()
{
ob_end_flush();
$html = $this->output;
...
}
- Mikulas Dite
- Člen | 756
Můžeš použít i třeba
protected function afterRender()
{
ob_start();
$this->template->render();
$templateContent = ob_end_flush();
}
použít to jde i v ostatních metodách, akorát pozor, jestli už je template naplněná daty (proto je to lepší v afterRender).
Edit: pokud výstup nechceš, použí to v beforeRender a poté
$this->terminate()
.
Editoval Mikulas Dite (21. 11. 2010 15:46)