Структурные блоки и блоки содержимого в Мадженто – ч.2
В предыдущем уроке мы начали рассматривать эту важную и объемную тему. В сегодняшнем уроке мы продолжим изучать структурные блоки в Magento и рассмотрим их синтаксис, а также некоторые примеры использования.
Синтаксис обновления макета
Обновления пользовательского макета могут быть задействованы для страниц категорий, страниц товаров, и любых пользовательских CMS-страниц, для достижения таких результатов как:
<block> — Создание нового блока
<reference> — Обновление существующего контента
<action> — Назначение действия для блоков
<remove> — Удаление блоков
Любые изменения в макете задействуются, когда связанный объект — это может быть либо товар, категория, или CMS-страница, — становится активным во фронтенде интернет-магазина.
Нестандартные инструкции по обновлению макета образуются XML-тегами. Как и в обычном XML, каждый тег должен быть либо самозакрывающимся, либо закрытым, как показано в следующих примерах:
<tag attribute="value" /> <tag attribute="value"> ... </tag>
<block>
Создает новый блок в текущем контексте. Вложенность макета определяет порядок инициализации и расположения блоков на странице.
Синтаксис
Имя атрибута | Значение |
type | block class path Идентификатор пути класса, который соответствует классу блока (например, cms/block). |
name | block name identifier Имя, которое может быть использовано для адреса блока – идентификатор. Если вы создаете новый блок с таким же именем, вновь созданный блок заменяет ранее существующий блок. |
before | block name | ‘-‘ Используется для позиционирования блока перед блоком с именем, указанным в значении. Если используется значение «-«, блок располагается перед всеми другими родственными блоками. |
after | block name | ‘-‘ Используется для позиционирования блока после блока с именем, указанным в значении. Если используется значение «-«, блок располагается после всех других родственных блоков. |
template | template filename Имя файла шаблона, который используется для конкретного типа блока. |
as | block alias Алиас, с помощью которого шаблон вызывает блок, в котором назначен этот атрибут. Иногда обязательно нужно указывать алиас (псевдоним) для конкретного типа блока. |
<reference>
Изменяет контекст для всех включенных инструкций ранее определенного блока.
Синтаксис
Имя атрибута | Значение |
name | block name Имя определенного ранее блока. |
<action>
Используется для доступа к API блока, другими словами, вызывает публичные методы блока. Он используется для настройки выполнения определенного метода при генерации блока.
Синтаксис
Имя атрибута | Значение |
method | block method name Имя публичного метода блока, который вызывается во время генерации блока. |
<remove>
Удаляет существующий блок из макета.
Синтаксис
Имя атрибута | Значение |
name | block name Имя блока, который нужно удалить. |
<extend>
Эта инструкция выполняет окончательные изменения в блоках, которые уже являются частью макета. Каждый атрибут в инструкции <block>, за исключением имени блока – подлежит изменению. Кроме того, специальный родительский атрибут может быть использован для изменения родителя блока. Проще говоря, укажите имя нового родительского блока в инструкции <extend>, и родительський блок, на который ссылается инструкция, будет изменен в макете.
Синтаксис
Имя атрибута | Значение |
name | block name Имя любого блока, который нужно расширить (изменить). |
* | any other Любой другой атрибут, характерный для инструкции данного <block>. |
parent | block name Название блока, который должен стать новым родителем для определенного блока. |
Примеры обновления макета
Следующими типами блоков можно манипулировать с помощью пользовательских инструкций макета. Рассмотрим примеры синтаксиса.
Полный синтаксис
<!-- Действие может быть определено внутри инструкций <block> или <reference> --> <action method="someActionName"> <arg1>Value 1</arg1> <arg2>Value 2</arg2> <!-- --> <argN>Value N</argN> </action>
Рассмотрим пример вывода CMS-блока на странице
Тип блока: cms/block
Синтаксис
Действие (action) | Описание |
setBlockId($blockId) | Указывает идентификатор CMS-блока; его содержимое будет отображаться при рендеринге страницы. |
<reference name="content"> <block type="cms/block" name="additional.info" as="additionalInfo"> <action method="setBlockId"><id>additional_info</id></action> </block> </reference>
Тип блока: core/text
С помощью блока core/text вы можете выводить текст в свободной форме, непосредственно в шаблоне.
Синтаксис
Действие (action) | Описание |
addText($textContent) | Определяет текст, который должен быть выведен как содержимое блока. Если вы используете HTML-теги как часть текста, рекомендуется использовать: <![CDATA[…]]> |
<reference name="content"> <block type="core/text" name="test.block"> <action method="addText"> <txt><![CDATA[<h2>Внимание!</h2><p>Проверьте что-то там</p>]]></txt> </action> </block> </reference>
Если вы хотите тонкой настройки и нестандартного отображения своей темы (шаблона) на Мадженто – эффективно используйте структурные блоки в файлах макета (таких как local.xml, catalog.xml, page.xml) и ваш интернет-магазин будет уникальным и неповторимым!
Последние посты
Как купить автомобиль на аукционе?
Если вас интересует вопрос, можно ли купить автомобиль на аукционе, вот вам краткий ответ: да.… Читать далее
Основные критерии при выборе и покупке телевизора
В данном обзоре мы собрали основные советы и критерии по приобретению телевизора, в одном месте,… Читать далее
На что обратить внимание при выборе фонарика на батарейках
Фонарик на батарейках способен помочь в разных ситуациях, начиная от походов и заканчивая авариями. При… Читать далее
Всесторонний обзор Apple Watch Series 9: в чем его отличия от других поколений
Последняя презентация американской компании продемонстрировала несколько разнообразных новинок. В частности, в середине сентября 2023 года… Читать далее
Как утеплить ребенка на зиму с помощью меховых наушников
Голова и уши – это те части тела, которые больше всего нуждаются в тепле зимой.… Читать далее
Как проходит осмотр у проктолога при различных заболеваниях и как к нему подготовиться?
Проктология специализируется на лечении различных заболеваний ануса и прямой кишки. Такие деликатные проблемы вызывают боли… Читать далее