IT-Storm

Хороший программист всегда смотрит и направо, и налево прежде чем перейти улицу с односторонним движением

Menu

Magento 2: core layouts & blocks (основные макеты и блоки)

Magento 2: core layouts & blocks (основные макеты и блоки)

Теперь, когда мы знаем, как формируется общий каркас страниц, мы можем погрузиться немного глубже и узнать о макетах и ​​блоках. Если page layouts (макеты страниц) образуют общий каркас с контейнерами, то regular layouts (обычные макеты) как правило служат для размещения блоков контента внутри своих контейнеров.

XML-файлы regular layouts (обычных макетов) в отличии от макетов страниц, создаются в каталогах layout а не в каталогах page_layout.

В этом же модуле Magento_Theme давайте откроем его каталог layout , так как именно здесь определяется основной (core) макет страниц Magento.

Файл default.xml загружается для всех макетов в Magento. Отметим, что он также может строиться поверх\на основе других макетов, как и макеты страниц, подтягивая связанный XML-код других макетов к собственному.

В этом файле добавляются некоторые новые узлы, но в основном это referenceContainer и block узлы. referenceContainer явно ссылается на контейнер, обычно это один из узлов <container>, определенных в page layout макете страницы.
Например,

<referenceContainer name="after.body.start">
ссылается на узел контейнера, определенный в page layout empty.xml. (переключиться назад)

Затем в этот контейнер добавляются узлы <block>. Повторюсь, контейнеры сами по себе ничего не делают, но как только в контейнеры добавляются блоки, контейнер отображает эти блоки.

Все узлы <block> имеют имя name, необязательный для блока класс class, который управляет тем, как он отображается, и другие необязательные атрибуты, такие как template, который отображает связанный шаблон PHTML. Передавать дополнительные данные в блок, можно также через узлы <argument>, но об этом мы узнаем немного позже.

Блоки намного мощнее, контейнеров. У них могут быть разные типы, которые влияют на то, как блок управляется и отображается. Например, у вас может быть стандартный phtml шаблон, который выводит HTML, а блок (который содержит данный шаблон) управляет элементами на странице, такими как HTML заголовки JavaScript и CSS, текстовыми списками, которые могут выводить список текстовых элементов и так далее.
 

Magento 2