Для веб-сайта Magento я хотел бы показать пользовательские параметры в сетке заказов в backoffice.Magento - Как добавить пользовательский рендеринг в пользовательский столбец в сетке заказов?
В настоящее время я успешно добавил пользовательский столбец в сетку с помощью this guide и this guide, используя модуль, чтобы избежать перезаписи основных классов.
Теперь у меня длинная строка, появляющаяся в столбце, и я хотел бы сериализовать ее, чтобы иметь настраиваемые параметры, но я не могу использовать собственный рендерер.
/app/code/local/Atwix/ExtendedGrid/Helper/Data.php:
public function getProductOptionsColumnParams()
{
return array(
'header' => 'Products Options',
'index' => 'product_options',
'type' => 'text',
'renderer' => array('Atwix_ExtendedGrid_Model_Observer', 'render'),
);
}
Я добавил визуализатор, который связывает с Типовым наблюдателя (/ приложение/код/местные/Atwix/ExtendedGrid/Model/Observer.php), но это не работает, оно отображает только белую страницу вместо таблицы ...
Где я совершил ошибку? Функция «render» не может быть в Observer? Я попытался создать класс, который расширяет Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract в/app/code/local/Mage/Adminhtml/Block/Sales/Order (рядом с Grid.php), но он тоже не работает.
UPDATE 1:
Это не работает, я создал файл /app/code/local/Atwix/ExtendedGrid/Block/Adminhtml/ExtendedGrid/Renderer/Renderer.php
с кодом:
class Atwix_ExtendedGrid_Block_Product extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
public function render(Varien_Object $row) {
$value = $row->getData($this->getColumn()->getIndex());
return '<span style="color:red;">'.$value.'</span>';
}
}
А/приложения/код/местные/Atwix/ExtendedGrid/Helper/Data.php у меня есть этот код:
class Atwix_ExtendedGrid_Helper_Data extends Mage_Core_Helper_Abstract
{
/**
* parameters for addColumnAfter method
* @return array
*/
public function getSkusColumnParams()
{
return array(
'header' => 'SKUs',
'index' => 'skus',
'type' => 'text',
'filter_condition_callback' => array('Atwix_ExtendedGrid_Model_Observer', 'filterSkus'),
);
}
/**
* parameters for addColumnAfter method
* @return array
*/
public function getProductOptionsColumnParams()
{
return array(
'header' => 'Products Options',
'index' => 'product_options',
'type' => 'text',
'renderer' => array('Atwix_ExtendedGrid_Block_Product', 'render'),
);
}
}
Спасибо за ваш ответ, но он не работает, я имею обновил мой вопрос, чтобы показать вам, что я сделал. – NaoDav