Javascript Shopware 5,从自己的插件打开批处理窗口
我希望不要问得太苛刻,不要隐瞒事实 我们开始: 我在为Shopware 5开发自定义插件时遇到问题。 我已经有一个工作插件,其中列出了某些标准的订单。 现在我想在这个网格窗口的工具栏上有一个按钮(我已经有了) 该按钮应打开批处理窗口,该窗口已在shopware的本机“订单”窗口中可用 问:我如何使用所选的网格ID打开此应用程序 以下是我所拥有的:Javascript Shopware 5,从自己的插件打开批处理窗口,javascript,plugins,ext4,shopware,Javascript,Plugins,Ext4,Shopware,我希望不要问得太苛刻,不要隐瞒事实 我们开始: 我在为Shopware 5开发自定义插件时遇到问题。 我已经有一个工作插件,其中列出了某些标准的订单。 现在我想在这个网格窗口的工具栏上有一个按钮(我已经有了) 该按钮应打开批处理窗口,该窗口已在shopware的本机“订单”窗口中可用 问:我如何使用所选的网格ID打开此应用程序 以下是我所拥有的: [...] createToolbarButton: function () { var me = this; ret
[...]
createToolbarButton: function () {
var me = this;
return Ext.create('Ext.button.Button', {
text: 'Batch Processing Orders',
name: 'customBatchProcessButton',
cls: 'secondary',
handler: function () {
me.onClickCustomBatchProcessButton(me);
}
});
},
onClickCustomBatchProcessButton: function(me){
var thisGrid = me.getTransferGrid();
var records = thisGrid.getSelectionModel().getSelection();
console.log("Grid");
console.log(thisGrid);
console.log("records");
console.log(records);
Shopware.app.Application.addSubApplication({
name: 'Shopware.apps.Order',
action: 'batch',
params: {
mode: 'multi',
records: records
}
});
}
[...]
它总是打开订单窗口的常规视图。(控制台中没有错误)
有人有什么建议吗?
那太好了!
谢谢您的时间:)
问候
编辑:
嘿,谢谢你到目前为止的回复。
我成功地打开了“批处理”窗口,如下所示:
me.getView('Shopware.apps.Order.view.batch.Window').create({
orderStatusStore: Ext.create('Shopware.apps.Base.store.OrderStatus').load(),
records: orderRecords,
mode: 'multi'
}).show({});
但现在的问题是,批处理的事件没有应用到表单上的按钮上。。。
我仍然在尝试出错。许多Shopware ExtJS子应用程序可以从另一个应用程序中执行,并且使用某些参数,这与您尝试的方式完全相同。不幸的是,我在Order插件中没有看到任何可能导致期望结果的代码。通过阅读主控制器的
init
函数->Shopware.apps.Order.controller.main,您可以看到Shopware子应用程序支持哪些操作/参数
例如,来自客户插件的Shopware.apps.Customer.controller.Main
接受一个操作,就像您正在使用它一样–它正在检查:
if (me.subApplication.action && me.subApplication.action.toLowerCase() === 'detail') {
if (me.subApplication.params && me.subApplication.params.customerId) {
//open the customer detail page with the passed customer id
...
在Order插件中有类似的代码,但它只需要一个Order ID并打开相应订单的详细信息页面。它显然没有批处理窗口的功能
您可能能够以某种方式重用这个类,但这可能需要大量的代码来适应实际的Order插件。如果您真的需要这个功能,您可以仔细阅读Order插件是如何初始化窗口及其依赖项的,然后试一试
我更愿意在这个场景中开发一个轻量级模块(它是后端窗口中的一个框架,只在PHP/Smarty/HTML中使用控制器和模板视图)