Nastavení @layout.latte ve třídě komponenty

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

Je možné nastavit layout pro renderovanou šablonu přímo ve třídě komponenty a nemuset pak definovat v latte šabloně {extends '@layout.latte'} ?

Jde mi zkrátka o možnost přesunutí logiky nastavení layoutu šablony do metody, která se stará o její vyrenderování. V presenteru to není problém, u komponenty bych chtěl docílit toho samého.

Díky

David Matějka
Moderator | 6445
+
+2
-

ahoj, melo by jit neco jako

$this->template->getLatte()->addProvider('coreParentFinder', function () {
	return 'foo.latte';
});
mrfazolka
Člen | 24
+
0
-

DÍKY!!!!!!

od nette 2.4 to vypadá, že je to trošku jinak, každopádně po rychlém pogooglení mi funguje:

$this->template->getLatte()->addProvider('coreParentFinder', function ($template) {
if (!$template->getReferenceType()) { // is not referenced, i.e. not included, is not layout itself, …
    return '@layout.latte';
}