- Предупреждение администратору:
Системный класс «catalog_resource_eav_mysql4/product_link_product_collection» типа «model» перекрывают конфликтующие между собой классы: Df_Catalog_Model_Resource_Product_Link_Product_Collection [используется] CommerceStack_Recommender_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection
- Источник предупреждения: модуль «Рекомендации администратору»
Описание способа устранения проблемы:
Классы CommerceStack_Recommender_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection и Df_Catalog_Model_Resource_Product_Link_Product_Collection не перекрывают один и те же метод родительского системного класса Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection.
Это позволяет решить конфликт стандартным способом: изменив иерархию наследования.
Если один из конфликтующих классов — класс Российской сборки Magento (имя начинается с «Df_»), то, как правило, именно его рекомендуется делать родительским классом: при таком подходе правки делаются вне Российской сборки Magento и не перетираются при обновлении Российской сборки Magento.
При этом обратите внимание, что класс CommerceStack_Recommender_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection расположен в области кода community, а класс Df_Catalog_Model_Resource_Product_Link_Product_Collection — в области кода local.
По умолчанию система загружает сначала кулассы из области кода community, и только потом классы из области кода local и использует последний по порядку загрузки из конфликтующих классов.
По этой причине по умолчанию система использует класс Df_Catalog_Model_Resource_Product_Link_Product_Collection, а не класс CommerceStack_Recommender_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection.
При назначении класса Df_Catalog_Model_Resource_Product_Link_Product_Collection родительским надо также изменить порядок загузки классов, чтобы система использовала именно класс
CommerceStack_Recommender_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection, который, в свою очеред, станет потомком класса Df_Catalog_Model_Resource_Product_Link_Product_Collection и будет наследовать его реализацию.
Конкретная инструкция по устранению проблемы:
- Изменить иерархию наследования:
- Файл: app/code/community/CommerceStack/Recommender/Model/Resource/Eav/Mysql4/Product/Link/Product/Collection.php
- Строка: 2
- Что найти:
class CommerceStack_Recommender_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection extends Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection
- На что заметить:
class CommerceStack_Recommender_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection extends Df_Catalog_Model_Resource_Product_Link_Product_Collection
- Файл: app/code/community/CommerceStack/Recommender/Model/Resource/Eav/Mysql4/Product/Link/Product/Collection.php
- Изменить порядок загрузки конфликтующих классов:
- Файл: app/etc/modules/CommerceStack_Recommender.xml
- Строка: 4
- Что найти:
<CommerceStack_Recommender> <active>true</active> <codePool>community</codePool> </CommerceStack_Recommender>
- На что заметить:
<CommerceStack_Recommender> <active>true</active> <codePool>community</codePool> <depends> <Df_Catalog/> </depends> </CommerceStack_Recommender>
- Файл: app/etc/modules/CommerceStack_Recommender.xml
- Удалить кэш.