Erweiterung einer bestehenden Backend-Komponenten über Plugin

Hi zusammen,

ich komme beim erweitern der Bestellübersicht Komponente nicht weiter (nicht das Details-Fenster).
Ich habe mit Hilfe von Backend extensions das Plugin entwickelt und die entsprechenden Stellen 
umgeändert um auf die “Order”-Komponenten zu “zeigen”.

Leider tut sich so gar nichts.

Hier meine Dateien

./Bootstrap.php

class Shopware_Plugins_Backend_FpDocPrint_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
    public $info = [
        "version" => "1.0",
        "label" => "DocPrint",
        "author" => "Fp",
        "copyright" => "Fp",
        "description" => "",
        "support" => "",
        "link" => ""
    ];





    public function onOrderPostDispatch(Enlight_Event_EventArgs $args)
    {
        $controller = $args->getSubject();
        $view = $controller->View();
        $request = $controller->Request();

        $view->addTemplateDir( __DIR__. '/Views');

        if ($request->getActionName() == 'index') {
            $view->extendsTemplate('backend/extend_order/app.js');
        }

        if ($request->getActionName() == 'load') {
            $view->extendsTemplate('backend/extend_order/view/main/window.js');
        }
    }
    




    public function getInfo()
    {
        return $this->info;   
    }





    public function install()
    {
        $this->subscribeEvent(
            'Enlight_Controller_Action_PostDispatchSecure_Backend_Order',
            'onOrderPostDispatch'
        );

        return true;
    }





    public function uninstall()
    {
        return true;
    }
}

./View/backend/extend_order/app.js

//{block name="backend/order/application" append}
// {include file="backend/extend_order/view/main/window.js"}
//{/block}

./View/backend/extend_order/view/main/window.js
 

//{block name="backend/extend_order/view/main/window" append}
Ext.define("Shopware.apps.FpDocPrint.view.main.Window", {
    
   override: "Shopware.apps.Order.view.main.Window",

     initComponent:function () {
       var me = this;

       console.log("test")
       me.callParent(arguments);
   }
});
//{/block}

Hab ich etwas vergessen, oder etwas falsch?

Danke im Voraus für jede Hilfe

Das Beispiel mit der „window.js“ sieht aber im Original etwas anders aus. Deine initComponet() steht da nicht in der window.js :slight_smile:

Nachtrag: Was willst du überhaupt erreichen? Wo kein return, da auch keine Reaktion :slight_smile:

Hi,

ich schätze, dass das Problem ist, dass du die Datei, die die Erweiterung macht, quasi zweimal mitlädst. Einmal hängst du sie an den Block der ursprünglichen app.js und einmal direkt als extendsTemplate()

Hier muss man unterscheiden, was mit der index action geladen wird und was über die load action.

Dateien, die ein override auf bestehende Module machen -> load action

Dateien, die komplett neue Dinge hinzufügen und nichts überschreiben -> index action

Bau diese Dopplung, die du hast mal aus. Also so, dass deine window.js nur über die load action hinzugefügt wird

Viele Grüße aus Schöppingen

cool Michael Telgmann

Erst mal Danke für die Antwort.

Ich hatte diesen Ansatz auch mal probiert musste aber dann feststellen das der fehler in der  ./View/backend/extend_order/view/main/window.js​  war

Die oberste Zeile hätten lauten müssen:
 

//{block name="backend/order/view/main/window" append}

Vorher habe ich quasi einen nicht existenten Block extended und deswegen hat sich nichts getan.

Ich dachte ich Teile das mal mit falls irgendwann jemand anderes auch auf diese Problematik stoßt.