Moin! Ich habe hier ein gekauftes Template, das ein wenig verändert werden soll. Also würde ich gerne mein eigenes Subtemplate erstellen, das von dem gekauften Template erbt. Wie geht das? Gruß Jost
Hallo Jost, einfach die eigenen Änderungen in die Templates _local oder _emotion_local packen. Gruß Marco
Das hab ich schon probiert, das hat keine Auswirkungen. Konkret habe ich in die /templates/_emotion_local/frontend/index/index.tpl folgendes reingetan:
{extends file='parent:frontend/index/index.tpl'}
{block name="frontend_index_shopware_footer"}
TEST!!!!
{/block}
Als Template habe ich im Backend das gekaufte Template ausgewählt. Könnte das daran liegen, dass die Vererbungsreichenfolge für ein emotion-Template laut Wiki diese ist:
- _default
- _emotion
- _emotion_local
- Gewähltes Template
Ich verstehe das so, dass ein Block des gewählten Templates einen Block aus _emotion_local überschreibt, wenn beide diesen enthalten. Ist das so?
Gruß Jost
Beim Conexco Template habe ich z.B. die Änderungen in _local gemacht. Im Backend habe ich einfach das Emotion_Orange gelassen.
@mac: Hab ich auch schon probiert (tatsächlich hab ich alles sowohl in _emotion_local als auch in _local ausprobiert), es ändert sich nix. Es gibt übrigens auch keinerlei Auswirkungen, wenn ich die Dateien des gekauften Templates nach /template/emotion_name/ kopiere, dieses Template dann auswähle, und die obige Datei ein _emotion_local oder _local einfüge. Wenn ich das kopierte Template modifiziere, kommt die Änderung aber an.
EDIT: Wenn ich emotion_orange als Template auswähle, kommt die Änderung an - aber natürlich im emotion_orange-Template, nicht in dem gekauften Template. Liegt wahrscheinlich daran, dass emotion_orange die frontend/index/index.tpl nicht verändert.
Das sieht mir so langsam aus wie ein massiver Bug in Shopware - es wird zwar Template-Vererbung eingebaut, aber die Reihenfolge ist falsch, und keiner fixt es.
Hast du dabei das Plugin Template deaktiviert?
Vielleicht ist auch das Plugin irgendwie komisch programmiert…
Gruß
Marco
Deinstallieren des Templates geht leider nicht so einfach, da es mit einem Controller kommt. Ich hab nochmal nen bisschen weitergetestet, und es scheint so zu sein, dass das gekaufte Template einfach die in _emotion_local geänderten Blöcke überschreibt. Daher würde ich gerne vom gekauften Template erben und nicht sein „Obertemplate“ verändern, was ja schon konzeptuell nur schiefgehen kann. Die Reihenfolge ist also so: Gekauftes Template erbt von _emotion_local (meine Änderungen) erbt von _default. Ich hätte es aber gerne so: Mein Template erbt von Gekauftes Template erbt von _emotion_local erbt von _default. Das einzige was mir einfällt, ist es, das gekaufte Template in nach _emotion_local zu kopieren, also folgende Situation herzustellen: Mein Template erbt von _emotion_local (kopiertes gekauftes Template) erbt von _default. Das funktioniert sogar, ist aber natürlich eine unglaublich dreckige Sache, und eventuelle Updates des gekauften Templates muss ich auch erst umständlich wieder nach _emotion_local kopieren. Die Frage ist also: Wie erbe ich von einem Template, das weder _default noch _emotion noch _emotion_local noch _local ist?