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

 

This post was last modified on 13/09/2015 21:46

Последние посты

Как создавать умные торговые кампании через Merchant Center?

Интеграция Merchant Center с Google Рекламой открывает доступ к такому эффективному типу кампаний, как Умные…

29/05/2024

Портер: темное, крепкое, рожденное в Лондоне

Английским словом porter (в переводе — носильщик) называют разновидность пива, появившуюся в Британской столице в…

28/05/2024

Фридрих Ницше

Если вы решили действовать — закройте двери для сомнений Фридрих Ницше  

26/05/2024

Стивен Кинг

Любая проблема в жизни — это проверка наших возможностей Стивен Кинг  

21/05/2024

Уинстон Черчилль

Пессимист видит трудности в каждой возможности; оптимист в любых трудностях видит возможности Сэр Уинстон Леонард…

19/05/2024

Конфуций

Когда вам покажется, что цель недостижима, не изменяйте цель — изменяйте свой план действий Конфуций…

12/05/2024