Структурні блоки та блоки вмісту в Мадженто – ч.1

Перед початком роботи по зміні стандартної структури в Мадженто, важливо розуміти логіку дизайну для CMS Magento, тому рекомендуємо ознайомитися з попереднім уроком.
Схема сайту на Magento представляє із себе ієрархічне дерево структурних блоків. Деякі блоки відображаються на кожній сторінці, а інші з’являються тільки на певних сторінках. Відображенням блоків можна керувати через Оновлення макета XML в адмінпанелі. У багатьох випадках, того ж результату можна домогтися за допомогою віджету. Щоб розмістити статичний CMS блок контенту з віджетом, необхідно визначити сторінку, і розташування блоку на сторінці. Проте, в деяких випадках, все ж необхідно оновлення XML структури.

Розміщення блоку за допомогою Оновлення макета XML

Блоки можуть бути розміщені в лівій або правій колонці певної сторінки шляхом оновлення макета через код XML. За допомогою декількох простих змін в коді, ви можете розташувати блок в будь-якому сайдбарі, і контролювати його позицію по відношенню до інших блоків.

Щоб розмістити блок в боковій колонці (сайдбарі):

Розміщення блоку за допомогою Оновлення макета XML

 

1. В Адмінменю, перейдіть CMS > Pages > Manage Content (CMS > Сторінки > Керування сторінками)
2. Відкрийте потрібну сторінку. Потім, в панелі ліворуч, виберіть вкладку Design (Дизайн).
3. У полі Layout Update XML (Оновлення макета XML), введіть код структурного блоку.

Приклад коду для додавання блоку в праву бокову колонку сайту:

<reference name="right"> <block type="cms/block" name="right.permanent.callout"> <action method="setBlockId"><block_id>vkazhit-sviy-block-id</block_id></action> </block> </reference> 
  1. Після цього натисніть кнопку Save Page (Зберегти сторінку).

Управління порядком відображення структурних блоків

Для управління порядком відображення блоків при оновленні структури XML можна використовувати код позиціонування. Щоб розмістити блок до, або після певного блоку, скористайтеся наступними прикладами:

  • before=”-“ Розміщує блок у верхній частині сайдбара, перед іншими блоками.
  • after=”-“ Розміщує блок в нижній частині сайдбара, після інших блоків.

Приклади коду:

<block type="cms/block" before="-" name="left.permanent.callout"> <block type="cms/block" before="some-other-block" name="left.permanent.callout"> <block type="cms/block" after="-" name="left.permanent.callout"> <block type="cms/block" after="some-other-block" name="left.permanent.callout"> 

Стандартне розміщення структурних блоків

Стандартне розміщення структурних блоків

  • Чорним кольором позначені імена блоків
  • Блакитним кольором позначені типи блоків (шляху класів блоків)

Опис блоків

Тип блока(block type="") Опис
page/html Блок даного типу може бути тільки один на сторінці. Ім’я блоку “root”, і це один з небагатьох рутовських блоків в макеті.
page/html_head Блок даного типу може бути тільки один на сторінці. Ім’я блоку “head”, і він нащадок кореневого блоку. Цей блок не можна видаляти з макета.
page/html_notices Блок даного типу може бути тільки один на сторінці. Ім’я блоку “global_notices,” і він нащадок кореневого блоку. Якщо цей блок видалити з макета, глобальні повідомлення системи не будуть з’являтися на сторінці.
page/html_header Блок даного типу може бути тільки один на сторінці. Ім’я блоку “header”, і він нащадок кореневого блоку. Цей блок відповідає візуальному Хедеру сторінки, і містить кілька стандартних блоків. Цей блок не повинен бути видалений.
page/html_wrapper Хоча він включений в макет за замовчуванням, цей блок є застарілим, і використовується тільки для забезпечення зворотної сумісності. Не слід використовувати блоки такого типу.
page/html_breadcrumbs Блок даного типу може бути тільки один на сторінці. Ім’я цього блоку “breadcrumbs”, і він нащадок блоку Хедера. Цей блок відображає «хлібні крихти» для поточної сторінки.
page/html_footer Блок даного типу може бути тільки один на сторінці. Ім’я блоку “footer”, і він нащадок кореневого блоку (root). Блок відповідає візуальному Футеру в нижній частині сторінки, і містить кілька стандартних блоків. Цей блок не повинен бути видалений.
page/template_links Є два блоки цього типу в стандартному макеті. Блок “top.links” є нащадком блоку Хедера, і відповідає верхньому меню навігації. Блок “footer_links” є нащадком блоку Футер, і відповідає нижньому меню навігації.
page/switch Є два блоки цього типу в стандартному макеті. Блок “store_language” є нащадком блоку Хедера, і відповідає перемикачу мов у верхній частині сторінки. Блок “store_switcher” є нащадком блоку Футер, і відповідає перемикачу магазинів в нижній частині сторінки.
core/messages Є два блоки цього типу в стандартному шаблоні. Блок “global_messages” відображає загальні системні повідомлення. Блок “messages” використовується для відображення всіх інших повідомлень. Якщо ви видалите ці блоки, клієнти не зможуть бачити всі повідомлення (інформативні, попереджуючі та т.і.).
core/text_list Цей тип блоку широко використовується в Magento і служить як заповнювач для рендерингу блоків-нащадків.
core/profiler Існує тільки один екземпляр цього типу блоку на сторінці. Він використовується для внутрішнього профайлера Magento, і не повинен використовуватися для інших цілей.

 



Продовження уроку