【问题标题】:Magento add a column to backend newsletter gridviewMagento 向后端时事通讯 gridview 添加一列
【发布时间】:2011-02-05 00:39:25
【问题描述】:

在 magento 系统中,我将 subscriber_firstnamesubscriber_lastname 列添加到 newsletter_subscriber db 表中。

在 magento 的管理区域,我希望显示 Newsletter>Newsletter Subscribers 网格表:

  • 客户名字如果存在,否则显示newsletter_subscriber.subscriber_firstname如果存在,否则什么都不显示
  • 客户姓氏如果存在,否则显示newsletter_subscriber.subscriber_lastname,如果存在则不显示

我需要编辑哪些 magento 文件才能完成这项工作?我该如何编辑文件以使其正常工作?

【问题讨论】:

    标签: php magento admin


    【解决方案1】:

    app/code/core/Mage/Adminhtml/Block/Newsletter/Subscriber/Grid.php

    您需要根据subscriber_firstname 或subscriber_lastname 是否有值来确定此条件:

        $this->addColumn('subscribername', array(
            'header'    => Mage::helper('newsletter')->__('Subscriber First Name'),
            'index'     => 'subscriber_firstname',
            'default'   =>    '----'
        ));
    

    另外,请确保复制核心文件而不是直接编辑它们!

    【讨论】:

      【解决方案2】:

      快速简便的解决方案是创建列渲染并根据订阅者类型选择正确的字段,例如

      app/code/local/Mage/Adminhtml/Block/Newsletter/Subscriber/Renderer/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;
          }
      }
      

      然后将您的渲染添加到订阅者网格类的本地副本 app/code/local/Mage/Adminhtml/Block/Newsletter/Subscriber/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

      【讨论】:

        猜你喜欢
        • 2012-01-11
        • 1970-01-01
        • 2018-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-01
        相关资源
        最近更新 更多