Automaticke dedeni sablon

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

Prosim o radu, jak nastavit sablone (konkretne sablone controlu), aby byla zdedena od jine, aniz bych musel predka nastavovat pres makro {extends ...}? Zkousel jsem nastavit $template->_extends (coz jsem tak trochu vycetl ze zdrojaku, ale nejsem si tim moc jisty;-)), ale funguje to velmi podivne…

Jan Tvrdík
Nette guru | 2595
+
0
-

Co znamená „funguje to velmi podivně“?

bojovyletoun
Člen | 667
+
0
-

střelím odslepa neměl bys kromě _extends použít i layout

arron
Člen | 464
+
0
-

bojovyletoun napsal(a):

To jsem taky zkousel, vysledek je stejny:-)

Jan Tvrdík napsal(a):

Nechtel jsem to tu rozebirat hned na zacatku pro pripad, ze nekdo prijde s tim, ze o delam blbe a ze se to dela jinak, protoze to chovani povazuju zatim spise za bug.

Mam sablonu:

<div class="control" id="{$control->name}">
    {include #controlContent}
</div>

V createTemplate v BaseControlu nastavim $template->_extends na prislusnou sablonu. Ocekavane chovani je, ze kdyz v nejakem zdedenem controlu do sablony nevlozim blok #controlContent, tak to vychodi vyjimku, ze dany blok neexistuje. Chovani je ale takove, ze pokud blok #controlContent neuvedu, tak vubec nedojde ke zdedeni sablony vyse (overeno z prelozene sablony do php). Pokud blok uvedu, tak ke zdedeni normalne dojde a obsah controlu je uzavren v prislusnem divu.

Kdyz jsem nad tim tak premylel, tak by to mozna stalo za nejaky feature request, aby v sablone na to byla nejaka hezka metoda:-)

Jan Tvrdík
Nette guru | 2595
+
0
-

To bude předpokládám vlastnost kvůli zpětné kompatibilitě.

arron
Člen | 464
+
0
-

Je to dost WTF…navic to takhle moc neplni ucel…