Unterschied extends files mit oder ohne parent

Hallo, ich bin beim ändern der Dokumenten-Templates. Dazu habe ich in meinem Theme Dateien mit den gewünschten Änderungen angelegt.
Komischerweise funktioniert es manchmanl mit “parent:” und manchmal ohne “parent:” Was ist denn da eingentlich der Unterschied.

eine Änderung funktioniert nur mit {extends file=“parent:index.tpl”}

bei einer anderen Änderungen muss ich das parent aber weglassen {extends file=“index_gs.tpl”}

Kann das sein ?

 

 

Ohne Parent ersetzt Du die komplette Datei. Mit Parent kannst Du einzelne Blöcke ersetzen. LG

1 „Gefällt mir“

Stell dir vor du hast folgende Template Ordner

  • DeinTheme
  • Responsive
  • Bare

Smarty lädt nun die Datei index.tpl, dabei fängt er von oben bis da unten an die Datei zu suchen. Um etwas in Shopware zu erweitern / ersetzen legt man immer in seinem Template Ordner die Datei ab. Da unser Ordner früher als das Orginal ist, wird unsers natürlich genommen.

Wenn wir jetzt jedoch in unserer index.tpl, teile aus der Orginal index.tpl haben möchten, extenden wir davon normalerweise mit {extends file=„index.tpl“}.

Smarty geht nun dahin und sucht die index.tpl von oben nach unten. Findet unsere index.tpl wo wir extends auf die index.tpl machen und sucht diese, findet unsere darin ist extends auf index.tpl usw. Wir haben eine Rekrusion, die nie endet.

Für genau diesen Zweck gibt es den Tag parent. Hierbei wird die Ebene von unseren Template übersprungen. Anstatt das Smarty unsere index.tpl extended, sucht er im nächsten Ordner. Tadaa wir haben erfolgreich die Rekrussion (Immer sich selbst aufrufend) übersprungen.

Wann sollte man also parent nutzen?

Beispiele

Szenario 1: Wenn du eine Datei erweiterst und vorhandene Sachen beibehalten möchtest und deshalb von dir selbst mit parent extendest.

Szenario 2: Wenn du z.B eine Produkt-Box erweitert hast in deinem Theme, jetzt nun eigene neue hinzufügst und davon extendest. Hier würdest du deine Anpassungen mitdrin haben, die du ebenfalls im Theme getan hast. Hier ist parent extrem nützlich da du deine Schicht überspringst und die Orginal Datei bekommst zum erweitern :slight_smile:

Ich hoffe ich konnte es gut erklären  Blush