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

Володимир Висоцький

Я розумію, як це смішно Шукати відповідь в очах, В очах, яким все рівно, Чи… Read More

25/07/2021

Брюс Лі

Немає такого вислову "Я не можу!" Зумів один, зможуть й інші. Не зміг ніхто -… Read More

21/07/2021

Йоганн Вольфганг фон Гете

Навіщо у людини в серці доброта, І мудрість розуму, й правиці щедрота, Коли неправда навкруги… Read More

12/07/2021

Який бойлер використовувати для кухні

Незамінним пристроєм при відключенні гарячої води є бойлер для кухні, що дозволяє з комфортом мити… Read More

08/07/2021

Алі ібн Абу Таліб

Краще зберігати мовчання до тих пір, поки не запитають, ніж говорити до тих пір, поки… Read More

07/07/2021

Мухамад Окар

Те, що ви маєте кожного дня, хтось щодня вимолює Мухамад Окар   Read More

01/07/2021