Kann man ein eigenes Template (ohne M-Template) erstellen ?

Hi@All Ich habe ein fertiges Layout für eine Homepage und muss nun Shopware (Pro 4.0.7) an dieses Design anpassen. Genau das versuche ich jetzt schon seit 2 Wochen und komm einfach nicht weiter, weil dieses System, meiner Meinung nach, viel zu unübersichtlich bzw. kompliziert ist. Ich bin es gewohnt aus eigenen Div-Containern ein Layout zu basteln und diese dann per CSS anzupassen. Wenn ich das richtig verstanden habe, sollte man aber von einem Mastertemplate ausgehen und dieses dann verändern. Und genau damit komme ich nicht klar. Ich brauche ein ganz normales 2-spaltiges Layout. Also eine feste Breite und Höhe (das ist noch machbar), einen Header (OHNE Menü), darunter auf der linken Seite die eigentliche Navigation und rechts daneben der Content, sowie unten den Footer. Alle Shopware-Templates die ich bis jetzt gesehen habe, haben oben UND links das Menü. Das Tutorial geht darauf auch nicht ein und auch sonst gibts nicht viel Sinnvolles zu diesem Thema. Deswegen würde ich mir am liebsten, so wie ich es gewohnt bin, mein eigenes Layout zusammenstellen (eben mit Div und CSS). Aber kann ich das einfach so machen oder zickt dann Shopware rum ?

Hallo, Shopware baut genau wie eine „normale“ Webseite auf HTML,CSS sowie ein bisschen Javascript mit Ajax auf. Natürlich kann man das Template komplett neu in HTML und CSS umsetzen. Um die Ajax-Funktionen nutzen zu können, ist es aber wichtig identische Selektoren zu verwenden. Wie kompliziert letzteres wird, hängt natürlich vom Einzelfall ab. In der Summe ist es aber bestimmt nicht einfacher, komplett neue Templates zu schreiben anstatt einzelne Views/SMARTY-Templates anzupassen. Vielliecht reicht es, die Templates/Views für einzelne Controller (z. B. Katgeorielisting/ Artikeldetailseite) anzupassen, um zum gewünschten Ergebnis zu kommen. Nach der groben Beschreibung in der Frage ist dies auf jeden Fall möglich. Andererseits ist die Beschreibung so grob und der Umfang der Anpassungen so hoch, dass ich jetzt nicht weiter ins Detail gehen kann. Die Blöcke für die horizontale Navigation kann man z. B. ausblenden, dann ist es nur noch die linke Navigation, für die Startseite kann man ein Plugin einbauen. Dies stellt dann die linke Spalte auch auf der Startseite dar. Die Shopnavigation mit „mein Konto“ lässt sich verschieben, der Footer ist ebenfalls änderbar. So geht es eigentlich für alle Shopbestandteile. Mann kann einzelne Shopseiten/Webseiten/SMARTY-Blöcke komplett in eigenem „HTML“ schreiben, dann muss man die benötigten Variablen aus dem Backend auslesen und in die SMARTY-Templates einfügen. Kompliziert wird es vor allem im Checkout, wenn die ganzen Berechnungen und Übergaben an das Backend stattfinden. Dies sind besonders „geschäftskritische“ Vorfälle und benötigen deutlich mehr Aufwand als die „Neuprogrammierung“ einer Artikelbox im Kategorielisting. Wichtig ist darauf zu achten, dass die neuen Template für ein Kategorielisting auch in dem Ornder /listing stehen, damit man auf die von Backend/Controller zur Verfügung gestellten Variablen zugreifen kann. Wenn Interesse an kommerziellen Supportticktes zur Unterstützung bei einzelnen Fragen der Templateumstellung oder einer Templateumsetzung besteht, würde ich mich über eine PM freuen. Viel Erfolg H. Thomas [quote=„Rockabella“]Hi@All Ich habe ein fertiges Layout für eine Homepage und muss nun Shopware (Pro 4.0.7) an dieses Design anpassen. Genau das versuche ich jetzt schon seit 2 Wochen und komm einfach nicht weiter, weil dieses System, meiner Meinung nach, viel zu unübersichtlich bzw. kompliziert ist. Ich bin es gewohnt aus eigenen Div-Containern ein Layout zu basteln und diese dann per CSS anzupassen. Wenn ich das richtig verstanden habe, sollte man aber von einem Mastertemplate ausgehen und dieses dann verändern. Und genau damit komme ich nicht klar. Ich brauche ein ganz normales 2-spaltiges Layout. Also eine feste Breite und Höhe (das ist noch machbar), einen Header (OHNE Menü), darunter auf der linken Seite die eigentliche Navigation und rechts daneben der Content, sowie unten den Footer. Alle Shopware-Templates die ich bis jetzt gesehen habe, haben oben UND links das Menü. Das Tutorial geht darauf auch nicht ein und auch sonst gibts nicht viel Sinnvolles zu diesem Thema. Deswegen würde ich mir am liebsten, so wie ich es gewohnt bin, mein eigenes Layout zusammenstellen (eben mit Div und CSS). Aber kann ich das einfach so machen oder zickt dann Shopware rum ?[/quote]

