В модуле можно использовать 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.