Дневник достижений на Автопилоте

Видеодемонстрация настройки создания страниц
Простой вариант страницы

В данной статье мы научимся делать карту достижений для участников марафона на страницах Автопилота. Алгоритм следующий:

  • Если марафонец ни разу не принимал участия в марафоне, то при первом посещении у него создается красивая карта посещений.
  • Участник марафона переходит по специальной ссылке на страницу приложения Автопилот и видит свои выполненные задания.

В видео выше Андрей показывает прием заданий в личных сообщениях, а если вам нужно прием домашних заданий в комментариях, то давайте сделаем это, но для начала удостоверьтесь, что создан ключ по этой инструкции. Сделали? Отлично. Краткий план действий ниже:

Много текста... полетели.

Создание страницы для дневника достижений

Для создания дневника достижений воспользуемся страницами с типом: контент. Шаблоны для создания страницы можно увидеть здесь Шаблоны для быстрого копирования и CSS-стиль бонусом будет оставлен ниже:

Баннер страницы:

%photo_max%

Описание страницы:

Игрок: %first_name% %last_name%
| {table-bordered table-striped} Список заданий:| Статус выполнения: |
| -------- | -------- |
| Задание 1 | %player.lesson.1%|
| Задание 2 | %player.lesson.2%|
| Задание 3 | %player.lesson.3%|
| Задание 4 | %player.lesson.4%|

Описание CSS-стиля (вставляется на вкладке: Дизайн):

p, li {
margin: 0 0 18px;
text-align: center;
font-size: 21;
}
img {
max-width: 100%;
height: auto;
border-radius: 50%;
border: aqua;
border: 4px double blue;
}
Пример страницы
Пример страницы
Важно! При первом посещении статус выполнения lesson not found, т.к. поле lesson еще не создано, поэтому вы можете либо приглашать в рассылку Senler, а уж в реакции на подписку выдавать дневник достижений.
Если у вас участники марафона находятся в закрытом сообществе, то ссылку на страницу выдавайте от открытого сообщества, а доступ указывайте списками, иначе, те кто не в закрытом, увидят предложение установить предложение, об этом написано в соответствующей инструкции.

Вы можете показывать дневник достижений только участнику марафона, регулируя доступ на одноименной вкладке, а не участникам марафона предлагать покупку.

Описание когда страница недоступна (вставляется на вкладке: Доступ):

%first_name% %last_name%, вы не участник  марафона.
Оплатить участие можно [тут](ссылка на ваш товар)
Предложение купить не участнику марафона
Предложение купить не участнику марафона
Важно! Если у вас есть необходимость в поле баннер хранить баннер страницы, а скругленную аватарку показывать в описании, тогда редактируем описание страницы и CSS-стиль

Описание страницы:

![Аватарка пользователя ВК](%photo_max%)
Игрок: %first_name% %last_name%
| {table-bordered table-striped} Список заданий:| Статус выполнения: |
| -------- | -------- |
| Задание 1 | %player.lesson.1%|
| Задание 2 | %player.lesson.2%|
| Задание 3 | %player.lesson.3%|
| Задание 4 | %player.lesson.4%|

Описание CSS-стиля (вставляется на вкладке: Дизайн):

p, li {
margin: 0 0 18px;
text-align: center;
font-size: 21;
}
p>img {
max-width: 100%;
height: auto;
border-radius: 50%;
border: aqua;
border: 4px double blue;
}

Команда для создания дневника достижений (первое посещение)

В примере игрок приглашается на рассылку марафона и в момент подписки на группу подписчиков мы создаем ему дневник достижений (поле профиля игрока с названием: lesson). Для упрощения считаем, что при первой подписке нужно создать поле, а на отписку не реагировать и то, что интеграция с Senler и группа подписки у вас сделана заранее. Если нет, то пересмотрите инструкцию по интеграции пожалуйста.

Событие:

1) Для создания дневника достижений создаем событие: «Подписался в Senler» и указываем нужную группу подписки.

Пример события
Пример события

2) Для реакции только на первую подписку добавляем условие: «Выполнена команда»0 ровно 0 раз

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

Действия:

1) В поле профиля игрока lesson записываем JSON-объект с четырьмя заданиями для примера:

{"1":"🚫","2":"🚫","3":"🚫","4":"🚫"}
Пример действия
Пример действия

Здесь все просто JSON-объект со значениями (через запятую):

{"номер задания 1":"смайлик закрытого задания 1","номер задания 2":"смайлик закрытого задания 2","номер задания 3":"смайлик закрытого задания 3","номер задания 4":"смайлик закрытого задания 4"}

Если вы будете делать марафон и карту для закрытых сообществ, то создайте список, например, в разделе «Списки игроков для VK» и добавьте в команду с оплатой действием: «Добавить в список»

2) Действием: «Отправить сообщение» отправляем сообщение с текстом и ссылкой на дневник достижений:

 %first_name%, спасибо за участие в марафоне.
Вы можете посмотреть ваш дневник достижений здесь:
Ссылка на страницу с контентом
Пример действия
Пример действия

Команда для сдачи первого домашнего задания

В этом простом примере игрок сдает ДЗ короткой фразой, написанной один раз, а если вам нужны навороченные примеры, можете посмотреть их в этой инструкции. Вы можете настроить одну команду и скопировать ее нужное количество раз, заменив необходимые блоки копиями.

Событие:

1) Для сдачи домашнего задания делаем событие: «Написал комментарий» с текстом: задание выполнено (не забудьте вставить ID поста)

Пример события
Пример события

2) Для реакции только на первый комментарий добавляем условие: «Выполнена команда»0 ровно 0 раз (копируем по номеру из предыдущей команды)

