2012-01-18 109 views
0

我期待创建一个自定义模块,其中添加了一个输入字段来收集“评论”表单中的“电子邮件ID”,但仅限于来宾客户。Magento - 在评论表单中添加一个自定义字段

我知道这可能需要重写一些核心模块,如'/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> 

的内容,并且每个核心文件,我已经重写,从原来的Review Model文件和Adminhtml/Block/Review编辑文件扩展它们。我有复制粘贴d与我的代码中额外的'email'字段相同的代码。

我已经在数据库中手动添加了字段,并在base/defaut/review/form.phtml中添加了输入字段,但它仍然不会保存表中的数据。

但是,如果我试图通过编辑核心文件来添加此字段,那么它会保存来宾客户的电子邮件ID并且工作得很好。

无法弄清楚我做错了什么?

+0

有没有人对此有过任何建议?我对如何去做这件事有一个模糊的想法,但我不完全确定。如果只有一个人可以提供一个关于如何去做这件事的路线图? – ivn 2012-01-19 09:41:02

回答

相关问题