Extjs: добавление поля в таблице заказов
        Добрый день!
Подскажите, пожалуйста, как добавить с помощью MODX-плагина элемент в контекстное меню в таблице заказов Минишопа? По-умолчанию, там Изменить и Удалить. joxi.ru/52azjXgu4dzBZA
1. Я создал плагин msOrderAddPrint, повесил его на событие msOnManagerCustomCssJs
Написал в нем код:
Если править исходный код файла /assets/components/minishop2/js/mgr/orders/orders.grid.js, то все работает:
    
    
                                                                                
            Подскажите, пожалуйста, как добавить с помощью MODX-плагина элемент в контекстное меню в таблице заказов Минишопа? По-умолчанию, там Изменить и Удалить. joxi.ru/52azjXgu4dzBZA
1. Я создал плагин msOrderAddPrint, повесил его на событие msOnManagerCustomCssJs
Написал в нем код:
<?php
switch ($modx->event->name) {
    
  case 'msOnManagerCustomCssJs':
  if ($page != 'orders') return;
  $modx->controller->addHtml("
          <script type='text/javascript'>
              Ext.ComponentMgr.onAvailable('minishop2-grid-orders', function(){
		Что здесь писать?
              });                
          </script>");
  break;
} Если править исходный код файла /assets/components/minishop2/js/mgr/orders/orders.grid.js, то все работает:
Ext.extend(miniShop2.grid.Orders, miniShop2.grid.Default, {
    getFields: function () {
        return miniShop2.config['order_grid_fields'];
    },
    
    
    getMenu: function (grid, rowIndex) {
        var ids = this._getSelectedIds();
        var row = grid.getStore().getAt(rowIndex);
        var menu = miniShop2.utils.getMenu(row.data['actions'], this, ids);
        //var menu = [];
        menu.push({
          text: 'Печать'
          ,handler: function () {
                window.open('http://www.example.com?ReportID=1', '_blank');
            }
        });
        this.addContextMenuItem(menu);
    }
........
});А что писать в плагине? Не хочется править исходники js. Или через плагин криво делать?    Комментарии: 3
                примерно так
                    Ext.override(miniShop2.grid.Orders , {
    getMenu: function (grid, rowIndex) {
        var ids = this._getSelectedIds();
        var row = grid.getStore().getAt(rowIndex);
        var menu = miniShop2.utils.getMenu(row.data['actions'], this, ids);
        menu.push({
          text: 'Печать'
          ,handler: function () {
                window.open('http://www.example.com?ReportID=1', '_blank');
            }
        });
        this.addContextMenuItem(menu);
    }
});            
                Володя, большое спасибо. Помогло.            
                    
                пожалуйста.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.