Пример условия
Пример условия
Важно! Отписка от группы Senler не проверяется, вы можете реализовать ее самостоятельно. Событием: «Подписался на Senler» с переключателем: отписался от группы и действием: «Исключить из списка» с переключателем команды и номером команды 617461 . У вас будет другой номер команды.

3) Для реакции только на тех, кто подписался на марафон добавляем условие: «Выполнена команда»617461 (номер предыдущей команды, в примере 617461) больше 0 раз. В реакции на невыполнение можно писать комментарий с текстом:

Вы не участник марафона, %first_name%. Для участия в марафоне подпишитесь тут:
Ссылка на подписную Senler

но лучше в условиях марафона оговаривать, что если бот не отвечает, то вы что-то сделали неверно (например, не подписались на рассылку или сдали задание раньше). Условие для примера:

Пример условия
Пример условия

Действия:

1) Для ответного комментария добавляем действие «Написать комментарий» с текстом:

%first_name%, задание принято. Проверьте карту марафона по ссылке:
Ссылка на страницу с контентом

Для ответного комментария жмем Еще Больше опций — и кликаем на %object_id%

Пример действия:
Пример действия:

2) Для записи в дневник достижений используем действие «Изменить поле профиля игрока» с названием: lesson.1 (здесь 1 — номер занятия. Если у вас команда со вторым занятием марафона, то здесь указывается: 2) и галочкой.

Пример действия
Пример действия

Тестируем.

Юля не участник марафона
Юля не участник марафона
Юля получила зачет
Юля получила зачет
Андрей нет
Андрей нет

Как видно, все работает на ура. Теперь ловите продвинутый вариант.

Продвинутый вариант настройки

В описании страницы:

[Аватарка пользователя ВК](%photo_max%)
Игрок: %first_name% %last_name% (после этой строки один раз нажать ENTER)
| {table-bordered table-striped} Список заданий:| Статус выполнения: |
| -------- | -------- |
| Задание 1 | {if}%player.lesson.5%| Задание 1 выполнено|❌ Задание 1 не выполнено{/if}|
| Задание 2 | {if}%player.lesson.6%| Задание 2 выполнено|❌ Задание 2 не выполнено{/if}|
| Задание 3 | {if}%player.lesson.5%| Задание 3 выполнено|❌ Задание 3 не выполнено{/if}|
| Задание 4 | {if}%player.lesson.6%| Задание 4 выполнено|❌ Задание 4 не выполнено{/if}|

И в поле игрока lesson записываем:

{"1":0,"2":0,"3":0,"4":0}

А при сдаче записываем в поле игрока lesson.номерзадания

1

Либо проверять уровень списка, выполнение команды, но Андрей рекомендует через поля игрока.

Еще один наворот в страницах.

![Аватарка пользователя ВК](%photo_max%)
Игрок: %first_name% %last_name% (после этой строки нажать ENTER)
| {table-bordered table-striped} Список заданий:| Статус выполнения: |
| -------- | -------- |
| Задание 1 |{if}%player.lesson.1%}|[задание 1 выполнено](https://vk.com/app6177183_-41103148#p=43767) |[задание 1 не выполнено](https://vk.com/im?sel=-41103148){/if}|
| Задание 2 | {if}{command_level}948801{/command_level}|[{btn btn-success} Зеленая кнопка ](https://autopilot.pro) |[{btn btn-danger} Красная кнопка ](https://autopilot.pro) {/if} |
| Задание 3 | {if}%player.lesson.3%|❌ Задание 3 выполнено|❌ Задание 3 не выполнено{/if}|

Комбинированный вариант для понимания.

Бонус (для адаптации на мобильных устройствах):

/* Основные стили */
p, li {
margin: 0 0 18px;
text-align: center;
font-size: 21px; /* Рекомендуется указывать единицы */
}
p > img {
max-width: 100%;
height: auto;
border-radius: 50%;
border: 4px double blue;
}
/* Адаптация для мобильных устройств */
@media only screen and (max-width: 768px) {
/* Для планшетов и небольших экранов */
p, li {
font-size: 18px;
}

.modal-dialog {
width: 90%; /* Увеличиваем ширину модального окна */
margin: 20px auto; /* Добавляем отступы */
}
.table {
font-size: 14px; /* Уменьшаем размер шрифта в таблице */
width: 100%; /* Устанавливаем таблицу на всю ширину экрана */
}
.btn {
width: 100%; /* Кнопки растягиваются по ширине экрана */
margin-bottom: 10px; /* Добавляем отступы между кнопками */
}
/* Изменение размеров изображения */
#banner {
width: 100%; /* Растягиваем изображение на всю ширину экрана */
height: auto; /* Сохраняем пропорции */
}
}
@media only screen and (max-width: 480px) {
/* Для телефонов и очень маленьких экранов */
p, li {
font-size: 16px;
}
.table {
font-size: 12px;
}

.modal-dialog {
width: 95%; /* Ширина модального окна на маленьких экранах */
}
/* Убираем отступы для заголовков и текста */
h2.main-title {
margin-top: 10px;
}
}

Пример страничек от наших клиентов

Автор шедевров Валентина Трунова
Дневник достижений на Автопилоте, image #16
Дневник достижений на Автопилоте, image #17
1 of 3
Автор шедевров Валентина Трунова

Если у вас остались какие-то вопросы, или есть пожелания, или просто хотите сказать 💙 «спасибо» — сделать это можно в этом посте на стене группы. Творческих взлетов и успешного внедрения!

Вернуться на главную страницу инструкций
1371 views·2413 shares