Если вы разрабатываете расширение для личного использования, которое должно работать только для вашего проекта, построенного на Magento 1.6+, тогда не стоит беспокоиться. Вы должны только переопределить Mage_Catalog_Model_Resource_Category_Flat
, добавив это в config.xml
файл вашего расширения:
<models>
<catalog_resource>
<rewrite>
<category_flat>Namespace_Module_Model_Resource_Category_Flat</category_flat>
</rewrite>
</catalog_resource>
</models>
Если вы создаете расширение и хотите, чтобы оно работало с версией до 1.6, вам также необходимо переопределить Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Flat
класс. В этом случае ваш config.xml
раздел должен выглядеть так:
<models>
<catalog_resource><!--used for 1.6+ -->
<rewrite>
<category_flat>Namespace_Module_Model_Resource_Category_Flat</category_flat>
</rewrite>
</catalog_resource>
<catalog_resource_eav_mysql4><!-- used for versions before 1.6 -->
<rewrite>
<category_flat>Namespace_Module_Model_Resource_Eav_Mysql4_Category_Flat</category_flat>
</rewrite>
</catalog_resource_eav_mysql4>
</models>
Вы должны поместить всю свою логику, Namespace_Module_Model_Resource_Category_Flat
и класс для версий до 1.6 должен выглядеть следующим образом:
class Namespace_Module_Model_Resource_Eav_Mysql4_Category_Flat extends Namespace_Module_Model_Resource_Category_Flat
{
}
Таким образом, обе версии используют один и тот же код.