在评论表单中添加自定义字段
问题描述:
我期待着创建一个自定义字段'电子邮件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'
));
答
最后我已经解决了它... 打开 应用程序\代码\核心\法师\评论\型号\资源\ 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
);
这就是它没有更多.... :)快乐编码
答
修改法师核心类是有点吓人,这将是难以提升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();
+0
我应该使用什么来代替'
这是添加自定义字段,但如果提交的表单不被存储在数据库:( – 2013-12-05 12:37:39
-1:它的核心文件更改 – anshuman 2014-09-30 13:41:22
正如anshuman说,从来没有使用它作为解决方案编辑核心文件是一个非常糟糕的做法,并且在magento更新期间将会很难解决。 – 2016-05-03 12:04:44