Я пытаюсь переопределить функциональность 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 (между тегом models):
<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 { }
Итак, наконец, мой вопрос: как правильно переопределить класс Mage_Sitemap_Model_Resource_Catalog_Category
в Magento?