eiegens Menü über eigentlöichem Template

Hallo an alle, ich begreif das mit dem Template anscheinend noch nicht so. Ich wollte unseren vorhanden Header der ist in php bzw. html über das shopware template setzen. quasi oben drüber, ich hoffe ihr wisst was ich meine? Ist das irgendwie möglich?! Weil ich sehe nur tpl Dateien wo ich nicht mal weiß was das ist. Liebe Grüße Flo

Also erstmal: Die .tpl-Dateien ergeben das Template. Gehen wir mal der Einfachheit halber vom Default-Template aus (Vererbung weiter unten). Es wird bei jedem Seitenaufruf die Datei /templates/_default/frontend/index/index.tpl geladen. Wenn du in den Ordner /templates/_default/frontend gehst, dann hast du eine Übersicht darüber, welche Templates es für die unterschiedlichen Shopwarebereiche im Frontend gibt. Die Dateien unter /templates/_default/frontend/index sind der Standardaufbau einer Seite. index/index.tpl wird also immer geladen. Die Dateien unter /templates/_default/frontend/detail z.B. werden geladen wenn die Detailseite für einen Artikel aufgerufen wird. Zuerst wird hier jedoch wieder die index/index.tpl geladen und durch die detail/index.tpl (und andere) wird diese dann ergänzt und bestimmte Blöcke werden überschrieben etc. etc. bis die Seite eben im Frontend so erscheint wie sie dann definiert ist. In der index/index.tpl befindet sich der Block {block name='frontend\_index\_before\_page'}{/block} Was in diesem Block steht wird ganz oben auf der jeder Shopseite dargestellt. Einfügen solltest du hier jedoch überhaupt nichts (Erklärung weiter unten). Dies ist jedoch der Block den du suchst. Welches Template verwendest du denn? Was ist im Backend eingestell? Das Default-Template oder ein emotion-Template? -> Bei Shopware ist das Default-Template das alte Template. Das neue mit den verbesserten Funktionsumfang ist das emotion-Template. Dieses solltest du auch benutzen und anpassen. Das Emotion-Template basiert jedoch auf dem Default-Template und überschreibt die Blöcke in der _default/frontend/xxx/*.tpl mit dem was in dem Block in der _emotion/frontend/xxx/*.tpl steht. Dann kommen die emotion-Variationen (z.B. emotion_green) und überschreiben den Inhalt der in einem Block der _emotion/frontend/xyz/*.tpl oder _default/frontend/xyz./*.tpl steht dann, wenn der gleiche Block(name) in emotion_green/frontend/xyz/*.tpl vorhanden ist. Jetzt kommst du und willst da was ändern. Damit da nicht die Übersicht flöten geht und damit Shopware nicht deine Änderungen überschreibt bei einem Update welches eines der Templates auch betrifft gibt es die Ordner _local und _emotion_local im Templates-Ordner. Diese Überschreiben immer in letzter Instanz die Blöcke der vorherigen aktiven Templates und werden bei einem update von Shopware NICHT überschrieben. Alle Änderungen an dem Template die du hier vornimmst sind dann also quasi update-sicher. Der Ordner _local überschreibt das Default-Template und der Ordner _emotion_local das emotion-Template - oft reicht es aus nur den Ordner _emotion_local für Änderungen zu benutzen. Um mit den local-Ordnern arbeiten zu können erstellst du einen Ordner “frontend” in dem jeweiligen Ordner (i.d.R. _emotion_local) und baust da drinnen die Ordner-Struktur nach - natürlich nur die, die du auch tatsächlich ändern willst. Um einen Inhalt eines Blocks komplett zu ändern suchst du dir die Seite heraus die du ändern möchtest - z.B. oben über den vorhandenen Header etwas einfügen was bei allen Seiten dargestellt wird liegt in /index/index.tpl und dort den Block den du ändern möchtest heraussuchen. Diese Ordner-Struktur baust du nun nach. Die Datei /templates/_emotion_local/frontend/index/index.tpl erst einmal erstellen. Oben in die Datei ganz am Anfang in die erste Zeile kommt: {extends file="parent:frontend/index/index.tpl"} Damit sagst du Shopware, dass diese Datei alles von der Eltern-Datei ausführt, bis auf die Blöcke die du hier drinnen änderst. Also folgendes in die Datei einfügen: {block name='frontend\_index\_before\_page'}{/block} Jetzt wird der Inhalt dieses Blocks mit nichts ersetzt, weshalb an dieser Stelle nichts angezeigt wird. Mit [code]{block name=‘frontend_index_before_page’}

Hallo

{/block}[/code] wird dann eben “Hallo” Oberhalb der eigentlichen Seite ausgegeben. Wenn du den Originalen Block verwenden willst, aber davor oder dahinter noch etwas eigenes anfügen möchtest, dann kann man so etwas wie append oder prepend verwenden: {block name=‘frontend_index_before_page’ append}

Hallo

{/block} Jetzt bleibt das, was an anderer Stelle (siehe Vererbungshirarchie) angezeigt wird stehen, nur ein “Hallo” wird noch im Anschluss eingefügt. Dieser Block eignet sich schlecht als Beispiel, weil der Block immer leer ist und weder vom _default noch vom emotion noch von einem _emotion_green (o.ä.) irgendwann etwas hier rein geschrieben wird. Funkitionalität kann jedoch mit einem anderen Block nachvollzogen werden. OK, Jetzt wieder zurück zu deinem Beispiel: Jetzt willst du bestimmt auch ein bischen am Styling drehen in den *.css-Dateien. Dazu musst du die Datei /templates/_emotion_local/frontend/index/header.tpl anlegen und in die erste Zeile kommt wieder: {extends file="parent:frontend/index/header.tpl"} - nur jetzt eben mit “header.tpl” Der Block “frontend_index_header_css_screen” in der header.tpl regelt die Einbindung der css-Dateien. Diesen erweiterst du jetzt so, dass deine eigene *.css (nennen wir sie eigenesStyling.css) auch mit eingebunden wird: {block name="frontend\_index\_header\_css\_screen" append} <link type="text/css" media="screen, projection" rel="stylesheet" href="%7Blink%20file='frontend/_resources/styles/eigenesStyling.css'%7D">{/block} Diese Datei müssen wir natürlich noch im local-Ordner erstellen. Also erstellen wir die Datei: /templates/_emotion_local/frontend/_resources/styles/eigenesStyling.css. Hier drinnen kannst du nun die css-Styles der Templates überschreiben, ganz wie gewohnt weil es sind ja CASCADING style sheets. Jetzt bist du auf dem Stand an dem du das Template ändern kannst so wie du es willst. http://wiki.shopware.de/Template-Cheats … _1014.html und http://wiki.shopware.de/Schnelleinstieg … l_876.html sollten dir jetzt weiter helfen. PS: mit den Firefox Plugins firebug und firephp und aktiviertem Shopware Debug Plugin (im Backend unter Einstellungen->Plugin Manager->Shopware Erweiterungen kann es aktiviert werden) bekommt man einen guten Eindruck davon (wenn man auf den Konsolen/Console ausdruck kuckt) wo sich die *.tpl denn befindet die man jetzt bearbeiten möchte. Außerdem zeigt einem die Plugin-Kombination auch an welche Variablen in diesem Bereich des Shopware-Frontends im Template zur Verfügung stehen.

1 Like

Hallo, erstmal Entschuldigung für die lange Antwortzeit. Aber das war genau das was ich gesucht ha

Danke

Super Anleitung