Předání parametru z presenteru do control
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- 2bfree
- Člen | 248
V bootstrap nastavím routování tak, aby z url bralo jazyk a předalo ho presenteru do proměnné lang.
V basePresenteru inicializuji vlastní translator, který si zjistí předanou proměnou.
Když potom v šabloně presenteru zkusím získat patřičný kus textu, tak vše krásně funguje.
Když se ovšem pokusím získat patřičný kus textu ve snippetu, tak mi to vrátí, že volám neexistující funkci translate. Našel jsem, že je potřeba inicializovat translator i v baseControl. Když tak učiním, vše krásně funguje.
Teď k dotazu: Jak předat do baseControl hodnotu proměnné $Lang z basePresenteru?
- Aurielle
- Člen | 1281
Presenter:
/** @persistent */
public $lang = 'cs';
protected function startup()
{
Environment::getService('Nette\ITranslator')->lang = $this->lang;
}
// Registrace v Controlu stejným způsobem
protected function createTemplate()
{
$template = parent::createTemplate();
$template->setTranslator(Environment::getService('Nette\ITranslator'));
return $template;
}
Editoval gmvasek (2. 12. 2010 15:26)