2.5 Переменные, функции, константы
В ActiveUsers используются два типа синтаксиса переменных: PHP и Cover41, так сложилось исторически и сейчас AU медленно дрейфует в сторону полного перехода на Cover41.
PHP-переменные
Этот тип переменных очень похож на работу с одноименным языком программирования (php). Их основная идея в том, что каждый блок в схеме имеет свой номер и набор свойств. Номер блока виден в его правом верхнем углу, а список свойств можно увидеть, нажав значок </> в заголовке окна редактирования блока.
Например, у блока номер 10 есть свойство по имени "v". В этом случае, переменная для обращения к этому свойству, будет называться $b10_v, где:
$ - признак переменной
10 - номер блока
_ - разделитель номера блока и имени поля
v - имя свойства
Стартовый блок схемы также может обладать свойственным его типу набором свойств, их список можно увидеть по тому же принципу.
Действия с PHP-переменными, функции
Вы можете совершать с переменными любые математические действия, используя при этом скобки. Запись вида
($b10_v * 5) / ($b10_v - 1)
будет корректно разобрана системой. Кроме этого, вы можете использовать некоторые функции:
Функции
ceil(A) - округлить А в большую сторону
floor(А) - округлить А в меньшую сторону
rand(А, B) - случайное число в диапазоне между А и B
min(A, B, C...) - вернет минимальное значение
max(A, B, C...) - максимальное значение
time() - время в секундах с 1 янв 1970, также известное как unix_timestamp
stime(A) - перевести A из формата unix_timestamp в понятное человеку время. 301 секунда превратится в "5 мин. 1 сек."
intval(A) - превращаем А в целое число
pow(A, B) - вернёт A в степени B. Например, pow(2, 3) = 8
sqrt(A) - корень из А. sqrt(9) = 3
Арифметические операции
Поддерживаются все основные арифметические операции + - * / и скобки ()
Создание переменных блоками
У некоторых действия и условий, (например у "есть данные в массиве" и "значение в хранилище") есть дополнительные переменные, хранящие ключ и значение полученной из хранилища записи, например для 10-го блока $b10_key и $b10_value. Если $b10_value - массив (зависит от структуры вашего хранилища), то получить доступ к его значениям можно, записав ключи через точку, например $b10_value.price
Такие блоки как ВРМ, переход по ссылке, тоже могут после прохождения системой блока, генерировать переменные. Обычно такие переменные на выходе будут иметь вид $b10_value. В блоке создания комментария таким образом можно получить ID созданного комментария для дальнейшей работы с ним.
Переменные ресурсов
$res_15 - значение ресурса с ID 15 у инициатора активности (или другой цели, если блок позволяет их выбирать)
$res_15_1234567_4 - значение ресурса с ID 15 у пользователя ВК с ID 1234567. Ссылки на конкретных пользователей удобны для создания глобальных переменных, например вы можете зачислить себе 10 единиц ресурса Приз и проверять в блоксхемах, не закончились ли они, отнимая по одному при каждом выйгрыше. Зачем в этой формуле нужна _4 - как-нибудь в другой раз.
Доступ к хранилищам
$data39_data.basefont.family
$ - работаем с переменными
data - это будет хранилище
39 - хранилище ID 39
_ - разделитель
data.basefont.family - уровни массива хранилища. Вместо data тут ещё может быть schema, если нужен доступ к структуре
Константы
$text - введённый пользователем текст как есть (если не был преобразован блоками коррекции ввода)
$num_1, $num_2 - числительные в тексте пользователя. Например, в предложении "У чернобыльской кошки 6 лап и 4 глаза", $num_1 будет равно 6, а $num_2 соответственно 4. Удобно использовать для полу-автоматической проверки домашних работ.
$from_id - ссылка на инициатора активности, независимо от того, кого мы выберем целью блока. Например, в качестве цели выбираем администратора группы, отправляем ему сообщение, в котором формируем ссылку с переменной http://vk.com/id{b0_from_id} - на пользователя, который запустил активность. Бывает полезно, если нужно оповестить, что кто-то получил приз или заработал бан.
$obj_id - ID поста для комментария или темы для обсуждения, созданного инициатором активности.
$el_id - ID объекта, комментария или сообщения, созданного инициатором активности.
$from_link - ссылка на объект, инициировавший активность (доступно не для всех видов активностей)
Вставка переменных в сообщения и комментарии
К сожалению, в описанном виде PHP-переменные могут использоваться только внутри самой схемы. Если же необходимо вывести их в сообщение - то создаётся блок действие с типом Переменная, в который записывается текст переменной. И затем в тексте сообщения пишется например {b15_v}, если номер блока с объявленной переменной равен 15.
Напоминаем, этот вид переменных устаревает и ему на смену приходит более удобный Cover41.
Оглавление
- 1.1 Возможности сервиса
- 1.2 Версии движка
- 1.3. Активный и пассивный режимы
- 1.5 Ресурсы
- 1.7 Личные сообщения и комментарии
- 1.7.1 Внешние ссылки
- 1.8 Проекты
- 1.9 Промокоды
- 2 Блоксхемы (БС)
- 2.1 Условия
- 2.1.1 Внешний расчётный модуль (ВРМ)
- 2.1.2 Библиотека ВРМ
- 2.2 Действия
- 2.5 Переменные, функции, константы
- 3. Приложение
- 4. Библиотека
- 4.1 Страницы
- 4.1.2 Датавиджеты
- 4.1.2.1 Форма ввода
- 4.1.2.2 Рейтинг в виджете приложения
- 5. API
- 6. Статьи, ссылки, примеры
- 6.1 Графический движок cover41
- 6.2 Синтаксис Cover
- 7. Энергия
- 8.1 CSS-селекторы