В этой статье мы детально рассмотрим теги разметки (директивы 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();
Параметры:
Выбор мастера для ремонта и перетяжки мебели — задача, которая требует вдумчивого подхода. Ведь от…
Выбор идеального хостинга под свой сайт может быть довольно запутанным делом, особенно когда существует так…
Чтобы избегать ошибок, нужно набираться опыта; чтобы набираться опыта, надо делать ошибки Лоуренс Питер
Краткое определение Черного SEO Черное СЕО (или Черная оптимизация) — это любая практика, целью которой…
Получение водительских прав категории C открывает двери к профессиональной деятельности, связанной с управлением грузовыми автомобилями.…
View Comments
Каким образом получить тег разметки на current продукт?
Например мы вставляем статический блок на страницу продукта и хотим, что бы на странице каждого продукта в том месте в тексте выводилось название этого продукта.
"даствамим бла-бла-бла (здесь переменная продукта) бла-бла-бла."
Спасибо.