2017-01-31 8 views
2

나는 사소한 일을하지 않기 위해 가혹하지 않기를 바랍니다. 여기Shopware 5, BatchProcess 창을 Own Plugin에서 엽니 다.

은 우리가 간다 :

나는 이미 특정 기준에 대한 주문을 나열하는 작업 플러그인이 Shopware 5. 에 대한 사용자 정의 플러그인을 개발하는 문제가있다. 이제이 격자 창의 도구 모음에 Button이 필요합니다.

버튼은 이미 상점웨어의 "주문"창에서 사용할 수있는 일괄 처리 창을 열어야합니다.

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

항상 순서 윈도우의 기본보기를 엽니 다. (콘솔에서 오류 없음) 누구나 제안 사항이 있습니까? 그게 좋을거야! 시간에 대한 감사합니다 :)

인사말

편집 : 이봐, 지금까지 답장을 보내 주셔서 감사합니다. 나는이 같은 일괄 처리 창 열 관리 :

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 플러그인에는 코드가 표시되지 않습니다. 당신은 어떤 행동을 볼 수 있습니다/A Shopware SubApplication 메인 컨트롤러의 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

어떻게 든이 클래스를 재사용 할 수는 있지만 실제 주문 플러그인에서 조정해야 할 코드 톤이 될 수 있습니다. 이 기능이 정말로 필요한 경우 주문 플러그인이 창과 종속성을 초기화하고 시도하는 방법을 신중하게 읽을 수 있습니다.

이 시나리오에서는 경량 모듈을 개발하기 위해 차라리 가고 싶습니다. PHP/Smarty/HTML에서 컨트롤러와 템플릿 뷰를 사용하는 백엔드 창 내의 프레임입니다.