2017-01-31 5 views
2

問題を軽くしないように頼りすぎないことを願っています。Shopware 5、BatchProcessウィンドウをOwn Pluginから開きます

ここに私達は行く:

私はShopware 5. 用のカスタムプラグインを開発する問題を抱えている私はすでに一定の基準の注文を一覧表示し、作業のプラグインを持っています。 今、このグリッドウィンドウのツールバーにボタンがあります。

ボタンは、すでにショップウェアのネイティブ「オーダー」ウィンドウで利用可能なバッチ処理ウィンドウを開く必要があります。

Q:グリッドの選択したIDでこのアプリケーションを開くことはできますか?

私が持っているものHERESに

[...] 
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 
      } 
     }); 
    } 
[...] 

それは常にオーダーウィンドウの通常のビューを開きます。 (コンソールにエラーはありません) 誰か提案がありますか? それは素晴らしいでしょう! お時間をありがとう:)

挨拶

EDIT: ねえ、これまでにご返信をお願い致します。 私はこのようなバッチ・プロセス・ウィンドウを開くために管理:私は ...

me.getView('Shopware.apps.Order.view.batch.Window').create({ 
       orderStatusStore: Ext.create('Shopware.apps.Base.store.OrderStatus').load(), 
       records: orderRecords, 
       mode: 'multi' 
      }).show({}); 

しかし、今問題イスト、バッチ処理のためのイベントは、フォーム上のボタンには適用されませんまだ試行錯誤中です。

答えて

1

多くのShopware ExtJSサブアプリケーションは、特定のパラメータを使って別のアプリケーションから実行することができます。残念ながら、Orderプラグインには希望の結果につながるコードはありません。あなたはどのようなアクションを見ることができます/ Shopwareサブアプリケーションは、メインコントローラのinit機能を読むことによってサポートされていparamsは - >Shopware.apps.Order.controller.Main例えばカスタマー・プラグインから

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 
... 

同様のコードがありますが、注文IDを受け取り、対応する注文の詳細ページを開きます。 batch.Window

このクラスは何とか再利用できるかもしれませんが、実際のOrderプラグインから変更する必要があります。この機能が本当に必要な場合は、Orderプラグインがウィンドウとその依存関係をどのように初期化しているかを慎重に読んでみてください。

このシナリオでは軽量モジュールを開発することになります(PHP/Smarty/HTMLでコントローラとテンプレートビューを使用するバックエンドウィンドウ内のフレーム)

関連する問題