2011-10-29 11 views
2

私はmagentoの製品レビューに追加のテキストフィールドを追加しようとしています。これは、おそらく、これは 'review_detail'テーブルに住んでいる必要がありますが、データベース内の列を作成し、テンプレートファイルにフィールドを追加する以外、私はどのようにこのフィールドを追加するかわからないレビューシステム。誰かが私を正しい方向に立ち上げることができますか?マゼンタのレビューに追加のテキストフィールドを追加

答えて

2

レビューフォームに2つの追加フィールドを追加しました。フロントエンド\ base \ default \ template \ review/form.phtmlに移動し、他のテキストフィールドとして2つのフィールドを追加します。

今メイジ\レビュー\モデル\ Mysql4 \ Review.php \アプリの\コード\コアに行く

protected function _afterSave(Mage_Core_Model_Abstract $object) 
{ 
$detail = array(
'title' => $object->getTitle(), 
'detail' => $object->getDetail(), 
'nickname' => $object->getNickname(), 
'email' => $object->getEmail(), // New field 1 
'fname' => $object->getFname(), // New field 2 
); 

は今、データベース内のreview_detailテーブルのfnameにもアプリの\コードに行き、電子メールを追加します\コア\メイジ\ Adminhtml \ブロック\レビュー\編集\ Form.phpも追加します。

$fieldset->addField('fname', 'text', array(// New field 2 
'label' => Mage::helper('review')->__('First Name'), 
'required' => true, 
'name' => 'fname' 
)); 

$fieldset->addField('email', 'text', array(// New field 1 
'label' => Mage::helper('review')->__('Email'), 
'required' => true, 
'name' => 'email' 
)); 

を私は今、あなたが元を追加することを願って

$fieldset->addField('nickname', 'text', array(
'label' => Mage::helper('review')->__('Nickname'), 
'required' => true, 
'name' => 'nickname' 
)); 

の前にトラッキングフィールドをレビューフォームに表示します。

「レビューを投稿することができません」というエラーをありがとう

+0

コアのマゼンタ機能を編集しないでください。代わりに独自のモジュールを作成するか、ローカルのフォルダに同じファイルパスを作成して上書きしてください。 –

+0

この後、私がレビューを書いても、私は製品レビューでそれを見ることはできません。なぜですか? –

+0

app \ code \ core \ Mage \ Review \ Model \ Mysql4 \ Review.phpの代わりにapp \ code \ core \ Mage \ Review \ Model \ Resource \ Review.phpに新しいフィールドを追加する必要があります – DRAJI

0

は、アプリの\コード\コア内の関数_cropReviewDataで、この2つの新しいフィールドを追加する必要があります\メイジ\レビュー\コントローラは\ ProductController.php

protected function _cropReviewData(array $reviewData) 
{ 
    $croppedValues = array(); 
    $allowedKeys = array_fill_keys(array('detail', 'title', 'nickname', 'email', 'fname), true); 

    foreach ($reviewData as $key => $value) { 
     if (isset($allowedKeys[$key])) { 
      $croppedValues[$key] = $value; 
     } 
    } 

    return $croppedValues; 
} 

私はこれが役立つことを望みます。

関連する問題