Magento - 在Review表单中添加自定义字段

时间:2012-01-18 11:18:42

标签: php zend-framework magento

我期待创建一个自定义模块,该模块添加一个输入字段,以便在评论表单中收集“电子邮件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>

我已经重写的每个核心文件都是从原始的Review Model文件和Adminhtml / Block / Review Edit文件中扩展而来的。我的代码只是在我的代码中使用额外的'email'字段粘贴了相同的代码

我现在手动在数据库中添加了字段,并在base / defaut / review / form.phtml中添加了输入字段,但仍然没有将数据保存在表中。

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

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

1 个答案:

答案 0 :(得分:0)

在这里查看这个答案:

Add custom fields in review form

你应该使用upvoted,而不是标记为答案的那个;它修改了核心文件,这绝不是一个好主意。