Коварная война россии против Украины. Ориентировочные потери врага
(по состоянию на 18.04.2024)
456960
солдат
347
самолетов
325
вертолетов
7196
танков
13835
ББМ
11637
артиллерия
760
ПВО
1046
РСЗО
15618
машин
26
корабли и катера
Теги разметки в Magento – директивы CMS
Опубликовано

Теги разметки в Magento – директивы CMS

В этой статье мы детально рассмотрим теги разметки (директивы CMS) в Magento, которые можно использовать в CMS страницах, в статических блоках, и в шаблонах e-mail.

Что такое тег разметки?

Тег разметки (шаблона) – это небольшой кусок текста, окруженный двойными фигурными скобками, который имеет особое значение в Magento, например, {{store url=»}}.
Вы можете использовать теги, например, в качестве ссылки на определенную страницу вашего магазина без ввода полного пути и доменного имени; вставлять блок внутрь страницы без редактирования файлов макета или шаблонов. Теги, на самом деле, имеют множество вариантов применения.

Где я могу использовать эти теги?

Вы можете использовать теги разметки в CMS страницах, в статических блоках, и в шаблонах e-mail.

Как я могу использовать теги шаблона?

Вы можете использовать теги шаблонов, включив их в нужном месте.
Для примера рассмотрим случай, когда вы хотите разместить некую картинку на главной странице вашего магазина (для управления содержимым главной страницы, перейдем в админпанели CMS > Управление страницами, и выберем «Главная страница» для редактирования.) Чтобы вставить картинку мы можем использовать стандартный тег HTML, с указанием полного пути к картинке:

<img src="http://www.site.com/skin/frontend/default/default/images/media/about_kompany.jpg" alt="" />

а можем вместо этого длинного кода, использовать тег разметки шаблона, который значительно компактный:

<img src="{{skin url='images/media/about_kompany.jpg'}}" alt="" />

Другими словами, система «подставит» вместо текста (директивы) skin url путь к папке оформления (skin) активного шаблона.

Какие теги я могу использовать?

Рассмотрим варианты использования некоторых тегов:

{{block id='block_id'}}

 

Этот тег вставляет статический блок, который имеет идентификатор «block_id«. (Статические блоки создаются и управляются через меню CMS > Статические блоки (Static Blocks) в админке).

Например:

{{block id='footer_links'}}

 

Этот код вставит статический блок «Ссылки футера».

 

{{htmlescape var='' allowed_tags=''}}

Этот тег будет игнорировать все HTML-теги в значениях атрибута var.
Пример:

{{htmlescape var='<a href="javascript:alert(1);">Привет!</a>'}}

 

Т.е. данный код выведет строку <a href="javascript:alert(1);">Привет!</a>, которую браузер не будет интерпретировать (обрабатывать код).

 

{{media url=»}}

Этот тег вставляет полный URL к папке с медиа-файлами, например, http://www.site.com/media/.
Пример: {{media url='catalog/product/a/iphone5.jpg'}}

Этот тег выведет следующий адрес: http://www.site.com/media/catalog/product/a/iphone5.jpg.

 

{{store url=»}}

