在magento系统中,我将subscriber_firstname
和subscriber_lastname
列添加到newsletter_subscriber
db表中。
在magento的管理区域,我想要简报> Newsletter Subscribers网格表显示:
newsletter_subscriber.subscriber_firstname
是否存在,否则显示newsletter_subscriber.subscriber_lastname
是否存在,否则显示我需要编辑哪些magento文件才能使其正常工作?如何编辑文件以使其工作?
答案 0 :(得分:1)
应用程序/代码/核心/法师/ Adminhtml /砌块/新闻/订户/ Grid.php
如果subscriber_firstname或subscriber_lastname具有值,您将要根据此情况进行调整:
$this->addColumn('subscribername', array(
'header' => Mage::helper('newsletter')->__('Subscriber First Name'),
'index' => 'subscriber_firstname',
'default' => '----'
));
另外,请务必复制核心文件,不要直接编辑它们!
答案 1 :(得分:0)
快速简便的解决方案是创建一个列呈现并根据订阅者类型选择正确的字段,例如
应用程序/代码/本地/法师/ Adminhtml /砌块/新闻/订户/渲染器/ FirstName.php
class Mage_Adminhtml_Block_Newsletter_Subscriber_Renderer_FirstName extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract {
public function render(Varien_Object $row) {
$value = '';
if ($row->getData('type') == 2) {
$value = $row->getData('customer_firstname');
}
else {
$value = $row->getData('subscriber_firstname');
}
return $value;
}
}
然后将您的渲染添加到订阅者网格类的本地副本 应用程序/代码/本地/法师/ Adminhtml /砌块/新闻/订户/ Grid.php
$this->addColumn('firstname', array(
'header' => Mage::helper('newsletter')->__('First Name'),
'index' => 'customer_firstname',
'default' => '----',
'renderer' => 'Mage_Adminhtml_Block_Newsletter_Subscriber_Renderer_FirstName'
));
请注意。搜索和排序将不适用于订户名称字段,为了使其工作,您将需要扩展app / code / core / Mage / Newsletter / Model / Mysql4 / Subscriber / Collection.php