gpt4 book ai didi

Magento - 如何将自定义渲染添加到订单网格中的自定义列?

转载 作者:行者123 更新时间:2023-12-01 00:51:33 24 4
gpt4 key购买 nike

对于 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'),
);
}
}

最佳答案

我使用了一种更简单的颜色方法。
首先,我覆盖本地文件夹上的核心网格:

app/code/local/Mage/Adminhtml/Block/Sales/Order/Grid.php

然后我添加了我的自定义列并向其中添加了渲染器属性。
       $this->addColumn('fee_amount', array(
'header' => Mage::helper('sales')->__('Amount to be Paid Later'),
'index' => 'fee_amount',
'filter_index'=>'fee_amount',
'type' => 'currency',
'currency' => 'base_currency_code',
'width' => '80px',
'renderer' => 'Mage_Adminhtml_Block_Sales_Order_Renderer_Red',

));

然后在下创建Red.php
app/code/local/Mage/Adminhtml/Block/Sales/Order/Renderer/Red.php

在 red.php 上,我添加了以下内容:
class Mage_Adminhtml_Block_Sales_Order_Renderer_Red extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
public function render(Varien_Object $row)
{
$value = $row->getData($this->getColumn()->getIndex());

return '<div style="color:#FFF;font-weight:bold;background:#F55804;border-radius:8px;width: 40%;margin-left: 40px;">$'.number_format( $value , 2).'</div>';


}
}

关于Magento - 如何将自定义渲染添加到订单网格中的自定义列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31020342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com