ich bereite das Update auf 5.3 vor. In diesem Zuge habe ich hier im Forum davon gelesen, das {extends file="parent:…} durch {$smarty.block.parent} ersetzt werden soll/muss. Ist das richtigt und wenn ja, wie muss das genaz dann aussehen? Ein Beispiel wäre nett.
Nein das extend eines TPL bleibt bestehen natürlich.
Was man nicht mehr nutzen sollte ist prepend/append in einem Block, sondern eben smartyblockparent in seinem TPL verwenden, vor oder nach dem eigenen Content.
Append heißt im Prinzip, dass du deinen Inhalt anhängst, Prepend, dass du ihn vorher einfügst.
Hier mal ein Beispiel für Append :
Originaldatei:
Datei: irgendwas/index.tpl
{block ...}
Das ist der Originalinhalt
{/block}
Abgeleitete Datei:
{extends file="parent:irgendwas/index.tpl append}
{block ...}
Das ist das angefügte
{/block}
ändern in
{extends file="parent:irgendwas/index.tpl}
{block ...}
{$smarty.block.parent}
Das ist das angefügte
{/block}
Ergebnis wäre dann:
Das ist der Originalinhalt
Das ist das angefügte
Bei Prepend wäre es dann genau andersrum:
{extends file="parent:irgendwas/index.tpl prepend}
{block ...}
Das ist das angefügte
{/block}
ändern in
{extends file="parent:irgendwas/index.tpl}
{block ...}
Das ist das angefügte
{$smarty.block.parent}
{/block}
Ergebnis wäre dann:
Das ist das angefügte
Das ist der Originalinhalt
Du löst also das Append/Prepend durch {$smarty.block.parent} ab. Die Variable enthält also die Informationen aus der Originaldatei - du entscheidest über diese Variable wo genau der Inhalt ausgegeben werden soll - also ob du etwas davor oder danach einfügen willst. Man sollte {$smarty.block.parent} nutzen, da es bei Mehrfachvererbungen sonst Probleme geben kann.