8

Mage_Review_Model_Resource_Review_Summary_Collection を書き直そうとしています。モジュールがアクティブ化されます。折り畳み構造はコアレビューと同じです。

問題はxmlにあるはずです。

私のxmlは次のとおりです。

<?xml version="1.0"?>
<config>
<modules>
    <LM_Review>
        <version>0.1.0</version>
    </LM_Review>
</modules>

<frontend>
    <routers>
        <review>
            <args>
                <modules>
                    <lm_review before="Mage_Review">LM_Review</lm_review>
                </modules>
            </args>
        </review>
    </routers>

    <layout>
        <updates>
            <lm_review>
                <file>lm/review.xml</file>
            </lm_review>
        </updates>
    </layout>

    <translate>
        <modules>
            <LM_Review>
                <files>
                    <default>LM_Review.csv</default>
                </files>
            </LM_Review>
        </modules>
    </translate>
</frontend>

<global>
    <models>
        <review_resource>
            <rewrite>
                <review_summary_collection>LM_Review_Model_Resource_Review_Summary_Collection</review_summary_collection>
            </rewrite>
        </review_resource>
    </models>
</global>
</config>

etc/modules 内の LM_All.xml

<LM_Review>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Review />
            </depends>
</LM_Review>

app/code/local/LM/Review/Model/Resource/Review/Summary/Collection.php の Collection.php

class LM_Review_Model_Resource_Review_Summary_Collection extends Mage_Review_Model_Resource_Review_Summary_Collection {

   public function addStoreFilter($storeId) {
      die('test');
   }

}
4

2 に答える 2

6

あなたの XML は正しいです。上記の XML を配置した状態で、ファクトリ メソッドを呼び出すと、

Mage::getResourceModel('review/review_summary_collection') 

Magento はインスタンス化を試みます。

LM_Review_Model_Resource_Review_Summary_Collection

つまり

  1. Magento がモジュールを認識できない (app/etc/moduleファイルがない、ファイルが非アクティブである、またはファイルが間違ったコード プールを指している)

  2. LM/Review/Model/Resource/Review/Summary/Collection.phpコード プールに にファイルがありません

  3. で定義されたクラスCollection.phpLM_Review_Model_Resource_Review_Summary_Collection

  4. で定義されたクラスCollection.phpは拡張されませんMage_Review_Model_Resource_Review_Summary_Collection

  5. クラス名とパス名のスペルと大文字/小文字を確認してください。これは Magento にとって重要です。

于 2013-04-09T17:17:53.117 に答える
3

問題が見つかりました。resource-model を xml に追加する必要があり、それを書き換えるだけではありません。

<global>
    <models>
        <review>
            <resourceModel>review_resource</resourceModel>
        </review>
        <review_resource>
            <rewrite>
                <review_summary_collection>LM_Review_Model_Resource_Review_Summary_Collection</review_summary_collection>
            </rewrite>
        </review_resource>
    </models>
</global>
于 2013-04-10T09:11:08.523 に答える