Magento 在审阅表单中添加自定义字段

Magento 在审阅表单中添加自定义字段,magento,magento-1.5,Magento,Magento 1.5,我期待着创建一个自定义字段“Email Id”&在审阅表单中创建一个下拉列表 我试过这一次,但没有保存数据,它只是显示字段 app\code\core\Mage\Review\Model\Mysql4\Review.php protected function _afterSave(Mage_Core_Model_Abstract $object) { $detail = array( 'title' => $object->getTitle(), 'detail' => $o

我期待着创建一个自定义字段“Email Id”&在审阅表单中创建一个下拉列表

我试过这一次,但没有保存数据,它只是显示字段

app\code\core\Mage\Review\Model\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
);
现在,在数据库的review_detail表中添加电子邮件,fname也可以转到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'
));

我终于解决了。。。 打开 app\code\core\Mage\Review\Model\Resource\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
);
您将在第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
);

就这样快乐编码

我终于解决了它。。。 打开 app\code\core\Mage\Review\Model\Resource\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
);
您将在第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
);

就这样快乐编码

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

在模块的config.xml中,添加模型重写,如下所示:

<global>
    <models>
        <review_mysql4>
            <rewrite>
                <review>[[Your Company]]_[[Your Module]]_Model_Review</review>
            </rewrite>
        </review_mysql4>
    </models>
    ...
</global>
备注:要在magento review_详情表中添加新字段:

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

修改法师核心类有点吓人,以后升级法师核心类会比较困难。您可以通过自己的自定义模块重写特定类。如果要设置,请参阅模块创建者

在模块的config.xml中,添加模型重写,如下所示:

<global>
    <models>
        <review_mysql4>
            <rewrite>
                <review>[[Your Company]]_[[Your Module]]_Model_Review</review>
            </rewrite>
        </review_mysql4>
    </models>
    ...
</global>
备注:要在magento review_详情表中添加新字段:

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

我应该使用什么来替代其他类?我应该使用什么来替代其他类?这是在添加自定义字段,但当提交的表单未存储在数据库中时:正如anshuman所说,永远不要将其用作解决方案。编辑核心文件是一个非常糟糕的做法,在magento更新期间将是一个很难解决的问题。这是添加自定义字段,但当提交的表单未存储在数据库中时:正如anshuman所说,永远不要将其用作解决方案。编辑核心文件是一个非常糟糕的做法,在magento更新期间将是一个很难解决的问题。