2012-01-18 9 views
0

カスタムフィールドを追加してレビューフォームに 'Email Id'を追加するカスタムモジュールを作成することを楽しみにしていますが、Guest Customersのみです。Magento - レビューフォームにカスタムフィールドを追加

これはおそらく、 '/code/core/Mage/Review/Model/Mysql4/Review/Product/Collection.php'や '/ code/core/Mage/Review/Model'のようなコアモジュールを書き直す必要があることは知っています。 /Mysql4/Review.php 'を開き、ブロックファイルと.phtmlファイルを編集して' email 'テキストフィールドを追加します。

また、新しいフィールドもデータベーステーブルに追加する必要があります。そして、このフィールドは、Guest Customersのために強制的にそこにあるべきです。登録済みのお客様は、レビューを投稿する際にメールIDを入力する必要はありません。

私は次のことを行う方法についてはわかりません: 1)どのコアファイルを正確に書き直す必要がありますか? 2)この新しいフィールドを既存のデータベーステーブルに「レビュー」用に追加して、将来のアップグレードでそれを上書きしないようにするにはどうすればよいですか? 3)このフィールドはゲストのお客様が必須であることをどのように確認する必要がありますか? (登録されたお客様が記入してもOKです)

ご協力いただきまして誠にありがとうございます。ありがとう。


これは、これは私の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> 

そして、そのIコアファイルのそれぞれの内容は、私がこれまで行ったこと

CM 
Review 
    Block 
    Review 
     Edit 
     Form.php 
    etc 
    config.xml 
    Helper 
    Data.php 
    Model 
    Resource 
     Review.php 
     Review 
     Product 
      Collection.php 

です元のReview ModelファイルとAdminhtml/Block/Review Editファイルから拡張されています。コピー貼り付けがあります私のコードの余分な「電子メール」フィールドだけで、同じコードが作成されます。

私は手動でデータベースにフィールドを追加し、入力フィールドをbase/defaut/review/form.phtmlに追加しましたが、テーブルにデータを保存しません。

コアファイルを編集してこのフィールドを追加しようとすると、ゲスト顧客の電子メールIDが保存され、完全に正常に動作します。

私が間違っていることを理解できませんか?

+0

これに関する提案はありますか?私はこれを行う方法について曖昧なアイデアを持っていますが、私は完全にはわかりません。もしこれをどうやって進めるのかについての道案内を与える人がいれば? – ivn

答えて

0

はここにこの答えをチェックアウト:

Add custom fields in review form

をあなたがupvoted 1、ない答えとしてマークされたものを使用する必要があります。決して良いアイディアではないコアファイルを変更します。

関連する問題