Структурные блоки и блоки содержимого в Мадженто – ч.2

Структурные блоки и блоки содержимого в Мадженто – ч.2



В предыдущем уроке мы начали рассматривать эту важную и объемную тему. В сегодняшнем уроке мы продолжим изучать структурные блоки в Magento и рассмотрим их синтаксис, а также некоторые примеры использования.

Синтаксис обновления макета

Обновления пользовательского макета могут быть задействованы для страниц категорий, страниц товаров, и любых пользовательских CMS-страниц, для достижения таких результатов как:

<block> — Создание нового блока

<reference> — Обновление существующего контента

<action> — Назначение действия для блоков

<remove> — Удаление блоков

 

Любые изменения в макете задействуются, когда связанный объект — это может быть либо товар, категория, или CMS-страница, — становится активным во фронтенде интернет-магазина.

Нестандартные инструкции по обновлению макета образуются XML-тегами. Как и в обычном XML, каждый тег должен быть либо самозакрывающимся, либо закрытым, как показано в следующих примерах:

<tag attribute="value" />
<tag attribute="value"> ... </tag>

 

<block>

Создает новый блок в текущем контексте. Вложенность макета определяет порядок инициализации и расположения блоков на странице.

Синтаксис

Имя атрибутаЗначение
typeblock class path

Идентификатор пути класса, который соответствует классу блока (например, cms/block).

nameblock name identifier

Имя, которое может быть использовано для адреса блока – идентификатор. Если вы создаете новый блок с таким же именем, вновь созданный блок заменяет ранее существующий блок.

beforeblock name | ‘-‘



Используется для позиционирования блока перед блоком с именем, указанным в значении. Если используется значение «-«, блок располагается перед всеми другими родственными блоками.

afterblock name | ‘-‘

Используется для позиционирования блока после блока с именем, указанным в значении. Если используется значение «-«, блок располагается после всех других родственных блоков.

templatetemplate filename

Имя файла шаблона, который используется для конкретного типа блока.

asblock alias

Алиас, с помощью которого шаблон вызывает блок, в котором назначен этот атрибут. Иногда обязательно нужно указывать алиас (псевдоним) для конкретного типа блока.

 

<reference>

Изменяет контекст для всех включенных инструкций ранее определенного блока.

Синтаксис

Имя атрибутаЗначение
nameblock name

Имя определенного ранее блока.

 

<action>

Используется для доступа к API блока, другими словами, вызывает публичные методы блока. Он используется для настройки выполнения определенного метода при генерации блока.

Синтаксис

Имя атрибутаЗначение
methodblock method name

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

 

<remove>

Удаляет существующий блок из макета.

Синтаксис

Имя атрибутаЗначение
nameblock name

Имя блока, который нужно удалить.

 

<extend>

Эта инструкция выполняет окончательные изменения в блоках, которые уже являются частью макета. Каждый атрибут в инструкции <block>, за исключением имени блока – подлежит изменению. Кроме того, специальный родительский атрибут может быть использован для изменения родителя блока. Проще говоря, укажите имя нового родительского блока в инструкции <extend>, и родительський блок, на который ссылается инструкция, будет изменен в макете.

Синтаксис

Имя атрибутаЗначение
nameblock name

Имя любого блока, который нужно расширить (изменить).

*any other

Любой другой атрибут, характерный для инструкции данного <block>.

parentblock 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) и ваш интернет-магазин будет уникальным и неповторимым!

 



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *