Для генерации текста можно использовать различные операторы, чтобы для каждого элемента текст был разным. Все операторы поддерживают вложенность.
Синтаксис
Для генерации текста можно использовать различные операторы, чтобы для каждого элемента текст был разным. Все операторы поддерживают вложенность. Пример: {Недорогой|Дешевый|Качественный} #NAME#[с мощностью #PROPERTY_POWER#Вт.] и отличной {динамикой|эргономикой}.
Доступные операторы:
- {Текст 1|Текст 2|Текст n} - Группа. Выбирает один из возможных текстов в группе для каждого элемента. Группа начинается с символа { и заканчивается символом }. Элементы группы разделяются символом |;
- #MACROS# - Макрос. Заменяется на содержимое элемента (у каждого элемента свои макросы). Макрос начинается с символа # и заканчивается символом #. Внутри оператора помещается название макроса;
- [Текст и операторы] - Условный оператор. Помещает в себе текст и другие операторы. Текст условного оператора будет выведен только в том случае, если он содержит в себе другие операторы и один из этих операторов возвращает не пустой результат. Условный оператор начинается с символа [ и заканчивается символом ];
- \ - Экранирование. Ставится перед любым спец. символом операторов, для того чтобы спец. символ считался обычным и выводился в тексте.
Доступные макросы инфоблока:
- ID - Идентификатор инфоблока;
- CODE - Символьный код инфоблока;
- NAME - Наименование инфоблока;
- DESCRIPTION - Описание инфоблока;
- SECTIONS_NAME - Наименование разделов инфоблока;
- SECTION_NAME - Наименование раздела инфоблока;
- ELEMENTS_NAME - Наименование элементов инфоблока;
- ELEMENT_NAME - Наименование элемента инфоблока.
Доступные макросы раздела инфоблока:
- ID - Идентификатор раздела;
- CODE - Символьный код раздела;
- NAME - Наименование раздела;
- DESCRIPTION - Описание раздела;
- PROPERTY_<Код свойства> - UF_ свойство раздела. Код свойства прописывается без приставки UF_;
- IBLOCK_ID - Идентификатор инфоблока;
- IBLOCK_CODE - Символьный код инфоблока;
- IBLOCK_NAME - Наименование инфоблока;
- IBLOCK_DESCRIPTION - Описание инфоблока;
- IBLOCK_SECTIONS_NAME - Наименование разделов инфоблока;
- IBLOCK_SECTION_NAME - Наименование раздела инфоблока;
- IBLOCK_ELEMENTS_NAME - Наименование элементов инфоблока;
- IBLOCK_ELEMENT_NAME - Наименование элемента инфоблока.
Доступные макросы элемента инфоблока:
- ID - Идентификатор элемента;
- CODE - Символьный код элемента;
- NAME - Наименование элемента;
- DESCRIPTION_PREVIEW - Описание анонса элемента;
- DESCRIPTION_DETAIL - Детальное описание элемента;
- PROPERTY_<Код свойства> - Свойство элемента;
- SECTION_ID - Идентификатор раздела;
- SECTION_CODE - Символьный код раздела;
- SECTION_NAME - Наименование раздела;
- SECTION_DESCRIPTION - Описание раздела;
- SECTION_PROPERTY_<Код свойства> - UF_ свойство раздела. Код свойства прописывается без приставки UF_;
- IBLOCK_ID - Идентификатор инфоблока;
- IBLOCK_CODE - Символьный код инфоблока;
- IBLOCK_NAME - Наименование инфоблока;
- IBLOCK_DESCRIPTION - Описание инфоблока;
- IBLOCK_SECTIONS_NAME - Наименование разделов инфоблока;
- IBLOCK_SECTION_NAME - Наименование раздела инфоблока;
- IBLOCK_ELEMENTS_NAME - Наименование элементов инфоблока;
- IBLOCK_ELEMENT_NAME - Наименование элемента инфоблока.
Пример для мета-информации:
{=this.Name} из {=morphology {=concat {=filterProperty "PROCREATOR"} ", "} "РД"}
Дополнительные операторы, доступные в мета-информации и тегах:
- {=lower argument1 argument2 ... argumentN} - Оператор прведения к нижнему регистру. Приводит все регистрозависимые символы, передающиеся в аргументах, к нижнему регистру;
- {=upper argument1 argument2 ... argumentN} - Оператор прведения к верхнему регистру. Приводит все регистрозависимые символы, передающиеся в аргументах, к верхнему регистру;
- {=concat argument1 argument2 ... argumentN "разделитель"} - Оператор сложения строк с использованием разделителя. Объединяет все аргументы в строку, устанавливая между ними разделитель, указанный аргументом "разделитель". Разделитель может иметь любую длину и содержать любые символы;
- {=limit argument1 argument2 ... argumentN "разделитель" "длина"} - Оператор ограничения с использованием разделителя. Объединяет все аргументы в строку, устанавливая между ними разделитель, указанный аргументом "разделитель" и устанавливает максимальную длину из аргумента "длина". Разделитель может иметь любую длину и содержать любые символы;
- {=translit argument1 argument2 ... argumentN} - Оператор транслитерации. Производит транслитерацию аргументов;
- {=>min argument1 argument2 ... argumentN} - Оператор выборки минимального числа. Выбирает минимальное число из аргументов;
- {=max argument1 argument2 ... argumentN} - Оператор выборки максимального числа. Выбирает максимальное число из аргументов;
- {=distinct argument1 argument2 ... argumentN} - Оператор выборки уникальных значений. Выбирает уникальные значения из аргументов;
- {=morphology argument1 argument2 ... argumentN "модификаторы"} - Оператор обработки морфологии. Конвертирует слова в зависимости от модификаторов, устанавливаемых аргументом "модификаторы";
Оператор обработки морфологии (
morphology)
Оператор морфологии может иметь 3 типа модификаторов, которые указываются через пробел. При использовании всех типов модификаторы будут выглядеть следующим образом: "род число падеж". Итоговые слова будут изменены в зависимости от модификаторов.
Возможные значения модификатора род:
- МР - Мужской
- ЖР - Женский
- СР - Средний
Возможные значения модификатора число:
- ЕД - Единственное
- МН - Множественное
Возможные значения модификатора падеж:
- ИМ - Именительный
- РД - Родительный
- ДТ - Дательный
- ВН - Винительный
- ТВ - Творительный
- ПР - Предложный