Magento – переопределение модели не работает в local codePool

Я пытаюсь переопределить класс Layer каталога Magento 1.9, чтобы не работать после долгого времени, чтобы найти ошибку 🙁

Нет ошибок в журналах, модуль работает правильно, кроме перезаписи модели.

приложение / и т.д. / модули / comx_fab.xml:

<?xml version="1.0"?> <config> <modules> <Comx_Fab> <active>true</active> <codePool>local</codePool> <depends> <Mage_Catalog /> </depends> </Comx_Fab> </modules> </config> 

Приложение / код / ​​местные / COMX / Fab / и т.д. / config.xml:

 <?xml version="1.0"?> <config> <modules> <Comx_Fab> <version>0.2.0</version> </Comx_Fab> </modules> <global> <blocks> <catalog> <rewrite> <product_list_toolbar>Comx_Fab_Catalog_Block_Product_List_Toolbar</product_list_toolbar> </rewrite> </catalog> <page> <rewrite> <html_topmenu>Comx_Fab_Page_Block_Html_Topmenu</html_topmenu> </rewrite> </page> </blocks> <models> <catalog> <rewrite> <layer>Comx_Fab_Catalog_Model_Layer</layer> </rewrite> </catalog> </models> </global> </config> 

Приложение / код / ​​местные / COMX / Fab / Каталог / Модель / Layer.php:

 <?php class Comx_Fab_Catalog_Model_Layer extends Mage_Catalog_Model_Layer { /** * Initialize product collection * * @param Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection $collection * @return Mage_Catalog_Model_Layer */ public function prepareProductCollection($collection) { exit('Good!'); } } 

Уже сделано:

  • обновление кеша, папка «кеш» удалена,
  • сравните мой код magento с текущим выпуском magento (без разницы)
  • проверить владельца / chmod

Связано: Magento: как переопределить модель в локальном модуле

Найденный! 🙂

Это конфликты расширения!

Как решить:

  1. Проверить расширение конфликтует с этим свободным модулем пурпурного: http://www.magentocommerce.com/magento-connect/modules-conflict-detector.html
  2. Найдите конфликтующее расширение и используйте одно решение для решения (прочитайте снизу «Как разрешать конфликты?»)
  3. Очистить кэш

В моем случае просто добавьте порядок расширений в функцию «зависит»:

 <depends> <Mage_Catalog /> <Trego_Ajaxfilter /> </depends> 

Как разрешать конфликты? У вас есть 3 варианта разрешения конфликтов:

  1. Объедините код из одного конфликтующего файла в другой и отключите файл config.xml перезаписи.
  2. Выключите переписывание в одном файле config.xml, а затем создайте конфликтующее расширение PHP-файла, расширяющего другое расширение
  3. Используйте возможность сделать одно расширение зависимым от другого. Затем они будут переписаны в этом порядке

Подробнее: http://www.webshopapps.com/blog/2010/11/resolving-magento-extension-conflicts/

Другие, приходящие сюда, могут найти это полезным, особенно если они могут найти модуль, загружаемый в список «Отключить выходные модули»: панель администратора> Конфигурация> Дополнительно> Дополнительно.

В зависимости от того, как вы настраиваете локальную среду, вы, возможно, скопировали файл local.xml в app/etc/local.xml который содержит: <disable_local_modules>false</disable_local_modules>

Это предотвращает запуск чего-либо из локального codePool, в то время как оно все равно будет отображаться в списке «Отключить выходные модули».

Проблема в структуре вашего модуля ….

основная проблема в Cong = путь fig xml и путь к идентификатору модели

 app/code/local/Comx/Fab/Catalog/Model/Layer.php 

Должно быть

 app/code/local/Comx/Fab/Model/Catalog/Layer.php 

Также измените класс пути по пути к файлу

 class Comx_Fab_Catalog_Model_Layer extends Mage_Catalog_Model_Layer { 

к class Comx_Fab_Model_Catalog_Layer extends Mage_Catalog_Model_Layer {

Все модули структуры Path являются неправильными и пути класса. Модифицируйте весь путь к файлу Block

Здесь изменен файл config.xml

 <?xml version="1.0"?> <config> <modules> <Comx_Fab> <version>0.2.0</version> </Comx_Fab> </modules> <global> <blocks> <catalog> <rewrite> <product_list_toolbar>Comx_Fab_Block_Catalog_Product_List_Toolbar</product_list_toolbar> </rewrite> </catalog> <page> <rewrite> <html_topmenu>Comx_Fab_Block_Page_Html_Topmenu</html_topmenu> </rewrite> </page> </blocks> <models> <catalog> <rewrite> <layer>Comx_Fab_Model_Catalog_Layer</layer> </rewrite> </catalog> </models> </global> </config> 

Подробнее о структуре модуля Magento

 http://www.insync.co.in/creating-custom-module-magento/ https://mementia.com/creating-custom-magento-module/ http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/custom_module_with_custom_database_table