【发布时间】:2015-09-10 06:55:52
【问题描述】:
对于 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'),
);
}
我添加了一个链接到模型观察者的渲染器(/app/code/local/Atwix/ExtendedGrid/Model/Observer.php),但这不起作用,它只显示一个白页而不是表...
我在哪里做错了? “渲染”功能不能在观察者中?我试图在 /app/code/local/Mage/Adminhtml/Block/Sales/Order (靠近 Grid.php)中创建一个扩展 Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract 的类,但它也不起作用。
更新 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>';
}
}
在 /app/code/local/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'),
);
}
}
【问题讨论】:
-
渲染器在做什么?有什么解释吗?