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

Как изменить активную тему WordPress через базу данных

Тема (шаблон) – это своеобразный скелет сайта на WordPress. И, к сожалению, иногда этот «скелет»…

1 день ago

5 практических советов по разработке форм под мобильные устройства

Контактная форма (или любая другая) на сайте – это очень важный компонент. На нее возложен…

2 дня ago

Лина Костенко

Ужас не в том, что что-нибудь изменится. Ужас в том, что все может остаться тем…

1 неделя ago

Трансформационная игра родом из древней Индии — Лила

Что такое Лила — это древняя игра, выступающая в качестве инструмента для личностной трансформации, практик…

1 неделя ago

Конструктор — лучший вариант интерактивной игрушки для детей

Современные варианты детских конструкторов — это не просто игрушки, а действенный инструмент развития, который помогает…

1 неделя ago

Как сделать так, чтобы ваш сайт показывался в блоке ответов Google

Основной трафик на сайт с поисковых систем идет именно по органической выдаче. И здесь очень…

2 недели ago