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
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í.