Magento: связь между файлами шаблонов и XML-файлом макета - PullRequest
2 голосов
/ 20 сентября 2011

Я вижу, что шаблон выноски (файлы в frontend \ my_package \ default \ template \ callouts) не имеет соответствующего XML-файла макета (frontend \ my_package \ default \ layout).Итак, я подумал, что если у меня есть пустой XML-файл макета по адресу frontend \ my_package \ default \ layout \ callouts.xml, это отключит блок выноски на главной странице Magento.Однако это не работает.

В шаблоне оформления заказа есть файл макета checkout.xml, поэтому создание пустого файла приводит к удалению блока извлечения со страницы, на которую я смотрю.В случае блока извлечения checkout.xml переопределяет то, что вызывается из активного catalog.xml?Я не удаляю соответствующие строки из catalog.xml, но пустой файл checkout.xml отключит этот блок независимо от того.

Я знаю, что удаление соответствующих строк для любых блоков в catalog.xml удаляет / не удаляетзагрузить то, что я хочу, на веб-странице, но я хотел бы выяснить, почему моя попытка «переопределить» выноски не работает.TIA!

Примечание. Кэширование уже отключено.

Ответы [ 2 ]

5 голосов
/ 20 сентября 2011

Краткая версия: все эти XML-файлы объединены в один гигантский XML-файл. Затем, во время каждого запроса, XML внутри определенных тегов верхнего уровня (, и т. Д .; там теги называются дескрипторами) выбираются и объединяются в меньший файл XML. Узлы, оставленные в меньшем XML-файле, представляют собой набор инструкций для создания определенных блоков. Каждый (ну, большинство) блок имеет файл шаблона phtml. Когда вы добавляете что-то в local.xml, вы говорите: «В дополнение к обычным вещам, делайте эти дополнительные вещи». Когда вы заменяете весь файл наподобие catalog.xml, вы говорите "вместо этого мой файл", игнорируйте то, что вы обычно делаете.

Если вас интересует длинная версия, прочитайте Без излишеств Magento Layout , мой бесплатный DRM PDF в системе макетов Magento.

0 голосов
/ 21 сентября 2011

Одним из решений «переопределения» выносок может быть следующее:

/ app / design / frontend / base / default / layout / local.xml

<layout version="0.1.0">
    <default>
        <remove name="left.permanent.callout" />
        <remove name="right.permanent.callout" />
    </default>
</layout>

Примечание: ответы Алана охватываютвсе остальное в вашем вопросе, хотя.

...