質問

私はコラムを追加しました~ review_detail 表i.e view_type を通じて PhpMyAdmin および割り当てデフォルト値 0 すべてのレビューします。

私を使用することにより、同じカラム フィルタリングAll reviews グリッドを訪問することができから Catalog -> Reviews and Ratings -> Customer Reviews -> All Reviews.

のためのテスト目的で、私を変えるのは、 core/Mage ファイル Mage/Adminhtml/Block/Review/Grid.php --- line ~ 130:

    $this->addColumn('view_type', array(
        'header'        => Mage::helper('review')->__('View type'),
        'align'         => 'left',
        'width'         => '100px',
        'filter_index'  => 'rdt.view_type',
        'index'         => 'view_type',
        'type'          => 'text',
        'truncate'      => 50,
        'escape'        => true,
    ));

追加により上記のコードは、自分で見ても新たに追加フィルタリングカラム名の All reviews グリッドの管理パネルから出ない人も結構多いですがなフィルターは、デフォルトの値が割り当てらせます。

enter image description here

役に立ちましたか?

解決

の価値を列を結合しない自動コレクションに記載のグリッド
の収集に掲げ、グリッドのインスタンスである Mage_Review_Model_Resource_Review_Product_Collection.
必要なものを変更方法 _joinFields このクラスです。(試験用のコースです。まだ作品で、適切なざるように書き換えのです。

デフォルトの分野ではこの方法:

$this->getSelect()
        ->join(array('rt' => $reviewTable),
            'rt.entity_pk_value = e.entity_id',
            array('rt.review_id', 'review_created_at'=> 'rt.created_at', 'rt.entity_pk_value', 'rt.status_id'))
        ->join(array('rdt' => $reviewDetailTable),
            'rdt.review_id = rt.review_id',
            array('rdt.title','rdt.nickname', 'rdt.detail', 'rdt.customer_id', 'rdt.store_id'));

追加した場合の列の review_detail テーブルを追加する必要がありますので第二 join.のコードは上記のようなものです:

$this->getSelect()
        ->join(array('rt' => $reviewTable),
            'rt.entity_pk_value = e.entity_id',
            array('rt.review_id', 'review_created_at'=> 'rt.created_at', 'rt.entity_pk_value', 'rt.status_id'))
        ->join(array('rdt' => $reviewDetailTable),
            'rdt.review_id = rt.review_id',
            array('rdt.title','rdt.nickname', 'rdt.detail', 'rdt.customer_id', 'rdt.store_id', 'rdt.view_type'));

上記のコードのままの価値観のカスタム列です。

するために仕分け作業に必要なものを変更方法 setOrder 同じクラス Mage_Review_Model_Resource_Review_Product_Collection.

この設定を変更:

        case 'rt.review_id':
        case 'rt.created_at':
        case 'rt.status_id':
        case 'rdt.title':
        case 'rdt.nickname':
        case 'rdt.detail':
            $this->getSelect()->order($attribute . ' ' . $dir);
            break;

この:

        case 'rt.review_id':
        case 'rt.created_at':
        case 'rt.status_id':
        case 'rdt.title':
        case 'rdt.nickname':
        case 'rdt.detail':
        case 'rdt.view_type': //you need to add this 'case'
            $this->getSelect()->order($attribute . ' ' . $dir);
            break;

フィルタリングを行うための変更 addAttributeToFilter 同じクラスです。この設定を変更

        case 'rt.review_id':
        case 'rt.created_at':
        case 'rt.status_id':
        case 'rdt.title':
        case 'rdt.nickname':
        case 'rdt.detail':
            $conditionSql = $this->_getConditionSql($attribute, $condition);
            $this->getSelect()->where($conditionSql);
            break;

この:

        case 'rt.review_id':
        case 'rt.created_at':
        case 'rt.status_id':
        case 'rdt.title':
        case 'rdt.nickname':
        case 'rdt.detail':
        case 'rdt.view_type': //you need to add this 'case'
            $conditionSql = $this->_getConditionSql($attribute, $condition);
            $this->getSelect()->where($conditionSql);
            break;

クマさんの作業が簡単です。こが再織り込2.0にアクセスしてください。

[編集]

を追加するためには新しいカラムとしてオプションカラムを宣言するかのようになります:

$this->addColumn('view_type', array(
    'header'        => Mage::helper('review')->__('View type'),
    'align'         => 'left',
    'width'         => '100px',
    'filter_index'  => 'rdt.view_type',
    'index'         => 'view_type',
    'type'      => 'options',
    'options'   => array(
        0 => Mage::helper('review')->__('Show in home page'),
        1 => Mage::helper('review')->__('Show in product details page')
    ),
));

他のヒント

致命的なエラー:電話での会員機能getBackend()以外のオブジェクトC:\xampp\htdocs\efk\app\code\core\Mage\Eav\Model\Entity\Abstract.php イ816

追加

'filter_index'  => 'rdt.view_type'  // (your newly added column)

addColumn

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top