ChriMaLuxeChriMaLuxe MitgliedKommentare: 208 Danke erhalten: 17 Mitglied seit: Februar 2014 bearbeitet November 2015
Hallo,
ich würde gerne in einem Plugin einen Block überschreiben, aber es funktioniert nicht. Hier meine Vorgehensweise:

Die Originaldatei des Heidelpay-Plugins liegt in /prod/engine/Shopware/Plugins/Community/Frontend/HeidelGateway/Views/frontend/register.

Die Datei hp_payment.tpl habe ich nun kopiert und möchte den Block {block name='frontend_checkout_confirm_left_payment_method'} überschreiben. Um zu testen, schreibe ich einfach mal einen leeren Block dorthin und setze an den Anfang noch den extends-Befehl zum Original.
Die Datei sieht dann so aus:
{extends file="engine/Shopware/Plugins/Community/Frontend/HeidelGateway/Views/frontend/register/hp_payment.tpl"}

{* confirm Checkout Payment method Block *}
{block name='frontend_checkout_confirm_left_payment_method'}

{/block}
Diese Datei lade ich dann in einem Template hoch unter emotion_prod/frontend/register als hp_payment.tpl

Leider greift dies aber nicht und ich verstehe nicht warum.

Kann mir jemand hier auf die Sprünge helfen, was daran falsch ist?

Cache komplett gelöscht habe ich.

Mache ich die Änderung zum Test in der Originaldatei, greift sie. Das ist aber natürlich keine Lösung. Muss ja auch updatesicher sein.

Vielen Dank!

