- Предупреждение администратору:
Системный класс «wishlist/customer_sidebar» типа «block» перекрывают конфликтующие между собой классы: Sns_Ajaxcart_Block_Wishlist_Customer_Sidebar [используется] Df_Wishlist_Block_Customer_Sidebar
- Источник предупреждения: модуль «Рекомендации администратору»
- Контекст: конфликт возникает после установки оформительской темы «ThemeForest SNS Xsport»
Описание способа устранения проблемы:
Классы Sns_Ajaxcart_Block_Wishlist_Customer_Sidebar и Df_Wishlist_Block_Customer_Sidebar не перекрывают один и те же метод родительского системного класса Mage_Wishlist_Block_Customer_Sidebar.
Это позволяет решить конфликт стандартным способом: изменив иерархию наследования.
Если один из конфликтующих классов — класс Российской сборки Magento (имя начинается с «Df_»), то, как правило, именно его рекомендуется делать родительским классом: при таком подходе правки делаются вне Российской сборки Magento и не перетираются при обновлении Российской сборки Magento.
Конкретная инструкция по устранению проблемы:
- Изменить иерархию наследования:
- Файл: app/code/local/Sns/Ajaxcart/Block/Wishlist/Customer/Sidebar.php
- Строка: 35
- Что найти:
Sns_Ajaxcart_Block_Wishlist_Customer_Sidebar extends Mage_Wishlist_Block_Customer_Sidebar
- На что заметить:
Sns_Ajaxcart_Block_Wishlist_Customer_Sidebar extends Df_Wishlist_Block_Customer_Sidebar
- Файл: app/code/local/Sns/Ajaxcart/Block/Wishlist/Customer/Sidebar.php
- Теперь после удаления кэша предупреждение должно пропасть.
Обратите внимание, что в данном случае не требуется удалять директиву rewrite, потому что наши изменения не привели к изменению активного (используемого для перекрытия) класса, это по-прежнему класс Sns_Ajaxcart_Block_Wishlist_Customer_Sidebar.
В такой ситуации Российская сборка Magento «знает», что конфликтующие классы теперь находятся в родственном отношении родитель-сын, и не считает такую ситуацию конфликтом, потому что класс-сын (Sns_Ajaxcart_Block_Wishlist_Customer_Sidebar) наследует программную реализацию класса-отца.