Hallo Leute, ich schaue mir gerade SW genauer an. Bin jetzt bei den Templates angelangt. Hab mir natürlich vorher den Schnelleinstieg und das Templatedokument durchgelesen. Leider klappt es mit dem überschreiben der Startseite nicht ganz. Aber erst mal von Anfang an. Ich nutzte SW CE 4.0.1 @ Debian. Hab das emotion_black Template nach emotion_test kopiert. Rechte geprüft und im BE für den aktuellen Shop auf aktiv gestellt. Nun wollte ich nur die Startseite (Home) ändern. Die Unterseiten/Kategorien sollten erst mal das Design von emoution_black beibehalten. Also bin ich hin und hab den Ordner home erstellt. Dort eine Datei header.tpl mit folgendem Inhalt hinzugefügt: home/header.tpl {extends file="parent:frontend/index/header.tpl"} {block name="frontend\_index\_header\_css\_screen" append} <link type="text/css" media="screen, projection" rel="stylesheet" href="%7Blink%20file='frontend/_resources/styles/emotion_black_home.css'%7D">{/block}
Der Code ist aus dem emotion_black Template aus der index/header.tpl Datei. Einzige Anpassung war der neue Dateiname der CSS Datei. Die Datei emotion_black_home.css hab ich natürlich auch erstellt und einige CSS Anpassungen gemacht (z.B. HG geändert). Cache geleert und FE neugeladen. Testweise auch {extends file="parent:frontend/index/header.tpl"}
in {extends file="parent:frontend/home/header.tpl"}
geändert. Tjo es passiert nichts. Mit Firebug gecheckt, die CSS Datei wird nicht importiert. Hab zum Test Anpassungen in emotion_black.css gemacht. Auf die wird ja noch von index/header.tpl verwiesen. Dort werden die Änderungen übernommen. Da diese aber Änderungen für den gesamten Shop wären will ich das hier nicht. Hab weiter getestet. Wollte wissen ob die Vererbung innerhalb home überhaupt klappt. Jetzt versuchte ich Blöcke zu entfernen. home/index.tpl {extends file='parent:frontend/home/index.tpl'} {\* Search \*} {block name='frontend\_index\_search'}{/block} {\* Shop navigation, Mein Konto usw.\*} {block name='frontend\_index\_checkout\_actions'}{/block} {\* Footer \*} {block name="frontend\_index\_footer"}{/block} {block name="frontend\_index\_shopware\_footer"}{/block}
Und siehe da, grundsätzlich werden Blöcke aus home also überschrieben. Leider auch hier nicht alle. {block name='frontend\_index\_search'}{/block}
hat keine Wirkung. Dachte ich jedenfalls zuerst. Ich hab mal {block name='frontend\_index\_search'}SUCHE{/block}
draus gemacht. SUCHE wird auf der Startseite angezeigt. Jedoch nicht da wo ich es erwartet hab. Es wird im “container_20” eingefügt anstelle im header. Also direkt unterhalb der Kategorien Navigation. Die anderen Blöcke wurden korrekt entfernt. Wenn ich testweise {extends file="parent:frontend/index/index.tpl"}
benutzt hab wurde die linke Sidebar angezeigt und die Einkaufswelt ausgeblendet. Warum das so ist ist mir klar (die linke Sidebar wird bei meinem Template nicht überschrieben und der Promotion Block fehlt in dem geerbten Template bzw. ist nicht in meinem Template enthalten). Also nach meinem Verständnis sollte es so laufen: templates/emotion_test/frontend/home/index.tpl erbt durch {extends file='parent:frontend/home/index.tpl'}
von _emotion/frontend/home/index.tpl. Dies erbt wiederum durch die Anweisung {extends file='parent:frontend/index/index.tpl'}
von _default/frontend/index/index.tpl. _emotion_local hab ich in der Vererbungsreihenfolge weggelassen da der Ordner leer ist. Meine Änderungen gegenüber emotion_black: templates/emotion\_test/frontend/ - home/header.tpl - home/index.tpl - index/header.tpl - \_resources/sytle/emotion\_black\_home.css - weitere Ordner und Dateien von emotion\_black
Wo ist jetzt mein Denk/Verständigungs Fehler? Gruß Pete
Wenn ich dich richtig verstehe, möchtest du deine eigene CSS einbinden. Die wird in /index/header.tpl eingebunden, nicht in /home/header.tpl In Home machst du nur die Änderungen die den Seiteninhalt auf deiner Homepage betreffen, also zwischen den
Tags im HTML.
Wo steht das? Ist das Grundsätzlich bei allen Ordner so (campaign, blog usw)? Also aus der Templatedokumentation könnte man meinen das immer die gesamte Seite gemeint ist und nicht nur der Bereich zwischen den Body Tags. So wie sich das anhört kann ich dann für bestimmte Seiten extra CSS einbinden. Werde mir dann wohl mit inline CSS behelfen müssen oder schauen ob ich auf den entsprechenden Seiten weitere Klassen und ID’s in die HTML Struktur einbauen kann. Das Suchfeld ist aber im Body Bereich. Jemand eine Idee warum das nicht überschrieben wird? Vorerst hab ich die Suche per CSS ausgeblendet.
hab eben gesehen das es ein Update auf 4.0.2 gibt. Habs direkt mal eingespielt. Stand zwar nicht in der Bugliste im Changelog aber ein Smarty Fehler beim einbinden des _emotion Templates mit absoluten Pfad ist jetzt behoben. Das Suchfeld wird jetzt auch korrekt überschrieben. home/header.tpl wird anscheinend gar nicht ausgewertet. Es wird anscheinend nur home/index.tpl ausgewertet. Dort konnte ich dann sehr wohl auch den Header überschreiben. Thema kann geschlossen werden.