我正在尝试为magento的产品评论添加一个额外的文本字段。看起来这可能需要存在于'review_detail'表中,但除了在数据库中创建列并将字段添加到模板文件之外,我不知道如何添加此字段以便将其集成到审查制度。谁能让我开始朝着正确的方向前进?
答案 0 :(得分:2)
我在评论表单中添加了2个额外字段,只需转到前端\ 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
);
现在添加电子邮件,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'
));
我希望你现在可以在评论表格中添加额外的字段。
由于
答案 1 :(得分:0)
对于"无法发布评论"错误,你需要在app \ code \ core \ Mage \ Review \ controllers \ ProductController.php中的函数_cropReviewData中添加这2个新字段
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;
}
我希望这会有所帮助。