Kommentare

  • ChriMaLuxeChriMaLuxe MitgliedKommentare: 208 Danke erhalten: 17 Mitglied seit: Februar 2014
    Hat keiner Idee, was ich hier tun kann?
  • CreatixxCreatixx MitgliedKommentare: 547 Danke erhalten: 129 Mitglied seit: August 2012
    Lass mal das komplette
    {extends ...
    
    weg.
    Danke von 1madco-sven
  • ChriMaLuxeChriMaLuxe MitgliedKommentare: 208 Danke erhalten: 17 Mitglied seit: Februar 2014
    Schon probiert, das ändert leider nichts. Ich verstehe es absolut nicht. In diesem register-Ordner sind noch 2 weitere Dateien aus dem plugin, die ich wie üblich überschreiben kann durch kopieren der Datei, ändern und hochladen in meinem Template. Da ist auch kein extends oder sonstwas notwendig.

    Aber mit dieser 1 Datei hier klappt das einfach nicht und ich verstehe nicht, warum.
  • EikeWarnekeEikeWarneke ModeratorKommentare: 2621 Danke erhalten: 533 Mitglied seit: Juni 2013
    Plugin Templates kannst du nicht erweitern, sondern nur vollständig überschreiben. Dazu lege eine Datei in /templates/local/frontend/register/hp_payment.tpl an und füge den kompletten content ein.

    Viele Grüße
  • ChriMaLuxeChriMaLuxe MitgliedKommentare: 208 Danke erhalten: 17 Mitglied seit: Februar 2014
    Das funktioniert leider auch nicht, schade. Cache gelöscht und getestet, nach wie vor alles beim alten....
  • Gessulat/Gessulat Gmbh & Co. KGGessulat/Gessulat Gmbh & Co. KG MitgliedKommentare: 4 Danke erhalten: 0 Mitglied seit: Februar 2014
    Ist das Problem gelöst worden und wenn ja wie?

    Danke
  • ChriMaLuxeChriMaLuxe MitgliedKommentare: 208 Danke erhalten: 17 Mitglied seit: Februar 2014
    Leider habe ich bis heute keine Lösung dazu. Ich muss dann jedes Mal nach einem Plugin Update die original Dateien anpassen.
  • EikeWarnekeEikeWarneke ModeratorKommentare: 2621 Danke erhalten: 533 Mitglied seit: Juni 2013
    Seit Shopware 5.1 ist die Reihenfolge 1.) Plugin Templates 2.) eigenes Themes. Daher sollte es ohne Probleme möglich sein, dass du in deinem Theme das template eines Plugins überschreibst.

    Viele Grüße
  • ChriMaLuxeChriMaLuxe MitgliedKommentare: 208 Danke erhalten: 17 Mitglied seit: Februar 2014
    Da wir aktuell noch auf Version 4.3.6 sind, kann ich das nicht prüfen. Eigentlich sollte es damit ja auch funktionieren, macht es aber nicht, seltsamerweise nur beim Heidelpay Plugin, bei anderen Plugins klappt es ja. Schon etwas seltsam, aber hoffentlich bald erledigt, wenn wir endlich updaten können...
  • JuSchJuSch MitgliedKommentare: 1 Danke erhalten: 0 Mitglied seit: März 2017

    Wir benutzen das Plugin auf der Shopware-Version 5.2.12 und das Überlagern der Datei HeidelGateway/Views/frontend/register/hp_payment.tpl funktioniert trotzdem nicht.
    Ich habe die Datei in themes/Frontend/MeinTheme/frontent/register angelegt, von der Logik her genau wie bei anderen Plugins, die ich überlagert habe.
    Jedoch funktioniert die Überlagerung nur beim Heidepay-Plugin nicht.
    Gibt es dazu immer noch keine Lösung?

  • ChriMaLuxeChriMaLuxe MitgliedKommentare: 208 Danke erhalten: 17 Mitglied seit: Februar 2014

    Die Datei hp_payment.tpl muss nach themes/Frontend/MeinTheme/frontent/register und dann klappt es bei mir. 

    Du musst aber am Dateianfang den extend-Befehl machen mit {extends file="parent:frontend/index/index.tpl"}, das hatte ich immer falsch. Mit diesem Befehl geht es jetzt aber problemlos.

  • eldaneldan MitgliedKommentare: 77 Danke erhalten: 3 Mitglied seit: März 2015

    Stehe vor der gleichen Aufgabe. 
    @ChriMaLuxe‍ leider klappt es so nicht. Das Plugin "Profiler - Friends of Shopware" gibt mir folgende gerenderte Templates an oberster Stelle an:
    "frontend/account/payment.tpl frontend/plugins/seo/index.tpl register/hp_payment53.tpl"

    Ich hab bereits die "hp_payment.tpl" und die "hp_payment53.tpl" in "themes/Frontend/MeinTheme/frontent/register" versucht, leider ohne Erfolg.

    Hast du noch einen Hinweis an was es liegen könnte (Shopware 5.4.5)?

  • ChriMaLuxeChriMaLuxe MitgliedKommentare: 208 Danke erhalten: 17 Mitglied seit: Februar 2014

    Nein, leider nicht. Wir nutzen wieder das Original ohne Anpassungen.

  • hdshds MitgliedKommentare: 198 Danke erhalten: 44 Mitglied seit: Dezember 2012

    Ich habe es bei mir so gemacht in der Theme.php folgendes einfügen

    protected $injectBeforePlugins =  false;

    Dann kannst du das Plugin in deine Theme überschreiben solte ein Plugin als Beispiel den checkout/ajax_cart.tpl erweitern / überschreiben dann das hier nicht vergessen, in meinem Fall {extends file="parent:frontend/checkout/ajax_cart.tpl"}. Blöcke überschreiben und dann unter dein Theme/frontend/checkout/ajax_cart.tpl speichern.

    Viel Spaß hoffentlich hilft euch das

     

     

  • eldaneldan MitgliedKommentare: 77 Danke erhalten: 3 Mitglied seit: März 2015

    Danke für die Antworten.

    @hds‍ hast du es beim Heidelpay-Plugin erfolgreich so gemacht?
    Dein Weg klappt leider bisher auch nicht.

    Bisher klappt nur der Weg über die Original-Datei. :(

  • eldaneldan MitgliedKommentare: 77 Danke erhalten: 3 Mitglied seit: März 2015

    Ich möchte in diesem Block nur eine Klasse ändern, warum greift das hier nicht auf die übliche Weise?
    Der Codeauszug an der Stelle die geändert werden soll (+ "Profiler - Friends of Shopware"-Hilfe)

    <!-- BLOCK BEGIN frontend_account_payment_action_buttons, File: /PFADZUMPROJEKT/engine/Shopware/Plugins/Community/Frontend/HeidelGateway/Views/responsive/frontend/register/hp_payment53.tpl -->
      <div class="account--actions">
          <a class="btn is--secondary left" href="http://projekt/account"; title="Zurück">Zurück</a>
          <input type="submit" value="Ändern" class="btn is--primary register--submit right">
    	</div>
    <!-- BLOCK END frontend_account_payment_action_buttons -->

     

Anmelden oder Registrieren, um zu kommentieren.