Переопределение Google Sitemap Magento: как переопределить Mage_Sitemap_Model_Resource_Catalog_Category?

Я пытаюсь переопределить функциональность 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?


person T.S.    schedule 26.04.2013    source источник


Ответы (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>
person T.S.    schedule 26.04.2013