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