Почему MAGE_CATALOG_BLOCK_LAYER_FILTER_PRICE не переопределяется в живом сайте?
-
16-10-2019 - |
Вопрос
Я работаю с Magento EE 1.12.0.0
В одном из моих модулей у меня есть переопределенный mage_catalog_block_layer_filter_price, и он отлично работает в моем Localhost, но когда я устанавливаю тот же модуль на моем живом сайте, он не работает.
Это означает
Все файлы получают переопределение, кроме "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
На самом деле мой живой сайт использует 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 в моем блоке
Другие советы
Убедитесь, что вы правильно написали имя и папки. Royal/Filters/Block/Catalog/Layer/Filter/Price.php
. Анкет Если ваша локальная машина находится в Windows (то есть нечувствителен к именам файлов), а сайт Live находится на Linux (чувствительный к случаю), вы можете получить такие проблемы. Проверьте папки журнала. Также проверьте это, есть другое расширение, переопределяющее один и тот же блок.
РЕДАКТИРОВАТЬ
Magento EE имеет набор блоков для фильтра слоя. Может быть, один из них используется в вашем случае. Вот пример: Enterprise_Search_Model_Catalog_Layer_Filter_Price
.
Активируйте подсказки пути шаблона с именами классов блоков, и посмотрите, какой тип блока используется для отображения фильтра цен.
Вполне возможно, что у вас есть расширение на удаленном хосте, которого у вас нет локально, и это расширение также переопределяется Mage_Catalog_Block_Layer_Filter_Price
.
В этом случае решение (хотя не совсем приятно) может заключаться в том, чтобы продлить класс этого расширения вместо этого.