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

 

Recent Posts

Идеальное рабочее место: собираем надежный сетап для стабильной работы и гейминга

Рабочее пространство давно перестало быть просто столом с ноутбуком. Сегодня это полноценная экосистема, где каждая…

6 дней ago

Серверы VPS для построения независимых онлайн-систем

Когда проект зависит от чужих ограничений, возрастают риски простоев, потери доступа к данным и сложности…

1 неделя ago

Домен и хостинг: в чем разница и почему они работают только вместе

У тех, кто планирует создание сайта впервые, почти всегда возникает вопрос: что такое домен и…

2 недели ago

Больше чем просто Wi-Fi: Как выбрать роутер для IT-специалиста

Для простого пользователя критерием хорошего Wi-Fi является быстрая загрузка страниц и отсутствие буферизации при просмотре…

2 недели ago

Чем CRM для стоматологии отличается от универсальных систем

Когда владелец стоматологической клиники впервые задумывается об автоматизации, он нередко идет самым простым путем: гуглит…

3 недели ago

Удаленная разработка из тропиков: Техническая сторона, инфраструктура и организация рабочего пространства

Алоха! Последние несколько лет окончательно закрепили тренд на отдаленную работу. Для веб-разработчиков, DevOps-инженеров и администраторов…

3 недели ago