2012-01-18 82 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

回答

相關問題