Почему цена фильтра блочного слоя каталога Mage не переопределяется на живом сайте?
Я работаю с Magento EE 1.12.0.0
В одном из моих модулей я переопределил Mage_Catalog_Block_Layer_Filter_Price, и он отлично работает на моем локальном хостинге, но когда я устанавливаю тот же модуль на своем живом сайте, он не работает.
Это означает
Все файлы переопределяются, за исключением "royal_filters_block_catalog_layer_filter_price", который расширяет Mage_Catalog_Block_Layer_Filter_Price
маг_каталог_блок_слоя_фильтра_цена
Моя конфигурация файл:
<global>
...
<blocks>
<catalog>
<rewrite>
<layer_state>Royal_Filters_Block_Catalog_Layer_State</layer_state>
<layer_view>Royal_Filters_Block_Catalog_Layer_View</layer_view>
<product_list_toolbar>Royal_Filters_Block_Catalog_Product_List_Toolbar</product_list_toolbar>
<layer_filter_attribute>Royal_Filters_Block_Catalog_Layer_Filter_Attribute</layer_filter_attribute>
<layer_filter_price>Royal_Filters_Block_Catalog_Layer_Filter_Price</layer_filter_price>
</rewrite>
</catalog>
...
</blocks>
...
</global>
Все остальные четыре класса переопределены, но не последний.
Также другие мои модули работают хорошо и нормально.
Мой живой сайт точно такой же, как и на моем локальном хостинге.
Но все еще живой сайт
использует Mage_Catalog_Block_Layer_Filter_Decimal. могу ли я переопределить Mage_Catalog_Block_Layer_Filter_Decimal вместо Mage_Catalog_Block_Layer_Filter_Price, это будет работать?
3 answers
Убедитесь, что вы правильно написали имя файлов и папок. Royal/Filters/Block/Catalog/Layer/Filter/Price.php
. Если ваш локальный компьютер находится в Windows (то есть имена файлов не чувствительны к регистру), а веб-сайт работает в Linux (чувствителен к регистру), у вас могут возникнуть проблемы такого рода. Проверьте также папки журналов. Также проверьте, есть ли другое расширение, переопределяющее тот же блок.
[ РЕДАКТИРОВАТЬ]
В Magento EE есть набор блоков для фильтра слоев. Возможно, один из них используется в вашем случае.
Вот пример: Enterprise_Search_Model_Catalog_Layer_Filter_Price
.
Активировать подсказки пути к шаблону также содержат имена классов блоков, и посмотрите, какой тип блока используется для отображения ценового фильтра.
Вполне возможно, у вас есть расширение на удаленном хосте, которого у вас нет локально, и это расширение также переопределяет Mage_Catalog_Block_Layer_Filter_Price
.
В этом случае решением (хотя и не совсем приятным) может быть расширение класса этого расширения.
На самом деле мой живой сайт использует Mage_Catalog_Block_Layer_Filter_Decimal для ценового фильтра, поэтому переопределил этот класс, чтобы достичь того, что мне нужно.
Мой config.xml
<global>
...
<blocks>
<catalog>
<rewrite>
<layer_state>Royal_Filters_Block_Catalog_Layer_State</layer_state>
<layer_view>Royal_Filters_Block_Catalog_Layer_View</layer_view>
<product_list_toolbar>Royal_Filters_Block_Catalog_Product_List_Toolbar</product_list_toolbar>
<layer_filter_attribute>Royal_Filters_Block_Catalog_Layer_Filter_Attribute</layer_filter_attribute>
<layer_filter_decimal>Royal_Filters_Block_Catalog_Layer_Filter_Decimal</layer_filter_decimal>
</rewrite>
</catalog>
...
</blocks>
...
</global>
И я расширяю Mage_Catalog_Block_Layer_Filter_Decimal в своем блоке