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?
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?
shyim
8
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?
shyim
11