0

Catalog > Google SitemapMagento の機能をオーバーライドして、sitemap.xml ファイル (バックエンド)を作成しようとしています。私のオーバーライドの考え方は、すべての製品およびカテゴリ URL をサイトマップに含める必要はないということです。製品またはカテゴリのカテゴリ パスを含めて含めるかどうかを決定する必要があります。

これが私がしたことです。これをモジュールの config.xml に追加しました。

...
<global>
    ...
    <models>
        ...
        <sitemap>
            <rewrite>
                <sitemap>Company_Module_Model_Sitemap</sitemap>
            </rewrite>
        </sitemap>
        ...
    </models>
    ...
</global>
...

クラスCompany_Module_Model_Sitemapは適切にオーバーライドされていますが、目標を達成するにはリソース モデルもオーバーライドする必要があることが判明したため、config.xml ファイル (models-tag の間) に以下を追加しました。

<sitemap_resource>
    <rewrite>
        <sitemap>Company_Module_Model_Sitemap_Resource_Catalog_Category</sitemap>
    </rewrite>
</sitemap_resource>

Now it starts to go wrong.. It somehow won't even load the backend grid anymore, navigating to the backend page of Google Sitemap yields the following error:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'sitemap_id' in 'order clause'

Curently, the only content of the Company_Module_Model_Sitemap_Resource_Catalog_Category class is the following:

class Company_Module_Model_Sitemap_Resource_Catalog_Category
     extends Mage_Sitemap_Model_Resource_Catalog_Category { }

So finally, my question: how to correctly override the Mage_Sitemap_Model_Resource_Catalog_Category class in Magento?

4

1 に答える 1

1

ああ!気にしないでください、私は自分でエラーを見つけました。これ:

<sitemap_resource>
    <rewrite>
        <sitemap>Company_Module_Model_Sitemap_Resource_Catalog_Category</sitemap>
    </rewrite>
</sitemap_resource>

これである必要があります:

<sitemap_resource>
    <rewrite>
        <catalog_category>Company_Module_Model_Sitemap_Resource_Catalog_Category</catalog_category>
    </rewrite>
</sitemap_resource>
于 2013-04-26T14:23:35.270 に答える