Hallo und vielen Dank für die schnelle Antwort. Also ich würde es ja auch ‚Shopware-konform‘ machen, aber ich seh einfach nicht durch. Das Templatesystem von Shopware ist bestimmt nicht schlecht, aber viel zu unübersichtlich, weil alles in tausenden von Dateien gelagert wird und man sich für jede kleine vorzunehmende Anpassung erstmal durch diesen Wust durchwühlen muss. Das ist bei anderen Shopsystemen weitaus besser gelöst worden, finde ich. Das obere Menü auszublenden ist kein Problem. Das habe ich auch gemacht. Allerdings kriege ich den ‚Information‘-Container nicht weg, das linke Menü nicht sogut designt (vorallem das gerade Aktive) und wenn ich auf einen Artikel klicke, dann nimmt die Detailseite die ganze Breite ein und das Menü ist verschwunden.

Es läuft also darauf hinaus, dass CSS oder ggf. auch das HTML des linken Menüs zu ändern. Das ist eigentlich kein Problem. Ich habe auch schon öfters SMARTY-Snippets dazu im Forum gepostet, vielleicht sind die als Ideengeber nützlich. Man kann die angezeigte Kategorietiefe anpassen, das Layout über eigene Klassennamen steuern oder das Shopware-CSS dazu ändern. Bei der Artikeldetailseite kann man auch eine Version erstellen, die Links noch eine Menüspalte hat. Dazu muss man aber den Content insgesamt schmaler machen und das zieht einige Änderugen nach sich. Je nachdem, welche Preisgestaltungen notwendig sind, ist es wahrscheinlich sinnvoll, den Block der diese Ausgabe steuert zu übernehmen und per CSS neu zu gestalten. Den Rest kann man eigentlich problemlos in eigenem HTML gestalten, die Variablen dort sind leicht zu überblicken. Beim Warenkorb-Button auf den Aufruf der jQuery-Funktion achten. Wenn man die Tab-Reiter behalten möchte, kann man durch das Entfernen der „ähnliche Artikel-Spalte“ auch locker den Platz für eine linke Spalte gewinnen. Die „ähnlichen Artikel“ kann man z. B. auch so einbinden: http://www.salome-schmuck.de/lederarmband-lila-31028 Ob man die Artikeldetail-Seite nun komplett neu schreiben sollte, hängt von dem Umfang der Umgestaltungen ab. Also, das ist alles machbar, aber für einen Post dann doch etwas viel. Wenn man schon mal dabei ist, würde ich auch direkt structured data nach schema.org implementieren. Zu SERP-Optimierung ist das auf jeden Fall sinnvoll. Viele Grüße H. Thomas [quote=„Rockabella“]Hallo und vielen Dank für die schnelle Antwort. Also ich würde es ja auch ‚Shopware-konform‘ machen, aber ich seh einfach nicht durch. Das Templatesystem von Shopware ist bestimmt nicht schlecht, aber viel zu unübersichtlich, weil alles in tausenden von Dateien gelagert wird und man sich für jede kleine vorzunehmende Anpassung erstmal durch diesen Wust durchwühlen muss. Das ist bei anderen Shopsystemen weitaus besser gelöst worden, finde ich. Das obere Menü auszublenden ist kein Problem. Das habe ich auch gemacht. Allerdings kriege ich den ‚Information‘-Container nicht weg, das linke Menü nicht sogut designt (vorallem das gerade Aktive) und wenn ich auf einen Artikel klicke, dann nimmt die Detailseite die ganze Breite ein und das Menü ist verschwunden.[/quote]

Ok. Ich werde es noch ein bissl versuchen. Kannst Du mir eventuell sagen wie ich die Informationen auf der linken Seite wegbekomme ? Alles was ich dazu gefunden habe, habe ich ausprobiert, aber leider hat nichts davon funktioniert.

[quote=„Rockabella“]Ok. Ich werde es noch ein bissl versuchen. Kannst Du mir eventuell sagen wie ich die Informationen auf der linken Seite wegbekomme ? Alles was ich dazu gefunden habe, habe ich ausprobiert, aber leider hat nichts davon funktioniert.[/quote] Wenn ich das richtig interpretiert habe so: Datein: /emotion_meins/frontend/index/left.tpl [{extends file='parent:frontend/index/left.tpl'} {block name='frontend\_index\_left\_campaigns\_bottom'} {\* {include file='frontend/index/menu\_left.tpl'} \*} {include file="frontend/campaign/box.tpl" campaignsData=$campaigns.leftBottom} {/block} Das Service-Menü wird in der Datei menu_left.tpl erzeugt. Anstatt auskommentieren kann man das inlcude auch löschen und wenn das darunter auch nicht benötigt wird den ganzen Block einfach leer in diese Datei schreiben.

Wunderbar. Das hat funktioniert. :slight_smile: Danke.