Почему MAGE_CATALOG_BLOCK_LAYER_FILTER_PRICE не переопределяется в живом сайте?

magento.stackexchange https://magento.stackexchange.com/questions/4913

Вопрос

Я работаю с 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.

В этом случае решение (хотя не совсем приятно) может заключаться в том, чтобы продлить класс этого расширения вместо этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top