2

magentoの製品レビューにテキストフィールドを追加しようとしています。これは「review_detail」テーブルに存在する必要があるようですが、データベースに列を作成してテンプレートファイルにフィールドを追加する以外に、このフィールドを追加してに統合する方法がわかりません。レビューシステム。誰かが私を正しい方向に始めることができますか?

4

2 に答える 2

1

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

次に、app \ code \ core \ Mage \ Review \ Model \ 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テーブルにemail、fnameを追加し、app \ code \ core \ Mage \ Adminhtml \ Block \ Review \ Edit\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'
));

レビューフォームにフィールドを追加できるようになったことを願っています。

ありがとう

于 2012-04-09T11:32:20.207 に答える
0

「レビューを投稿できません」エラーの場合、app \ code \ core \ Mage \ Review \ controllers\ProductController.phpの関数_cropReviewDataにこの2つの新しいフィールドを追加する必要があります

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;
}

これがお役に立てば幸いです。

于 2016-10-07T19:34:39.790 に答える