Nếu bạn phát triển một tiện ích mở rộng cho mục đích sử dụng cá nhân được cho là chỉ hoạt động cho dự án xây dựng trên Magento 1.6+ thì không có gì phải lo lắng. Bạn chỉ nên ghi đè Mage_Catalog_Model_Resource_Category_Flat
bằng cách thêm phần này vào config.xml
tệp tiện ích mở rộng của mình:
<models>
<catalog_resource>
<rewrite>
<category_flat>Namespace_Module_Model_Resource_Category_Flat</category_flat>
</rewrite>
</catalog_resource>
</models>
Nếu bạn đang xây dựng một tiện ích mở rộng và bạn muốn nó hoạt động trên phiên bản trước 1.6, bạn cũng cần ghi đè Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Flat
lớp. Trong trường hợp config.xml
này, phần của bạn sẽ trông như thế này:
<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>
Bạn nên đặt tất cả logic của mình vào Namespace_Module_Model_Resource_Category_Flat
và lớp cho các phiên bản trước 1.6 sẽ như thế này:
class Namespace_Module_Model_Resource_Eav_Mysql4_Category_Flat extends Namespace_Module_Model_Resource_Category_Flat
{
}
Bằng cách này, cả hai phiên bản đều sử dụng cùng một mã.