我正在尝试覆盖Magento的功能,以便在后端创建一个sitemap.xml文件(Catalog > Google Sitemap
)。
我的覆盖的想法是,并非所有产品和类别URL都应包含在站点地图中,我需要产品或类别的类别路径来确定是否包含它。
所以这就是我所做的,我把它添加到我的模块的config.xml:
...
<global>
...
<models>
...
<sitemap>
<rewrite>
<sitemap>Company_Module_Model_Sitemap</sitemap>
</rewrite>
</sitemap>
...
</models>
...
</global>
...
类Company_Module_Model_Sitemap
被覆盖得很好,但事实证明我还需要覆盖资源模型才能实现我的目标,所以我将以下内容添加到config.xml文件中(模型之间)标记):
<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
类?
答案 0 :(得分: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>