2011-10-29 29 views
2

我正在尝试向magento的产品评论添加其他文本字段。看起来这可能需要住在'review_detail'表中,但除了在db中创建列并将该字段添加到模板文件之外,我不知道如何添加此字段以便将其集成到审查制度。任何人都可以让我开始正确的方向?向magento评论添加其他文本字段

回答

2

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

现在去应用程序\代码\核心\法师\评论\型号\ 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' 
)); 

我希望现在你可以添加前Tra字段在审查的形式。

感谢

+0

永远不要编辑核心Magento功能。通过构建自己的模块或通过在本地文件夹中创建相同的文件路径来覆盖它们。 –

+0

这样做后,即使我写评论,我不能在产品评论中看到它。为什么? –

+0

我们必须在app \ code \ core \ Mage \ Review \ Model \ Resource \ Review.php中添加新的字段,而不是app \ code \ core \ Mage \ Review \ Model \ Mysql4 \ Review.php – DRAJI

0

对于“无法投递的审查”的错误,你需要在应用程序\代码\核心功能_cropReviewData添加这两个新领域\法师\评论\ \控制器ProductController.php

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; 
} 

我希望这会有所帮助。