В модуле можно использовать Twig-шаблоны для гибкой подстановки данных в поля микроразметки. Это позволяет брать значения из полей и свойств товара, раздела или страницы, очищать текст от HTML, задавать значения по умолчанию, ограничивать длину текста, форматировать числа и собирать итоговое значение без правки кода сайта.
Twig в модуле работает в безопасном режиме: доступны только разрешённые фильтры, теги и функция view_content(). Фильтры, теги и функции можно комбинировать. Этого достаточно для большинства SEO-задач: подготовить name, description, brand, sku, mpn, цену, валюту, рейтинг и другие значения разметки.
В этом разделе собраны доступные возможности Twig, примеры их использования и типовые сценарии.
Фильтры (полный список)
| Фильтр |
Назначение |
Пример |
Пояснение для примера |
default |
Значение по умолчанию, если переменная пустая/не задана. |
`{{ (PREVIEW_TEXT |
default(DETAIL_TEXT, true) )}}` |
trim |
Убирает пробелы по краям строки. |
`{{ NAME |
trim }}` |
striptags |
Убирает HTML-теги. |
`{{ DETAIL_TEXT |
striptags }}` |
replace |
Заменяет фрагменты текста. |
`{{ TEXT |
replace({' ': ' '}) }}` |
slice |
Берёт часть строки/массива. |
`{{ TEXT |
slice(0, 200) }}` |
split |
Разбивает строку в массив. |
`{% set tags = TAGS |
split(',') %}` |
join |
Склеивает массив в строку. |
`{{ TAGS |
join(', ') }}` |
first |
Первый элемент строки/массива. |
`{{ TAGS |
first }}` |
last |
Последний элемент строки/массива. |
`{{ TAGS |
last }}` |
length |
Длина строки/массива. |
`{{ NAME |
length }}` |
lower |
В нижний регистр. |
`{{ NAME |
lower }}` |
upper |
В верхний регистр. |
`{{ NAME |
upper }}` |
capitalize |
Первая буква заглавная. |
`{{ NAME |
capitalize }}` |
title |
Каждое слово с заглавной буквы. |
`{{ NAME |
title }}` |
nl2br |
Переносы строк превращает в <br>, но итог модуля всё равно чистит теги. |
`{{ TEXT |
nl2br }}` |
escape, e |
Экранирование спецсимволов. |
`{{ NAME |
escape }} |
| {{ NAME |
e }}` |
Экранирует спецсимволы HTML. Например, <Кресло> превратится в безопасное HTML-представление. |
|
url_encode |
URL-кодирование строки. |
`{{ NAME |
url_encode }}` |
json_encode |
Кодирование значения в JSON. |
`{{ DATA |
json_encode }}` |
number_format |
Форматирование числа. |
`{{ PRICE |
number_format(0, '.', ' ') }}` |
round |
Округление числа. |
`{{ RATING |
round(1) }}` |
abs |
Модуль числа. |
`{{ VALUE |
abs }}` |
format |
Подстановка в строку по шаблону. |
`{{ 'Артикул: %s' |
format(SKU) }}` |
date |
Форматирование даты. |
`{{ DATE_ACTIVE_FROM |
date('d.m.Y') }}` |
date_modify |
Изменение даты перед выводом. |
`{% set nextDate = DATE |
date_modify('+1 day') %}` |
reverse |
Разворачивает строку/массив. |
`{% set reversedTags = TAGS |
reverse %}` |
format_number |
Локализованное форматирование числа, если поддерживается Twig/Intl. |
`{{ PRICE |
format_number }}` |
locale_name |
Название локали, если поддерживается Twig/Intl. |
`{{ 'ru' |
locale_name }}` |
Теги (полный список)
| Тег |
Назначение |
Пример |
Пояснение для примера |
{% if %} |
Условный вывод. |
{% if PRICE %}{{ PRICE }}{% endif %} |
Если PRICE = 12345, будет выведено 12345. Если PRICE пустой, ничего не выведется. Назначение: вывести значение только при наличии данных. |
{% set %} |
Создание временной переменной внутри шаблона. |
{% set productName = NAME %}{{ productName }} |
Если NAME = "Офисное кресло", будет выведено Офисное кресло. Назначение: создать временную переменную и потом использовать её в шаблоне. Например, чтобы один раз подготовить значение и вывести его ниже. |
Недоступны: {% for %}, {% include %}, {% block %}, {% extends %}, {% macro %} и прочие теги.
Функции (полный список)
| Функция |
Назначение |
Пример |
Пояснение для примера |
view_content(id) |
Берёт содержимое Bitrix view target / view content по ID. Возвращает очищенный текст: strip_tags, trim. |
{{ view_content('seo_text_target_bottom_dop') }} |
Назначение: вывести содержимое Bitrix view target / view content с идентификатором seo_text_target_bottom_dop. |
Функция актуальная для вывода значений страницы при использовании модулей SEO умного фильтра.
Примеры использования функций с любым модулем SEO умного фильтра
| Параметр |
Пример |
Пояснение для примера |
| H1 страницы |
{{ PAGE_SEO.H1 }} |
Выведет текущий H1 страницы. Если модуль заменил H1, будет использовано уже изменённое значение. |
| Title страницы |
{{ PAGE_SEO.TITLE }} |
Выведет текущий title страницы. Можно использовать для name или description в разметке. |
| Meta description |
{{ PAGE_SEO.DESCRIPTION }} |
Выведет текущий meta description страницы. Удобно использовать как описание в микроразметке. |
| Meta keywords |
{{ PAGE_SEO.KEYWORDS }} |
Выведет текущие meta keywords страницы, если они заполнены. |
Примеры использования функций с модулем Сотбит
| Параметр |
Пример |
Пояснение для примера |
| Верхнее SEO-описание |
{{ view_content('sotbit_seometa_top_desc') }} |
Выведет верхнее описание, которое модуль передал в область sotbit_seometa_top_desc. |
| Нижнее SEO-описание |
{{ view_content('sotbit_seometa_bottom_desc') }} |
Выведет нижнее описание посадочной страницы фильтра. |
| Дополнительное SEO-описание |
{{ view_content('sotbit_seometa_add_desc') }} |
Выведет дополнительное описание посадочной страницы фильтра. |
Примеры использования функций с модулем INTEC. SEO
| Параметр |
Пример |
Пояснение для примера |
| Верхнее описание условия фильтра |
{{ view_content('seoFilterMetaDescriptionTop') }} |
Выводит содержимое ViewContent seoFilterMetaDescriptionTop. |
| Нижнее описание условия фильтра |
{{ view_content('seoFilterMetaDescriptionBottom') }} |
Выводит содержимое ViewContent seoFilterMetaDescriptionBottom. |
| Дополнительное описание условия фильтра |
{{ view_content('seoFilterMetaDescriptionAdditional') }} |
Выводит содержимое ViewContent seoFilterMetaDescriptionAdditional. |
Примеры использования функций с модулем Profi
В открытом описании модуля не указаны стандартные view_content ID. Примеры ниже работают, если нужные данные заранее переданы в Bitrix ViewTarget.
| Параметр |
Пример |
Пояснение для примера |
| Детальный текст SEO-страницы |
{{ view_content('profistudio_seofilter_detail_text') }} |
Выводит содержимое ViewTarget profistudio_seofilter_detail_text. |
| Пользовательское поле SEO-страницы |
{{ view_content('profistudio_seofilter_custom_text') }} |
Выводит содержимое ViewTarget profistudio_seofilter_custom_text. |
Пользовательское поле с кодом SEO_TEXT |
{{ view_content('profistudio_seofilter_custom_seo_text') }} |
Выводит содержимое ViewTarget profistudio_seofilter_custom_seo_text. |
Пользовательское поле с кодом BRAND_TEXT |
{{ view_content('profistudio_seofilter_custom_brand_text') }} |
Выводит содержимое ViewTarget profistudio_seofilter_custom_brand_text. |