Registrace Helperů a proměnných jak pro Presenter, tak pro Control
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- knyttl
- Člen | 196
Ahoj,
nelíbí se mi fakt, že v BaseControl a BasePresenter definuji duplicitně helpery a proměnné, které používám v poděděných třídách.
Jakože třeba:
<?php
$this->lang = Environment::getVariable('lang');
$this->template->registerHelper('json', 'json_encode');
$this->template->registerHelper('date', 'Helpers::date');
$this->translator = new Trslt();
$this->template->setTranslator( $this->translator );
$this->user = Environment::getUser();
?>
bych rád, kdyby se nastavilo pro oba.
Díky.
- Majkl578
- Moderator | 1364
Můžeš si na to udělat helper ve třetí třídě a ten z obou míst
volat s argumentem $template
.
Metoda stejná pro výchozí control i presenter:
protected function createTemplate()
{
$template = parent::createTemplate();
//...
\Helpers\Template::addCustomHelpers($template);
//...
return $template;
}
Helper:
namespace Helpers;
class Template
{
public static function addCustomHelpers(\Nette\Templates\ITemplate $template)
{
$this->template->registerHelper('json', 'json_encode');
$this->template->registerHelper('date', 'Helpers::date');
//...
}
}