Nette 2.2.2: Registrace vlastního parseru šablon

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

Ahoj,

potřebuji registrovat vlastní parser, kterým se zpracuje obsah každé šablony před tím, než bude zpracován pomocí Latte. Dosud jsem to dělal přepsáním metody templatePrepareFilters() a následně pomocí $template->registerFilter(), což v Nette 2.2.1 nefunguje.

Nyní mám následující řešení:

<?php
// v BasePresenteru
protected function createTemplate()
{
	$template = parent::createTemplate();
	$template->getLatte()->setLoader(new \Xml\XmlLoader($this));
	return $template;
}

// vlastní loader
namespace Xml;
class XmlLoader extends \Nette\Bridges\ApplicationLatte\Loader
{
	public function getContent($file)
	{
		$content = parent::getContent($file);
		\Xml\Engine::invoke($content);
		return $content;
    }
}
?>

Při debugování se metoda createTemplate() provede, ale metoda getContent() ne. Co dělám špatně? Co mi uniká? :)

Předem díky za pomoc.

PS: Už se to řešilo zde. Odtud mám uvedené řešení.