首页 文章

覆盖Magento的Google Sitemap:如何覆盖Mage_Sitemap_Model_Resource_Catalog_Category?

提问于
浏览
0

我'm trying to override Magento'的功能是创建一个sitemap.xml文件(后端的 Catalog > Google Sitemap ) . 我的覆盖的想法是,并非所有产品和类别URL都应包含在站点 Map 中,我需要产品或类别的类别路径来确定是否包含它 .

所以这就是我所做的,我把它添加到我的模块的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>

现在它开始出错..它不知道甚至不再加载后端网格,导航到Google Sitemap的后端页面会产生以下错误:

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

当然,Company_Module_Model_Sitemap_Resource_Catalog_Category类的唯一内容如下:

class Company_Module_Model_Sitemap_Resource_Catalog_Category
     extends Mage_Sitemap_Model_Resource_Catalog_Category { }

最后,我的问题是:如何正确覆盖Magento中的 Mage_Sitemap_Model_Resource_Catalog_Category 类?

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>
    

相关问题