2

我正在尝试在 magento 的产品评论中添加一个额外的文本字段。看起来这可能需要存在于“review_detail”表中,但除了在数据库中创建列并将字段添加到模板文件之外,我不确定如何添加此字段以便将其集成到审查制度。谁能让我朝着正确的方向开始?

4

2 回答 2

1

我在评论表单中添加了 2 个额外字段,只需转到 frontend\base\default\template\review/form.phtml 添加两个字段作为其他文本字段。

现在去 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'
));

我希望现在您可以在评论表单中添加额外的字段。

谢谢

于 2012-04-09T11:32:20.207 回答
0

对于“无法发布评论”错误,您需要在 app\code\core\Mage\Review\controllers\ProductController.php 中的函数 _cropReviewData 中添加这两个新字段

protected function _cropReviewData(array $reviewData)
{
    $croppedValues = array();
    $allowedKeys = array_fill_keys(array('detail', 'title', 'nickname', 'email', 'fname), true);

    foreach ($reviewData as $key => $value) {
        if (isset($allowedKeys[$key])) {
            $croppedValues[$key] = $value;
        }
    }

    return $croppedValues;
}

我希望这将有所帮助。

于 2016-10-07T19:34:39.790 回答