Template erweitern prepend erzeugt "Unsinn"

Hallo,

kann mir vielleicht jemand meinen Fehler in Folgendem Codeausschnitt nennen?
In der Datei index.tpl im Ordner index gebe ich Folgendes ein, um neben der linken Sidebar z.B. eine Box hinzuzufügen:

 

{extends file=“parent:frontend/index/index.tpl”}
{block name=“frontend_index_content_left” prepend}
{include file=‘frontend/index/was_neues.tpl’}
{/block}

Aber selbst wenn die Datei was_neue.tpl leer ist, wird trotzdem etwas erzeugt und zwar wird die linke Sitebar einfach verdoppelt.
Wo liegt dabei das Problem?

MFG
Nils

 

Hi,

Schreibe bitte direkt in den Block etwas (zb „xxx“) und prüfe was dann passiert. Dann hast Du einen Ansatz, ob das Problem an der Blockvererbung oder am include liegt.

Liebe Grüße,
Michael

Hallo Michael,

danke!. Habe ich gemacht. Leider ändert sich trotzdem nichts. Habe nur zwei nebeneinanderstehende gleiche Sidebars ohne dass der Inhalt der eingebundenen Datei angezeigt wird.
Ich habe zwar schon etliche Blocks hinzugefügt, aber das ist eine Weile her. Vielleicht habe ich irgendwo einen Fehler drin, der mir nicht auffällt. Hättest du vielleicht ein kurzes Beispiel für z.B. einen mittels append eingebundenen Code, der bei dir funktioniert? (aber nicht den aus der Shopware Anleitung zur Template-Erstellung / der hilft mir nicht weiter, da ich den Fehler auch mit dessen Hilfe bekomme - vielleicht hab ich dort schon zu lange drauf gestarrt, um mit dessen Anleitung noch was zu richten…)

LG
Nils

Hallo,

es gibt leider in der aktuellen Smarty Version teweilweise Probleme bei der Verwendung von prepend und append wenn in mehreren Vererbungsebenen auf den gleichen Block zugegriffen wird. Die Lösung welche ohne Probleme funktionieren sollte ist die Verwendung von _ $smarty.block.parent _. Mit diesem Befehl kann man den eigentlichen Inhalt des Eltern-Blocks ausgeben lassen. In Deinem Fall so:

{extends file="parent:frontend/index/index.tpl"}

{block name="frontend_index_content_left"}

    {include file='frontend/index/was_neues.tpl'}

    {$smarty.block.parent}
{/block}

Sonnige Grüße,
Phil

 

Hallo Phil,

danke für den Hinweis. So scheint es zu funktionieren. War es nicht immer so, dass die Anpassungen in der index.tpl auf jeder Seite wirkten und wenn man es nur auf einer bestimmten Seite haben wollte, dass man dann z.B. in die index.tpl Datei im listing-Ordner oder einen anderen Ordner gehen musste?

D.h. sollte mein Inhalt aus der was_neues.tpl nicht auf jeder Seite erscheinen oder doch nur auf der Startseite?
Hat sich da etwas geändert?

LG
Nils

Ergänzung: Funktioniert leider doch nicht so gut, da es leider Ladefehler auf anderen Seiten verursacht (in einem neuen Shop mit ausschließlich den Standardartikeln aus dem Shopware-Plugin). Wenn ich eine Lösung finde, meld ich mich zurück…

 

LG
Nils

Hallo,

ich bins nochmal und ich werd langsam wahnsinnig. Wenn ich beispielsweise folgenden Codeblock aus der index.tpl entferne, dann verschwindet die sidebar wie gewünscht:

                        {* Sidebar left *}
                        {block name=‘frontend_index_content_left’}
                            {include file=‘frontend/index/sidebar.tpl’}
                        {/block}

Wenn ich dann den Cache komplett leere und auch einen ganz anderen Browser aufrufe, nachdem ich folgenden Code an die Stelle eingesetzt habe, erscheint die Sidebar wie vorher:

                        {* Sidebar left *}
                        {block name=‘frontend_index_content_left’}
                         
                        {/block}

 

Wie kann das sein? Woher kommt die Sidebar, wenn die Datei überhaupt nicht mehr includiert ist???

LG
Nils