Vererbung der index.tpl in _emotion

Liebes Forum, :slight_smile: :slight_smile: kleine Frage zur Vererbung von Templates. In _emotion gibt es zum Beispiel die Template-Datei _emotion/frontend/index/header.tpl, die mit dem Eintrag {extends file=‘parent:frontend/index/header.tpl’} beginnt. Alles klar, damit werden die Blöcke vererbt. Aber in _emotion/frontend/index/index.tpl gibt es den entsprechenden Eintrag, der {extends file=‘parent:frontend/index/index.tpl’} lauten müsste nicht. Bedeutet das, dass das index.tpl komplett aus _emotion genommen wird und das _default/frontend/index/index.tpl gar nicht verwendet wird? Oder ist das sozusagen fest verdrahtet? Vliebe Grüße KErstin

Hallo, sobald das “extends file=…” gesetzt wurde, wird vom _default-Template abgeleitet. Wie du schon richtig vermutet hast wird beim Fehlen vom “extends file…” die komplette .tpl von _default überschrieben. MfG Zanktus

Vielen Dank für die Antwort. Allerdings wird die Datei _default/emotion/frontend/index/idex.tpl indirekt noch einmal über home/ verwendet. In der _emotion/frontend/home/index.tpl gibt es den Befehl {extends file='parent:frontend/home/index.tpl'} und in der _default/frontend/home/index.tpl wiederum {extends file='frontend/index/index.tpl'} Dadurch wird ja nur die _default/frontend/index/index.tpl eingebunden. Wie kommt denn dann die _emotion/frontend/index/index.tpl ins Spiel??? Oder wie kann ich das verstehen??? Ist echt kompliziert. Liebe Grüße Kerstin

Also, es gibt den Ordner “Home” und “Index”. Der Home-Ordner bezieht sich nur auf die Startseite, in der Regel steht da nicht viel drin. Während die der Index-Ordner alle Seiten zusammenfasst (Sprich ist das Grundgerüst der Website). Die _emotion/frontend/home/index.tpl leitet sich von der _default/frontend/home/index.tpl ab. Bedeutet hier hängt sich die Datei aus Emotion an die gleiche Datei aus Default Während sich die _default/frontend/home/index.tpl and die _default/frontend/index/index.tpl hängt. Das tut sie deswegen, damit die Startseite (Home) das Grundgerüst (Index) erweitert/ersetzt.

hmmm… eben hatten wir doch gesagt, dass wegen des fehlenden extends-Befehl in der _emotion/frontend/index/index.tpl die _default/frontend/index/index.tpl gar nicht zum Zuge kommt. In home/ wird sie dann aber trotzdem verwendet, ohne dass die _emotion/frontend/home/index.tpl irgendwie berücksichtigt wird. Aber sie muss ja irgendwie da mit reinspielen. Nur wie??? Liebe Grüße Kerstin

Ich habe mir die Dateien gerade nicht angeschaut, aber wenn in der _emotion/frontend/index/index.tpl kein Extend drinnen steht, dann wird _default/frontend/index/index.tpl komplett überschrieben, sprich das aus default wird nicht geladen. In home wird sie deswegen verwendet, weil wir hier mit Smarty ja eine Template-Basis haben. Bedeutet alle verschiedenen TPLs aus _default, _emotion oder deinem eigenen Template werden nach der Reihenfolge vererbt default -> emotion -> eigenes Template -> Plugins. Am Ende des Tages wird aus den ganzen Dateien ein einziges Template, welches wir im Frontend aufrufen. Wird also die _default/…/index.tpl von _emotion/…/index.tpl überschrieben, so wird auch alles andere nicht mehr von _default/…/index.tpl abgeleitet, sondern _emotion/…/index.tpl Schwer zu beschreiben…

Hallo, Danke, aber vielleicht frage ich noch einmal anders: Über die Datei _default/frontend/home/index.tpl wird per extends-Befehl auf die Datei _default/frontend/index/index.tpl zugegriffen und nicht auf die Datei _emotion/frontend/index/index.tpl. Es ändert sich allerdings überhaupt nichts, wenn man die Datei _default/frontend/index/index.tpl löscht obwohl ja sie auf zugegriffen wird. Wie kommt das?

