Строковые функции
Кроме {var:}
есть еще несколько функций, которые вы также можете использовать. Строковыми они называются потому что работают прямо внутри строк текстовых полей.
Функции отличаются наличием дополнительных аргументов, которые выступают исходными данными. Функции не просто подставляют переменную а выполняют полезную операцию.
Случайное число - rand
Cлучайное число в указанном диапазоне
Первое число - начиная с числа, второе - заканчивая. Числа учитываются включительно.
Примечание: рандом криптографический и не учитывает историю запросов, поэтому на малых диапазонах множественные повторы одинаковых результатов являются нормой
Случайный текст - incident
Список значений разделяется вертикальной чертой |
. И начинается с такой же вертикальной черты.
Дополнительно функция поддерживает возможность передачи массива в первый аргумент. Например у вас есть переменная {var:array}
у которой значение - JSON массив: ["one","two,"three"]
. Работать будет аналогично. Пример:
incident
- случайный текст выбранный из всех предложенных вариантовПример:
Пример результата:
two
Оставить только цифры - num
num
- оставить только цифры / числа / математикуint
- только цифры в виде одного числа - по умолчаниюfloat
- число с точкойmath
- числа (float) и математические операторыlist
- числа и запятыеhuman
- удобочитаемый форматprice
- удобочитаемый формат цены (сумма с копейками, если такие переданы)Пример:
{num:{var:product.price}|human}
{num:{var:product.price}|human}
Калькулятор - calc
Посчитать простую математическую формулу (строковый аналог действия Калькулятор)
calc
- посчитать простую математическую формулу (аналог действия Калькулятор)Параметры:
1 - Переменная откуда брать формулу
2 - Математическое выражение. Может содержать вложенные переменные. Если указаны и первый и второй параметры, то второй параметр в приоритете
3 - Количество знаков после запятой
Примеры:
а)
{calc:1.234 + 2*3}
= 7.234{calc:1.234 + 2*3|1}
= 7.2а)
{var:expression}
= 1.234 + 2*3 б){calc:{var:expression}}|1}
= 7.2
Вывод аргумента по индексу - case
case
- получение аргумента по его индексу, который находится в значении переменнойПример:
{case:{var:users.user.appeal}|обращение на вы|женский|мужской}
Суть функции:
Варианты значений воспринимаются как массив с числовыми индексами.
Нумерация элементов массива начинается с 0.
Значение переменной переводится в число и воспринимается как индекс этого массива.
И в итоге происходит поиск элемента по индексу,
или выводится значение переменной, если такой элемент с таким номером не найден.
например,
{var:users.user.appeal}
может принимать такие значения:0
- пол не указан,1
- женский,2
- мужской.Поэтому и пример выше сработает как положено.
Cклонение слов после числительных - lexeme
lexeme
- склонение существительных после числительныхПример:
в корзине было {var:apples} {lexeme:{var:apples}|яблок|яблоко|яблока}
Пример результата:
в корзине было 24 яблока
Суть: 0 или много → яблок, 1 → яблоко, 2 / 3 / 4 → яблока
Задать формат даты - date
Задает или меняет формат даты и времени. Позволяет получить текущее время.
Аргументы:
Переменная (сразу после двоеточия) с временем
Если оставить пустой, то будет подставлено текущее время
Должна быть в формате UNIX Timestamp:
%s
или%d-%m-%Y %H:%M:%S
. Если эти форматы вам не подходят, то обязательно передайте свой третьим аргументом!
Формат исходящей даты. Пара примеров:
%F %T
- 2023-01-31 18:57:45%d-%m-%Y %H:%M
- 31-01-2023 18:57%s
- 1675180665 - количество секунд с 1 января 1970 года
Формат входящей даты (значения переменной или текущей)
Форматы аналогичны входящим за исключением
%s
. Он не поддерживается, но его и не нужно задавать через формат. Достаточно просто подставить переменную со значением в формате UNIX Timestamp
Примеры:
{date:|%d-%m-%Y %H:%M}
{date:{var:object.text}|%F %T|%d-%m-%Y %H:%M}
{date:{var:date} {var:time}|%s|%d/%m/%Y %H:%M}
{date:|%s}
{date:|%s.%f}
или{date:|%s-%f}
Таблица форматов даты
%a
Weekday, short version
Wed
%w
Weekday as a number 0-6, 0 is Sunday
3
%d
Day of month 01-31
31
%b
Month name, short version
Dec
%B
Month name, full version
December
%m
Month as a number 01-12
12
%y
Year, short version, without century
18
%Y
Year, full version
2018
%H
Hour 00-23
17
%I
Hour 00-12
05
%p
AM/PM
PM
%M
Minute 00-59
41
%S
Second 00-59
08
%f
Microsecond 000000-999999
548513
%s
UNIX Timestamp - количество секунд с 1 января 1970 года
1675180665
%z
UTC offset
+0100
%Z
Timezone
CST
%j
Day number of year 001-366
365
%U
Week number of year, Sunday as the first day of week, 00-53
52
%W
Week number of year, Monday as the first day of week, 00-53
52
%c
Local version of date and time
Mon Dec 31 17:41:00 2018
%C
Century
20
%x
Local version of date
12/31/18
%X
Local version of time
17:41:00
%%
A % character
%
%G
ISO 8601 year
2018
%u
ISO 8601 weekday (1-7)
1
%V
ISO 8601 weeknumber (01-53)
01
Last updated