FileTemplate: nastavení rodičovské šablony

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

Zdarec.

Řekněme, že se nacházím v nějakém presenteru ve funkci createTemplate().

protected function createTemplate($class = NULL)
{
	$template = parent::createTemplate($class);
	return $template;
}

Mám tedy instanci FileTemplate v $template. Nyní bych chtěl na tomto místě nastavit šabloně layout, tzn. šablonu, ze které bude tato právě vytvořená šablona dědit. Jde to nějak přímo?

Zatím to řeším takto:

protected function createTemplate($class = NULL)
{
	$template = parent::createTemplate($class);
	$template->extends = $this->formatTemplateParent(); // moje funkce, která vrátí cestu k latte souboru
	return $template;
}

A v šabloně pak:

{extends $extends}

{block content}
...

Funkci formatLayoutTemplateFiles() nebo případné nastavení layoutu Presenteru k tomu, co chci udělat, využít nemůžu, protože tam už je opravdu nastavení layoutu stránky. A já chci jen říct právě vytvářené šabloně např. „poděď výchozí šablonu akce“, nikoliv použít jiný layout celé stránky.

S tímto problémem se pojí další drobnost, která už mne ale tolik nepálí, nicméně, kdyby měl někdo její řešení, nezlobil bych se :-) Jde o to, že když už se mi podaří nastavit extends v mé šabloně, sice podědím výchozí šablonu akce, ale tím pádem už se nepoužije žádný layout. Tzn. musím na začátek výchozí šablony uvést {extends auto}, aby se layout použil. Nejde i tohle nějak někde nastavit?

Z kódu, příslušných tříd, na který jsem se díval, jsem měl pocit, že zamýšlené chování udělat nepůjde. Budu ale velmi rád, když mne někdo vyvede z omylu :-)

Jen pro pořádek: používám master větev Nette z Githubu.