Не могли бы вы мне помочь? Я пытаюсь добавить новый столбец в сетку заказов в админе с помощью наблюдателей. есть мой 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». Любые идеи, почему коллекция для этого блока не обновлялась? Благодарю.
Спасибо за отличную работу! Однако это не похоже на фильтрацию или сортировку добавленного столбца. – user1240207
Зависит от того, как вы добавляете столбец. Если вы не можете заставить его работать, откройте проблему - проекты выглядят неважно, но если мы найдем время, мы проверим его. –