Wenn du die [color=blue]_default/…/index/index.tpl[/color] löschst wird auch nichts passieren, da die [color=purple]_emotion/…/index/index.tpl[/color] ja noch da ist und dank der Vererbungsfunktion am Ende des Tages zur [color=blue]_default/…/index/index.tpl[/color] „wird“ (Ist edv-technisch nicht ganz korrekt, dient aber zum Verständnis) Die [color=green]_default/…/home/index.tpl[/color] leitet sich also am Ende von der [color=purple]_emotion/…/index/index.tpl[/color] ab anstatt von der [color=blue]_default/…/index/index.tpl[/color]

Wenn in einer Datei extends steht, heißt das also eigentlich nicht, dass die Datei vererbt werden soll, sondern im Grunde genommen das Gegenteil, dass die parents-Datei nicht überschrieben werden soll. Mit Ausnahme der Blöcke, die in der Datei stehen. Die sollen doch überschrieben werden. Kann man das so sagen?

Mit extend -erweiterst- du Templates - ohne ein extend -überschreibst- du sie. Viele Grüße

[quote=„Kerstin83“]Wenn in einer Datei extends steht, heißt das also eigentlich nicht, dass die Datei vererbt werden soll, sondern im Grunde genommen das Gegenteil, dass die parents-Datei nicht überschrieben werden soll. Mit Ausnahme der Blöcke, die in der Datei stehen. Die sollen doch überschrieben werden. Kann man das so sagen?[/quote] Ja das kann man so sagen, Extend heißt ja übersetzt erweitern, wenn du das extend in die .tpl schreibst kannst du dadurch Blöcke überschreiben/erweitern (anstatt die ganze .tpl überschreiben zu müssen) Eigentlich musst du nur selten ohne extend arbeiten, das kommt nur dann vor, wenn du wirklich alles überschreiben musst, oder kein einziger Block definiert wurde. MfG Zanktus

ah, verstehe jetzt. Und shopware stellt sicher, dass zuerst überschrieben wird und nicht etwa erst die home/index.tpl nachschaut… Vielen, vielen Dank :thumbup:, hat ein bisschen gedauert, aber jetzt ist es aber klar. Hoffe ich zumindest. @ Aquatuning GmbH bedeuten die Logos in deiner Signatur, dass du die entsprechenden Seminare besucht hast? Wie sind denn die Seminare so? Ich spiele ja auch mit dem Gedanken eins zu machen. Würde sich aber nur lohnen, wenn sie wirklich ins Eingemachte gehen.

Ja, diese “Zertifizierungen” erhältst du nach einer (kurzen) Prüfung am Ende der Seminare. Da ich bereits heute die gleiche Frage an anderer Stelle gestellt bekommen habe, zitiere ich mich einfach mal selber: [quote] Ich war sowohl bei der Entwickler Schulung, als auch im Template Workshop - und kann eigentlich beides empfehlen. Du solltest dich in jedem Fall aber bereits mit Shopware auseinander gesetzt haben und dir grundlegendes Wissen über die Shopware und Template Architektur aneignen. Die Tutorials im wiki sind dafür bestens geeignet. Du findest übrigens auch alle Inhalte dieser Schulungen im wiki - da kannst du dir mal anschauen, was so auf dich zukommt. Besonders schön bei den Schulungen: du kannst über den Tellerrand hinausschauen, jede Menge Fragen stellen und bekommst einige Tipps mit auf den Weg. [/quote] Viele Grüße

Habe da auch noch mal ne Frage dazu: Wenn ich ein meinem Template eine Datei ableiten möchte benutzte ich extend: {extends file="…/_emotion/frontend/index/blblablub.tpl"}. Kann ich jetzt einfach immer vom Emotion Template ableiten auch wenn es die Datei im Emotion Template noch vorhanden ist sondern nur im Default? Oder muss ich wenn die Datei nicht vorhanden ist {extends file=“parent:frontend/index/blablablub.tpl”} und direkt im Default ableiten?

[quote]Da ich bereits heute die gleiche Frage an anderer Stelle gestellt bekommen habe, zitiere ich mich einfach mal selber:[/quote] rat mal, wer dir die gleiche Frage gestellt hat :slight_smile: Danke noch einmal. Liebe Grüße Kerstin