添加在评审表自定义字段(Add custom fields in review form)

2019-06-23 12:16发布

我期待着创建一个自定义字段的电子邮件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数据库中的表也去应用程序\代码\核心\法师\ Adminhtml \块\评论\编辑\ 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'
));

Answer 1:

修改法师核心类是有点吓人,这将是难以提升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();


Answer 2:

最后,我已经解决了它...打开应用程序\代码\核心\法师\评论\型号\资源\ 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
);

这就是它没有更多.... :)快乐编码



文章来源: Add custom fields in review form