Problem mit Plugin richtig überschreiben

Hallo,

ich habe ein Problem mit dem richtigen Überschreiben eines Plugins und trotz zahlreicher anderer Threads hier habe ich noch keine Lösung gefunden. Folgende Situation:

Die zu überschreibende index.tpl des Plugins liegt in /engine/Shopware/Plugins/Community/Frontend/zenitShippingBar/Views/frontend/index. Der anzupassende Block in der Datei ist {block name=“frontend_index_footer_container” prepend}. Hier möchte ich den Block erst nach dem Include der Datei abhandeln und daher den Eintrag ändern auf {block name=“frontend_index_footer_container” append}. 

Dazu habe ich mir eine neue index.tpl angelegt mit folgendem Inhalt:

{extends file="parent:/engine/Shopware/Plugins/Community/Frontend/zenitShippingBar/Views/frontend/index"}

{block name="frontend_index_footer_container" append}
hier bleibt alles beim alten....
{/block}

Meine neue index.tpl lege ich ab unter /themes/Frontend/MeinTheme/frontend/plugins/zenitShippingBar/index.

Leider klappt das nicht und ich vermute, es liegt entweder am extends file Pfad und/oder am Pfad in meinem Theme, wo ich die neue index.tpl ablege.

Kann mir hier jemand auf die Sprünge helfen? Ich finde keine richtig gute Anleitung oder Hinweise, wie diese Pfade aussehen sollen, gerade bei Plugins finde ich das verwirrend. Bei normalen Shop-Dateien klappt das wunderbar, aber bei Plugins weiß ich nie die richtigen Pfade. Wie findet man das am besten raus?

Vielen Dank! 

Hi,

die Pfade sind immer relativ zum registrierten Template-Verzeichnis. Häufig liegen die Templates im Plugin dann bspw. als Views/frontend/detail/index.tpl und der Entwickler hat „Views“ mit „addTemplateDir“ registriert. Dann musst du die Templates als „frontend/detail"index.tpl“ ansprechen.

Das kannst du mal testen. Ansonsten: „Leider klappt das nicht“ - hast du eine Fehlermeldung dazu oder passiert schlicht gar nichts?

Daniel

1 „Gefällt mir“

Hi Daniel,

Danke für die Info. Egal, was ich versuche, es passiert einfach nichts, keine Fehlermeldung. 

Vtl. kannst du anhand der konkreten Daten mal sagen, wie du das genau meinst.

Originalpfad: /engine/Shopware/Plugins/Community/Frontend/zenitShippingBar/Views/frontend/index/index.tpl

Wie sieht der extends-Befehl in meiner index.tpl aus und in welchen Ordner in meinem Theme muss die Datei gespeichert werden? Kannst du das anhand des original Pfades sagen? Dann würde ich das mal noch testen. Nochmals besten Dank!

Ich weiß nicht ob du gezielt nur eine Datei des Plugin überschreiben kannst, denn diese verweist ja dann auch nur auf z.B die index.tpl wo Blöcke  mit dem Plugin erweitert oder überschrieben wird.

Wenn das Plugin mit append in einen Block erweitert und was einfügt wird es, mit meinem Verständnis, schwierig dies rückgängig zu machen.

Uwe

In diesem Fall hilft mir dann wohl nur, in der original Datei das prepend gegen append zu ändern und bei jedem Update wieder nachzuziehen, Mist…

Trotzdem vielen Dank!

Schau mal hier habe das gerade gefunden > http://forum.shopware.com/discussion/comment/147182/#Comment_147182

Aber wird auch nicht so richtig funktionieren da der Pfad von Plugin so allgemein gestaltet ist.
/engine/Shopware/Plugins/Community/Frontend/zenitShippingBar/Views/frontend/index/index.tpl da wäre jetzt der Pfad für dein Template /frontend/plugins/index/index.tpl
 

Wenn das Plugin aber so aufgebaut wäre 
/engine/Shopware/Plugins/Community/Frontend/zenitShippingBar/Views/frontend/ zenit_shipping_bar /index.tpl würde der Pfad dann so aussehen  /frontend/plugins/zenit_shipping_bar/index.tpl und könnte gezielt überschreiben werden.

Uwe

 

1 „Gefällt mir“

Danke Uwe!

Ich habe mit dem Support vom Pluginanbieter gesprochen, er wird meinen Wunsch jetzt ins Plugin einbauen, dann hat sich das erledigt. Die Erweiterung scheint auch nicht zu funktionieren, ich habe nochmal einiges probiert, aber alles ohne Erfolg. Mit dem Überschreiben oder Erweitern von Plugins ist es leider nicht so einfach wie mit den normalen Dateien.

Hallo Zusammen,

Schliesse mich hier dem Problem an.
Bei mir ist’s ev. ein klein wenig leichter da es sich hier um einen Shopware Block handelt der im Bare bereits existiert.
Es geht um den Block „frontend_detail_description_text“.

Bare:

{* Product description *}
{block name='frontend_detail_description_text'}
     
         {$sArticle.description_long}
     
{/block}

Norii Theme - detail/tabs/description.tpl:

{block name='frontend_detail_description_text' prepend}
    
        {* Product SKU - Label *}
        {block name='frontend_detail_data_ordernumber_label'}
            
                {s name="DetailDataId" namespace="frontend/detail/data"}{/s}
            
        {/block}

        {* Product SKU - Content *}
        {block name='frontend_detail_data_ordernumber_content'}
            
            
                {$sArticle.ordernumber}
            
        {/block}
    
{/block}

Mein Theme:

{extends file="parent:frontend/detail/tabs/description.tpl"}

{block name='frontend_detail_description_text' append}
    {* Hier kommt die SKU Nummer*}
{/block}

 

Wie bekomme ich die SKU Nummer (oder generell Inhalt) nun NACH den Text anstatt VOR die Beschreibung?
Muss ich wirklich den Umschliessenden Block nehmen und „frontend_detail_description_text“ als Block löschen, damit die Änderung durch das Norii Theme nicht mehr zieht?
Wäre dann aber nicht Shopware Update sicher.

LG Arya_Svitkona