Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento-在审阅表单中添加自定义字段_Php_Zend Framework_Magento - Fatal编程技术网

Php Magento-在审阅表单中添加自定义字段

Php Magento-在审阅表单中添加自定义字段,php,zend-framework,magento,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”,但仅限于来宾客户

我知道这可能需要重写一些核心模块,如“/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
这是my 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模型文件和Adminhtml/Block/Review编辑文件扩展而来的。我复制粘贴了相同的代码,只是在代码中添加了额外的“email”字段

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

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


不知道我做错了什么

在这里查看这个答案:


你应该使用向上投票的答案,而不是标记为答案的答案;它修改核心文件,这从来都不是一个好主意。

有人对此有什么建议吗?我对如何着手做这件事有一个模糊的想法,但我不完全确定。如果有人能给出一张路线图,说明如何着手做这件事就好了?