6.2 Синтаксис Cover
Cover - синтаксис разметки, используется для подстановки данных в тексты, вычислений и преобразований данных.
В основе лежат переменные, заключенные в фигурные скобки { и }, которые заменяются на реальные значения, например {uid} будет автоматически заменен на user_id инициатора активности, а {res.14.title} - название ресурса с ID равным 14.
Проще всего знакомиться с cover на примерах...
Примеры
{user.4803497.first_name}
- это имя пользователя id4803497. Вы также можете использовать вместо first_name следующие поля:
city.title
- город
country.title
- страна,
last_name
- фамилия,
photo_50
- аватарка квадратнаx 50x50px,
photo_100
- аватарка 100х100px,
sex
- 1 женский, 2 мужской,
bdate
- дата рождения,
online
- онлайн прямо сейчас, site - сайт,
relation
- семейное положение,
screen_name
- адрес странички,
contacts
- контактные данные,
is_closed
- 1 если страничка закрыта
{rate.55.sum}
- сумма всех баллов в рейтинге #55
{rate.55.items.1.count}
- количество очков у пользователя ТОП-1 в рейтинге #55
{rate.55.items.1.uid}
- ID пользователя ТОП-1 в рейтинге #55. Переменные, возвращающие UID можно вкладывать в другие переменные:
{user.{rate.55.items.1.uid}.first_name}
- имя пользователя ТОП-1 в рейтинге #55
{user.{rate.55.items.1.uid}|full_name}
- имя и фамилия одной строкой этого пользователя. Обратите внимание на вертикальную черту перед full_name - это модификатор, склеивающий имя с фамилией через пробел, о них пойдёт речь ниже.
{rate.55.users.4803497.place}
- место в рейтинге #55 пользователя id4803497
{rate.55.users.4803497.rank}
- звание пользователя в рейтинге
{rate.55.users.4803497.count}
- количество баллов рейтинге #55 у пользователя id4803497
{list.10.count}
- количество пользователей в списке #10
{list.10.items.2.uid}
- UID второго пользователя в списке
{list.10.items.2.time}
- время добавления второго пользователя в списке
{list.10.items.-1.uid}
- первый с конца пользователь в списке (последний добавившийся)
{res.14.title}
- название ресурса #14
{res.14.desc}
- описание ресурса #14
{res.14.icon}
- относительный путь к изображению ресурса
{res.14.users.4803497.count}
- количество ресурса #14 у пользователя id4803497
{res.18.users.4803497.val}
- текстовое значение ресурса #18 у пользователя id4803497. count приводит значения ресурса к числу, а val выдаёт их в чистом виде.
{user.{uid}|full_name}
- полное имя текущего юзера (обратите внимание на значок вертикальной черты)
{user.{uid}|name_case:acc}
- имя текущего юзера в винительном падеже. Возможные значения: именительный – nom, родительный – gen, дательный – dat, винительный – acc, творительный – ins, предложный – abl. По умолчанию nom.
{user.{uid}.photo_100}
- фото текущего юзера 100x100
{user.{res.14.users.{uid}.count}.photo_100}
- фото пользователя 100x100, ID которого является значением ресурса #14 у текущего пользователя
{user.{uid}.photo_100}|circle
- сделать аватарку круглой
{user.{uid}.photo_100}|circle:5
- скруглить края аватарки на 5 пикселей
{res.14.users.{uid}.count} == 10
- (для условий) количество ресурса #14 для текущего пользователя равно 10
{res.14.users.{uid}.count} + 20|calc
- (для координат X и Y), прибавить 20 к количеству ресурса #14 у текущего юзера. calc - модификатор, который посчитает строку 10 + 20 как выражение равное 30.
{storage.52.data.image_base}
- текстовое значение поля image_base из хранилища #52
{storage.52.data.log|list}
- вывести в столбик текстовые строчки из массива log в хранилище #52
{storage.52.data.log|reverse|slice:1:16|list}
- перевернуть массив лог, выбрать из него первые 16 позиций (на самом деле они последние, массив же перевёрнут) и разместить в столбик.
({res.14.users.{uid}.count}
> 10) && ({res.14.users.{uid}.count}
< 20) - (для условий), покажет спрайт, если количество ресурса #14 у текущего пользователя больше 10 и меньше 20
{storage.52.data.1.text}
- первая текстовая строка из хранилища #52 с массивом строк
{storage.52.data.{|rand:1:3}.text}
- случайный выбор одной из первых 4-х строк (отсчёт начинается с единицы) из из хранилища #52 с массивом строк
{server.1.task.0}
- текущее значение задач, находящихся в очереди на выполнение на сервере номер 1
{server.1.load.0}
- текущее значение загрузки процессора (Load Average) сервера номер 1, полезно для отслеживания перегрузки сервера и принятия соответствующих мер.
Модификаторы
В примерах выше - вы можете заметить, что некоторые конструкции используют вертикальную черту. Она означает применение модификатора к тому, что находится перед ним. Например
{user.{uid}.first_name|str_upper}
- имя текущего пользователя будет преобразовано в ВЕРХНИЙ регистр.
Или даже несколько модификаторов сразу
{user.{uid}|name_case:acc|str_upper}
- имя текущего пользователя в винительном падеже и в верхнем регистре. "acc" здесь - параметр модификатора, пишется пишется через двоеточие с именем модификатора. Обратите внимание, он работает не со строкой first_name, а со всем массивом данных пользователя {user.{uid}}
Вы можете использовать следующие модификаторы:
Числовые и математические
rand:a:b
- случайное число от a до b
int
- преобразование в целое число.
sqrt
- квадратный корень
pow:2
- возвести в степень 2 (в квадрат)
number_format
- расставить разделители разрядов в числе, 2000000 станет 2 000 000
ceil
- округление в большую сторону
floor
- округление в меньшую сторону
round:a
- округление по математическим правилам, a - количество знаков после запятой
Строковые
str_lower
- в нижний регистр
str_upper
- в верхний регистр
urlenc
- кодирование строки для передачи по ссылке
cut:a
- обрезка по символам длинного текста (более 20 символов), где a
- желательное количество символов. Обратите внимание, что алгорит сам выбирает границу обрезки так, чтобы она пришлась на пробелы между словами.
substr:a:b
- выбор подстроки (тоже можно использовать как обрезку длинной строки), a
- стартовая позиция в строке, начиная с 0, b
- длина подстроки в символах.
str_pad:len:str
- дополнить строку слева до заданной длины, например, чтобы красиво показать значения разной длины в столбик. len - длина, str - чем дополнить.
Время и дата
date:a
- преобразование даты в формате timestamp в понятный формат, вид будет зависеть от a:
0 - 2020-01-01 12:00:01,
1 - 01.01.20 (только дата),
2 - 12:00 (только время),
3 - 1 января 12:00,
4 - 1 января,
5 - 1 января 12:00,
6 - 1 января 2020 12:00,
7 - 1 января 2020 в 12:00
8 - Понедельник (день недели)
9 - Число (день)
(если нужны ещё форматы - напишите в техподдержку)
strtotime
- преобразовать дату из строк вида Y-m-d или d.m.Y в timestamp
Массивы
last
- последний элемент массива. Применяется, разумеется, к массиву.
list
- элементы одномерного массива в список, разделённый переносами строк
arrval:name
- превратить двухмерный массив в одномерный (например для list), взяв в качестве значения поле с именем name.
count
- количество элементов массива
slice:0:5
- взять часть массива, пять элементов, начиная с нулевого элемента
reverse
- перевернуть массив
get_rand
- выбрать случайный элемент массива
Прочие
full_name
- полное имя пользователя. Модификатор применяется к массиву данных пользователя, из-за чего его иногда путают с ".first_name".
name_case:acc
- имя текущего юзера в винительном падеже. Возможные значения: именительный – nom, родительный – gen, дательный – dat, винительный – acc, творительный – ins, предложный – abl. По умолчанию nom.
calc
- посчитать выражение. Например прибавить 100 к значению ресурса можно вот так: {res.14.users.{uid}.count} + 100|calc Это может быть полезно, если вы хотите задать координату положения спрайта на картинке в зависимости от значения ресурса (чем больше очков - тем дальше уехала машинка и т.д.)
json
- преобразовать массив в json-кодированную строку. Метод устарел, потому что cover в любом случае будет выполнять это преобразование, если вы пытаетесь вывести через переменную массив.
json_decode
- обратное преобразование json-строки в массив. Полезно, когда например, нужно разобрать в переменные ответ какого-либо внешнего API.
25|progress:100:X:O:10
- нарисовать прогресс-бар символами X и O, длиной в 10 символов, где 25 (тут может быть переменная) - значение показателя, а 100 (тоже может быть переменная) - максимальное значение.
Оглавление
- 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-селекторы