Укажите обновления макета для конкретной категории без использования панели администрирования Magento. - PullRequest
5 голосов
/ 16 мая 2011

Есть ли способ указать обновление макета для конкретной категории (например, с помощью идентификатора категории) без необходимости использования панели администратора и установки [Custom Design> Custom Layout Update].

Я уверен, что могу создать модуль, который ищет идентификатор категории и переключает макет на основе этого, но мне было любопытно, было ли присвоение имен или какой-то другой тип соглашения для файлов макета, который допускает этотип гранулярного управления, поскольку Zend Framwork иногда допускает такие соглашения об именах.

Также, возможно, в самом файле catalog.xml есть дополнительные «макеты», которые допускают такую ​​гранулярность, что-то более конкретное, чем <catalog_category_layered />

Ответы [ 2 ]

16 голосов
/ 17 мая 2011

В стандартной установке Magento (1.4.2, но она должна применяться ко всем остальным), Magento выдает следующие дескрипторы раскладки (дескрипторы сообщают Magento, какие макеты обновляют фрагменты XML для загрузки из компоновки пакета)

<default />
<catalog_category_layered_nochildren />
<STORE_default />
<THEME_frontend_default_default />
<catalog_category_view />
<catalog_category_layered />
<CATEGORY_4 />
<customer_logged_out />

Следующий дескриптор макета

<CATEGORY_4 />

создается на основе идентификатора для категории.Это означает, что вы сможете добавить что-то вроде следующего в local.xml или в XML-файл пользовательского макета, добавленный через пользовательский модуль

<layouts>
    <CATEGORY_4>
        <!-- your UPDATE xml here -->
    </CATEGORY_4>
</layouts>
2 голосов
/ 16 мая 2011

При посещении категории каталога Magento загружает ручку для CATEGORY_${ID}, которую вы можете использовать для выполнения именно того, что вы просите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...