В этой статье мы детально рассмотрим теги разметки (директивы 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 встречает тег разметки, он использует эту директиву для заполнения массива из трех элементов.
Magento приводит массив к методу класса Mage_Core_Model_Email_Template_Filter. Имя метода зависит от ключевого слова в теге: если ключевое слово store, будет вызван метод storeDirective.
Затем метод возвращает определенное значение. Это значение будет «подставлено» вместо тега разметки и выведено в пользовательской части сайта.
skinDirective
Описание: Используется для получения пути к папке оформления темы по умолчанию
Пример: {{skin url='images/myimage.jpg'}}
Синоним (соответсвует): Mage::getDesign()->getSkinUrl($params['url'], $params)
Параметры:
storeDirective
Описание: Используется для создания путей и пользовательских URL-адресов
Пример: {{store url='customer/account' _query_a='5'}}
Синоним: Mage::getUrl($params['url'], $params);
Параметры:
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();
Параметры:
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();
Параметры:
customvarDirective
Описание: Выводит пользовательские переменные HTML, которые определены в админке по адресу System -> Custom Variables (Система -> Пользовательские переменные). Могут быть легко добавлены через редактор. Таким образом, эта директива позволяет использовать свои собственные переменные.
Пример: {{customvar code='my_custom_var'}}
Синоним:
Mage::getModel('core/variable')->loadByCode('my_custom_var')->getValue();
Параметры:
Содержание статьи Введение: почему цены решают все Что значит сравнение цен с конкурентами 5 причин,…
В последние годы интерес к саунам в Киеве заметно вырос. Это связано не только с…
В современном ритме мегаполиса отдых стал неотъемлемой частью заботы о здоровье и эмоциональном состоянии. Особенно…
В современном мире цифрового маркетинга Facebook (Meta) остается одной из самых мощных платформ для продвижения…
Этот прибор стал незаменимым элементом арсенала представителей множества профессий, но особенно актуален среди военных. Тепловизор…
Постоянный поток новостей, рабочих задач и личных забот часто приводит к тому, что в голове…
View Comments
Каким образом получить тег разметки на current продукт?
Например мы вставляем статический блок на страницу продукта и хотим, что бы на странице каждого продукта в том месте в тексте выводилось название этого продукта.
"даствамим бла-бла-бла (здесь переменная продукта) бла-бла-бла."
Спасибо.