0

独自のエンティティを特定の Magento モジュールの名前空間に導入したいと考えています。たとえば、呼び出すことができるようにしたいと考えています。

Mage::getModel('catalog/brand')->load(1);

ブランドは現在、カタログ モジュールに含まれているモデルではありません。コア ファイルを変更したくはありませんし、Mage フォルダーをローカル ディレクトリに追加するだけでコアをハッキングしたくもありません。

おそらく、これに似た名前空間構成ファイル内の構文を考えていました。

<models>
    <catalog>
        <args>
            <modules>
                <AJW_Catalog before="Mage_Catalog">AJW_Catalog</AJW_Catalog>
            </modules>
        </args>
    </catalog>
    <ajw_catalog>
        <class>AJW_Catalog_Model</class>
    </ajw_catalog>
</models>

しかし、うまくいかないようです。これをどのように達成できるか知っている人はいますか?

4

2 に答える 2

0

これは可能な修正かもしれません (脳のおなら) Customnamespace_Catalog という名前のモジュールを作成し、デフォルトの mage モジュールに存在しないノードでカタログ モジュールを書き換えます。

<?xml version="1.0"?>
<config>
    <modules>
        <Namespace_Catalog>
            <version>0.1.0</version>
        </Namespace_Catalog>
    </modules>
    <global>
        <models>
            <catalog>
                <rewrite>
                    <brand>Namespace_Brand_Model_Brand</brand>
                </rewrite>
            </catalog>
        </models>
    </global>
</config>

追加のモジュールが続きます。

<?xml version="1.0"?>
<config>
    <modules>
        <Namespace_Brand>
            <version>0.1.0</version>
        </Namespace_Brand>
    </modules>
    <global>
        <models>
            <brand>
                <class>Namespace_Brand_Model</class>
            </brand>
        </models>
    </global>
  </config>

これにより、Mage::getModel('catalog/brand') を呼び出すことができます

echo get_class(Mage::getModel('catalog/brand'); // Namespace_Brand_Model_Brand
于 2013-10-12T01:52:17.597 に答える