首页 文章

在评论表单中添加自定义字段

提问于
浏览
1

我期待在“评论”表单中创建自定义字段“电子邮件ID”和“一个”下拉列表 .

我试过这个,但没有保存数据,它只是字段

应用程序\代码\核心\法师\评论\型号\ Mysql4 \ Review.php

protected function _afterSave(Mage_Core_Model_Abstract $object)
{
$detail = array(
'title' => $object->getTitle(),
'detail' => $object->getDetail(),
'nickname' => $object->getNickname(),
'email' => $object->getEmail(), // New field 1
'fname' => $object->getFname(), // New field 2
);

现在添加电子邮件,fname在数据库的review_detail表中也转到app \ code \ core \ Mage \ Adminhtml \ Block \ Review \ Edit \ Form.php也添加:

$fieldset->addField('fname', 'text', array( // New field 2
'label' => Mage::helper('review')->__('First Name'),
'required' => true,
'name' => 'fname'
));

$fieldset->addField('email', 'text', array( // New field 1
'label' => Mage::helper('review')->__('Email'),
'required' => true,
'name' => 'email'
));

之前

$fieldset->addField('nickname', 'text', array(
'label' => Mage::helper('review')->__('Nickname'),
'required' => true,
'name' => 'nickname'
));

2 回答

  • 6

    修改Mage核心类有点吓人,将来很难升级magento核心类 . 您可以通过自己的自定义模块覆盖特定的类(如果要设置模块,请参阅模块创建者)

    模块的config.xml,添加模型重写如下:

    <global>
        <models>
            <review_mysql4>
                <rewrite>
                    <review>[[Your Company]]_[[Your Module]]_Model_Review</review>
                </rewrite>
            </review_mysql4>
        </models>
        ...
    </global>
    

    并且指定的类将从您要覆盖的Magento核心类扩展:

    class [[Your Company]]_[[Your Module]]_Model_Review
        extends Mage_Review_Model_Mysql4_Review
    {
        protected function _afterSave(Mage_Core_Model_Abstract $object)
        {
         .... 
        }
    }
    

    PS . 在magento review_detail表中添加新字段:

    $installer = $this;
    $installer->startSetup();
    $installer->run("ALTER TABLE review_detail ADD COLUMN email VARCHAR(255) NULL");
    $installer->endSetup();
    
  • 2

    最后我已经解决了......打开 app\code\core\Mage\Review\Model\Resource\Review.php

    你会发现这个代码约150

    protected function _afterSave(Mage_Core_Model_Abstract $object)
    {
    $detail = array(
    'title' => $object->getTitle(),
    'detail' => $object->getDetail(),
    'nickname' => $object->getNickname(),
    );
    

    添加要添加的新两个字段 .

    protected function _afterSave(Mage_Core_Model_Abstract $object)
    {
    $detail = array(
    'title' => $object->getTitle(),
    'detail' => $object->getDetail(),
    'nickname' => $object->getNickname(),
    'email' => $object->getEmail(), // New field 1
    'fname' => $object->getFname(), // New field 2
    );
    

    多数民众赞成...... ....快乐的编码

相关问题