Вставляет базовый URL магазина, то есть URL главной страницы сайта (пример вывода: http://www.site.com/).
Пример: {{store url='about-magento-demo-store'}}

Этот тег будет преобразован в http://www.site.com/about-magento-demo-store/. Обратите внимание на завершающий слеш в этом URL; это то, что отличает атрибут url от атрибута direct_url.
Более того, этот атрибут URL-адреса используется для динамически выводимых ссылок, например, с переменными, идентификаторами сессии в адресной строке.
Если вам нужна простая, статическая ссылка, лучше использовать тег direct_url, описанный ниже.

 

{{store direct_url=»}}

Этот тег используется для вывода прямой статической ссылки. Пример: если вы укажете {{store direct_url='furniture/office-table.html'}}, этот тег (директива) преобразуется в http://www.site.com/furniture/office-table.html

 

Как тег разметки шаблона (директива) работает?

Когда Magento встречает тег разметки, он использует эту директиву для заполнения массива из трех элементов.

  • Первым элементом является весь тег, заключенный в фигурные скобки.
  • Вторым элементом является ключевое слово, которое следует сразу после открытия фигурных скобок (например, store)
  • Третьим элементом является сочетание «ключевое слово = значение» (например, url=’furniture/office-table.html’).

Magento приводит массив к методу класса Mage_Core_Model_Email_Template_Filter. Имя метода зависит от ключевого слова в теге: если ключевое слово store, будет вызван метод storeDirective.
Затем метод возвращает определенное значение. Это значение будет «подставлено» вместо тега разметки и выведено в пользовательской части сайта.

Основные теги разметки (директивы) и их параметры:

 

skinDirective
Описание: Используется для получения пути к папке оформления темы по умолчанию
Пример: {{skin url='images/myimage.jpg'}}

Синоним (соответсвует): Mage::getDesign()->getSkinUrl($params['url'], $params)

Параметры:

  • url = пустой или относительный путь к файлу
  • _theme = альтернативная тема, если файл не найден (пример: _theme=’blank’)
  • _package = альтернативный пакет тем
  • _area = альтернативная среда (frontend,adminhtml)

 

storeDirective
Описание: Используется для создания путей и пользовательских URL-адресов
Пример: {{store url='customer/account' _query_a='5'}}

Синоним: Mage::getUrl($params['url'], $params);

Параметры:

  • url = основная ссылка сайта (BaseUrl)
  • direct_url = прямой путь, который добавляется к основной ссылке (пример: furniture/office-table.html)
  • _query_PARAMNAME = добавляет параметр к запросу, например _query_a=’5′ добавляет a=5 к URL
  • _fragment = добавляет фрагмент к ссылке, например, #comment

 

blockDirective
Описание директивы: Выводит статический блок CMS, или любой блок определенного типа
Пример: {{block id='static_block_code'}}  – загружает статический блок с идентификатором static_block_code

{{block type='core/template' template='custom/custom.phtml'}}  – выводит блок типа core/template и определенный файлом-шаблоном custom.phtml

Синоним:

Mage::app()->getLayout()->createBlock('cms/block')->setBlockId('static_block_code')->toHtml();
Mage::app()->getLayout()->createBlock('core/template')->setTemplate('custom/custom.phtml')->toHtml();

 

Параметры:

  • id = код статического блока; если id установлен, тип блока всегда будет cms/block
  • type = тип блока

 

widgetDirective
Описание: Выводит определенный виджет. Magento виджеты автоматически вставляют эти коды, для пользовательской настройки, лучше использовать block коды.
Пример:

{{widget type='catalog/product_widget_new' products_count='9' template='catalog/product/widget/new/content/new_list.phtml'}}

Синоним:

Mage::app()->getLayout()->createBlock('catalog/product_widget_new', null, array('products_count’=>9, 'template'=>'catalog/product/widget/new/content/new_list.phtml'))->toHtml();

Параметры:

  • type = тип виджета
  • name = определяет, что имя блока должно быть в макете; вероятно нужно, только если более чем один виджет используется на той же странице
  • Любой дополнительный параметр при условии, что он будет передан объекту виджета.

 

customvarDirective

Описание: Выводит пользовательские переменные HTML, которые определены в админке по адресу System -> Custom Variables (Система -> Пользовательские переменные). Могут быть легко добавлены через редактор. Таким образом, эта директива позволяет использовать свои собственные переменные.
Пример: {{customvar code='my_custom_var'}}

Синоним:

Mage::getModel('core/variable')->loadByCode('my_custom_var')->getValue();

 

Параметры:

  • code = пользовательский код переменной.

 

 

1 комментарий для “Теги разметки в Magento – директивы CMS

  1. Юрий

    Каким образом получить тег разметки на current продукт?

    Например мы вставляем статический блок на страницу продукта и хотим, что бы на странице каждого продукта в том месте в тексте выводилось название этого продукта.

    «даствамим бла-бла-бла (здесь переменная продукта) бла-бла-бла.»
    Спасибо.

Добавить комментарий для Юрий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *