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