[Backend] Modify Email Form

Ich würde Gerne die Order.mail Form überschreiben um ggf. ein neues Feld (CC Empfänger) hinzuzufügen.

Bootstrap.php:

createMyEvents();
        return true;
    }

    /**
     * Creates and subscribe the events and hooks.
     */
    private function createMyEvents()
    {
        $this->subscribeEvent(
            'Enlight_Controller_Action_PostDispatchSecure_Backend_Order', 'onOrderPostDispatch'
        );
    }

    public function onOrderPostDispatch(Enlight_Event_EventArgs $args)
    {
        /** @var \Enlight_Controller_Action $controller */
        $controller = $args->getSubject();
        $view = $controller->View();
        $request = $controller->Request();

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

        if ($request->getActionName() == 'load') {
            $view->extendsTemplate('backend/TestCCPlugin/Views/mail/form.js');
        }
    }
}

TextCCPlugin/Views/mail/form.js:

 

//{block name="backend/order/view/mail/form" append}
Ext.define('Shopware.apps.TestCCPlugin.view.mail.Form', {
    override:'Shopware.apps.Order.view.mail.Form',

    getFormItems: function() {
        console.log("getFormItems called");
        var me = this;
        var result = me.callParent(arguments);
        console.log("after call parent");
        result.push({
                xtype: 'textfield',
                name: 'ccreceiver',
                fieldLabel: '{s name=ccreceiver}CC{/s}'
            });
        return result;
    }
});
//{/block}

 

Leider wird das neue Feld nicht angezeigt. Habe ich etwas vergessen/falsch überschrieben?

Ist eventuell der Block falsch?

Niemand eine Idee?

Hallo,

Schou mal diese Beispiel :

vielleischt Sie müssen callOverridden nicht callParent benutzen.

VG,

Ahamd

Ich habe nun die app.js gelöscht und den entsprechenden Eintrag aus dem Controller Event gelöscht.

Leider bekomme ich nun folgende Fehlermeldung:

Ups! Ein Fehler ist aufgetreten!

Die nachfolgenden Hinweise sollten Ihnen weiterhelfen.

Unable to load template snippet 'string:{include file="backend/order/model/order_history.js"}
.....
{include file="backend/order/controller/mail.js"}|backend/order/payment_methods/controller/detail.js|backend/order/payment_methods/view/detail/payment_methods.js|backend/TestCCPlugin/Views/mail/form.js' in engine/Library/Smarty/sysplugins/smarty_internal_templatebase.php on line 127
Stack trace:

#0 engine/Library/Enlight/View/Default.php(274): Smarty_Internal_TemplateBase->fetch()
#1 engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(216): Enlight_View_Default->render(Object(Enlight_Template_Default))
#2 engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(242): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->renderTemplate(Object(Enlight_Template_Default))
#3 engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(136): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->render()
#4 [internal function]: Enlight_Controller_Plugins_ViewRenderer_Bootstrap->onPostDispatch(Object(Enlight_Controller_ActionEventArgs))
#5 engine/Library/Enlight/Event/Handler/Default.php(91): call_user_func(Array, Object(Enlight_Controller_ActionEventArgs))
#6 engine/Library/Enlight/Event/EventManager.php(214): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs))
#7 engine/Library/Enlight/Controller/Action.php(202): Enlight_Event_EventManager->notify('Enlight_Control...', Object(Enlight_Controller_ActionEventArgs))
#8 engine/Library/Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch('loadAction')
#9 engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#10 engine/Shopware/Kernel.php(178): Enlight_Controller_Front->dispatch()
#11 vendor/symfony/http-kernel/HttpCache/HttpCache.php(487): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#12 engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#13 vendor/symfony/http-kernel/HttpCache/HttpCache.php(258): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#14 engine/Shopware/Components/HttpCache/AppCache.php(103): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true)
#15 shopware.php(113): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#16 {main}

Der Code oben ist upgedated. hat jemand eine Idee?

push

push

Zeige mal wo du deine Javascript Datei lädst

Hallo Shyim,

die Bootstrap.php und die form.js ist oben angehängt. Benötigst du noch etwas anderes?

Push

Ich hab deine Erweiterung getestet und konnte nix feststellen es funktioniert bei mir.

Datei: https://www.amazon.de/clouddrive/share/OH4Y4K0VmLunV9F8CaqH2WysiizUyXj0DuOQOV4e4hN?ref_=cd_ph_share_link_copy