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

5 аграрних помилок, які коштують врожаю, але про них рідко говорять

Урожай найчастіше втрачають не через аномальні зміни погоди, а через дрібні рішення, які здаються неважливими.…

4 дні ago

Музичні інструменти, історія, класифікація та роль у культурі людства

Музичні інструменти супроводжують людство протягом усієї його історії. Вони з'явилися задовго до писемності і стали…

1 тиждень ago

VR-продакшн, повний цикл створення віртуальної реальності

VR-продакшн сьогодні є окремим напрямком у цифровому виробництві, що поєднує технології віртуальної реальності, 3D-графіку, програмування,…

2 тижні ago

Чому Bambu Lab – «iPhone серед 3D-принтерів»

Ще кілька років тому 3D-друк вважався заняттям для «обраних» – людей, які готові витрачати час…

4 тижні ago

Найпоширеніші продукти smart-технологій: ТОП-5 видів гаджетів

Наразі практично жодну сферу життя людини не можна уявити без гаджетів. Ці підтримувані штучним інтелектом…

2 місяці ago

Що таке Unix Domain Socket: секретний тунель у Linux

У нашій подорожі світом сокетів ми почали з "верхнього поверху" — WebSocket у браузері, потім…

2 місяці ago