2012-12-11 3 views
4

Не могли бы вы мне помочь? Я пытаюсь добавить новый столбец в сетку заказов в админе с помощью наблюдателей. есть мой config.xmlКак добавить новый столбец для сортировки сетки с помощью наблюдателей?

<adminhtml> 
     <events> 
      <adminhtml_block_html_before> 
       <observers> 
        <order_grid> 
         <type>model</type> 
         <class>Order_Grid_Model_Observer</class> 
         <method>addItemsColumn</method> 
        </order_grid> 
       </observers> 
      </adminhtml_block_html_before> 
     </events> 
    </adminhtml> 

Там мой код наблюдателя:

class Order_Grid_Model_Observer 
{ 
    public function addItemsColumn($observer) 
    { 
     $_block = $observer->getBlock(); 
     $_type = $_block->getType(); 
     if ($_type == 'adminhtml/sales_order_grid') { 
      $_block->addColumn('total_item_count', array(
       'header'=> Mage::helper('sales')->__('Items'), 
       'width' => '80px', 
       'type' => 'text', 
       'index' => 'total_item_count', 
       'sortable' => false, 
       'filter' => false 
      )); 
      $_block->getColumn('real_order_id') 
       ->setData('filter_index', 'main_table.increment_id'); 

      $collection = $_block->getCollection(); 
      $collection->clear(); 
      $collection->getSelect() 
       ->joinLeft(array('o' => 'sales_flat_order'), 'o.entity_id = main_table.entity_id', array('total_item_count')); 
      $_block->setCollection($collection); 
     } 
    } 
} 

И я почти сделал это, но когда я пытаюсь отсортировать сетку по некоторому полю, я получаю ошибку «Колонок «increment_id» в списке полей неоднозначно ». Это странно, потому что я обновил «filter_index» для поля «increment_id». Любые идеи, почему коллекция для этого блока не обновлялась? Благодарю.

ответ

5

«Мы» (другая группа) реализовала расширение на Magento Hackathon, которое позволяет легко добавлять новые столбцы, переупорядочивать их и удалять столбцы из сетки. Кроме того, вы можете присоединить таблицы к коллекции, чтобы добавить столбцы.

https://github.com/magento-hackathon/GridControl

+0

Спасибо за отличную работу! Однако это не похоже на фильтрацию или сортировку добавленного столбца. – user1240207

+0

Зависит от того, как вы добавляете столбец. Если вы не можете заставить его работать, откройте проблему - проекты выглядят неважно, но если мы найдем время, мы проверим его. –