Структурные блоки и блоки содержимого в Мадженто – ч.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) и ваш интернет-магазин будет уникальным и неповторимым!