我期待创建一个自定义模块,其中添加了一个输入字段,以收集‘电子邮件Id’的审查形式,但只为客人客户。
我知道这可能需要重写一些核心模块,如'/code/core/Mage/Review/Model/Mysql4/Review/Product/Collection.php‘和'/code/core/Mage/Review/Model/Mysql4/Review.php’,并编辑块文件和.phtml文件来包含“email”文本字段。
此外,还需要将新字段添加到数据库表中。这个领域应该强制地为客人服务。注册客户不需要在发布评论时输入他们的电子邮件id。
因此,我不知道该如何做以下工作:1)哪些核心文件需要精确重写?2)如何在现有数据库表中添加这个新字段,以便进行“审查”,以便以后的升级不会过写?3)如何确保该字段被来宾客户强制填充?(如果注册客户不填写的话,也可以)
拜托,任何帮助都是非常感谢的。谢谢。
这就是我迄今为止所做的
CM
Review
Block
Review
Edit
Form.php
etc
config.xml
Helper
Data.php
Model
Resource
Review.php
Review
Product
Collection.php这是我的config.xml的内容
<?xml version="1.0"?>
<config>
<modules>
<CM_Review>
<version>0.0.1</version>
</CM_Review>
</modules>
<frontend>
<routers>
<review>
<use>standard</use>
<args>
<module>CM_Review</module>
<frontName>Review</frontName>
</args>
</review>
</routers>
</frontend>
<global>
<blocks>
<adminhtml>
<rewrite>
<review_edit_form>CM_Review_Block_Review_Edit_Form</review_edit_form>
</rewrite>
</adminhtml>
</blocks>
<helpers>
<review>
<rewrite>
<class>CM_Review_Helper</class>
</rewrite>
</review>
</helpers>
<models>
<review>
<rewrite>
<resource_review>CM_Review_Model_Resource_Review</resource_review>
<resource_review_product_collection>
CM_Review_Model_Resource_Review_Product_Collection
</resource_review_product_collection>
</rewrite>
</review>
</models>
</global>
我重写的每个核心文件都是从原始的审查模型文件和Adminhtml/Block/Review Edit文件中扩展出来的,我在代码中添加了额外的“电子邮件”字段,复制粘贴了相同的代码。
现在,我已经在数据库中手动添加了该字段,并在base/defaut/review/form.phtml中添加了输入字段,但它仍然没有将数据保存在表中。
但是,如果我试图通过编辑核心文件来添加这个字段,那么它可以保存客户的电子邮件id,并且工作非常好。
不知道我做错了什么吗?
发布于 2012-12-04 11:15:19
https://stackoverflow.com/questions/8909185
复制相似问题