Строковые функции

Кроме {var:} есть еще несколько функций, которые вы также можете использовать. Строковыми они называются потому что работают прямо внутри строк текстовых полей.

Функции отличаются наличием дополнительных аргументов, которые выступают исходными данными. Функции не просто подставляют переменную а выполняют полезную операцию.

Все функции поддерживают многоуровневую вложенность друг в друга

Случайное число - rand

Cлучайное число в указанном диапазоне

{rand:|100|999}

Первое число - начиная с числа, второе - заканчивая. Числа учитываются включительно.

Примечание: рандом криптографический и не учитывает историю запросов, поэтому на малых диапазонах множественные повторы одинаковых результатов являются нормой

Случайный текст - incident

{incident:|one|two|three|four}

Список значений разделяется вертикальной чертой | . И начинается с такой же вертикальной черты.

Дополнительно функция поддерживает возможность передачи массива в первый аргумент. Например у вас есть переменная {var:array} у которой значение - JSON массив: ["one","two,"three"] . Работать будет аналогично. Пример:

{incident:{var:array}}
  • 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

Задает или меняет формат даты и времени. Позволяет получить текущее время.

Аргументы:

  1. Переменная (сразу после двоеточия) с временем

    • Если оставить пустой, то будет подставлено текущее время

    • Должна быть в формате UNIX Timestamp: %s или %d-%m-%Y %H:%M:%S. Если эти форматы вам не подходят, то обязательно передайте свой третьим аргументом!

  2. Формат исходящей даты. Пара примеров:

    • %F %T - 2023-01-31 18:57:45

    • %d-%m-%Y %H:%M - 31-01-2023 18:57

    • %s - 1675180665 - количество секунд с 1 января 1970 года

  3. Формат входящей даты (значения переменной или текущей)

    • Форматы аналогичны входящим за исключением %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