Skip to main content

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

В этом пособии мы расскажем как добавить ссылку в имя юзера в сообщении ТОП по переменной (способ, в равной степени применим и как к функции ТОП рефералов, так и в принципе к любым аналогичным кейсам).

КЕЙС: Создать ТОП по переменной и в имя пользователя добавить произвольную ссылку - по усмотрению самого юзера.

Приобретение функционала

Весь функционал приобретается В ВАШЕМ БОТЕ, для этого перейдите в свой бот:
☞ 🔐Админ | 🧩Расширения

ВАЖНО: Приобретение функционала для бота доступно только Создателю (хозяину) бота. Админы покупать функционал - НЕ МОГУТ!

Приведённый ниже список необходимого функционала практически весь является НЕ ОБЯЗАТЕЛЬНЫМ, и зависит от того насколько сложной вы хотите сделать данную функцию. В этом руководстве мы опишем более или менее полноценный вариант, а вы же, в своём проекте, можете урезать его до необходимого вам объёма.

Вам понадобится:

1. Переменная - 1 штука (помимо имеющейся balance) (НЕ ОБЯЗАТЕЛЬНО)
☞ 🔐Админ | 🧩Расширения | 📂Переменные

2. Пакет Токенов Функций (для начала хватит и ежемесячных) (НЕ ОБЯЗАТЕЛЬНО)
☞ 🔐Админ | 🧩Расширения | 📂Action-ы

3. Условия Форм (НЕ ОБЯЗАТЕЛЬНО)
☞ 🔐Админ | 🧩Расширения | 📂Формы

4. Базовый ТОП по Переменной (НЕ ОБЯЗАТЕЛЬНО)
☞ 🔐Админ | 🧩Расширения | 📂Переменные


❖ Создание ТОПа со ссылкой

Короткое описание

1. Приобретаем ТОП попеременный.
2. Создаём переменную для хранения ссылки.
3. Собираем необходимое выражение при помощи функций link() и bool_symb()
4. Создаём форму ввода ссылки юзером.

1. Приобретение ТОП по переменной

Приобретаем ТОП по переменной (или ТОП рефералов).

Или вообще ничего не приобретаем - если ссылку необходимо добавить просто в какой-то произвольный текст.

Функция «Базовый ТОП попеременной» позволяет выводить (формировать) топы по любой числовой Переменной. Функция также имеет плагины расширяющие её возможности.
39. Базовый ТОП по Переменной
Для подключения перейдите в вашем боте:
☞ 🔐Админ | 🧩Расширения | 📂Переменные

15. Базовый ТОП Рефералов
Для подключения перейдите в вашем боте:
☞ 🔐Админ | 🧩Расширения | 📂Рефералка

ВАЖНО: Не забудьте включить ТОП для выбранной вами переменной следуя инструкциям из описания функционала.

В данным руководстве мы рассмотрим создание ТОПа по переменной balance. Таким образом после приобретения функции «ТОП по Переменной» вам становятся доступны её макросы: макрос имени юзера и значения переменной для этого юзера. Ссылку добавлять мы будем в имя юзера и макрос (первого уровня) при этом будет выглядеть вот так: %topbalance1u%.


2. Создание переменной для ссылки

Создайте в боте ТЕКСТОВУЮ переменную для хранения ссылки.

Надо понимать что использование переменной в данном случае является не обязательным. Нужна она для того чтобы юзер мог произвольно задавать ссылку которая будет скрыта под его именем в сообщении с ТОПом. Если для вашего случая нет необходимости позволять юзеру задавать собственную ссылку, вы можете не использовать переменную, а указать её собственноручно прямо в сообщении (будет описано ниже).

Переходим в вашем боте:
☞ 🔐Админ | 🗄Переменные | 📙Текстовые | ➕Создать Переменную
Назовите переменную: "ulink" (имя может быть любым).

Смотри Руководство по переменным.

3. Создаём выражение для формирования ссылки под именем юзера

Для добавления ссылки воспользуемся функцией link() из руководства по Выражениям.

ВАЖНО: Мы понимаем что скорее всего под именем пользователя вы захотите разместить ссылку на его профиль.

Делать этого мы вам КАТЕГОРИЧЕСКИ НЕ РЕКОМЕНДУЕМ(!!!).

Юзеры представленные в ТОПе не давали вам разрешения на публикацию их адресов в публичном пространстве и делать это без их разрешения НЕ ЯВЛЯЕТСЯ ЭТИЧНЫМ. Вы сами не хотели бы чтобы ваши данные были опубликованы в случайных местах и любой из тысяч юзеров (и спамеров) узнал как вам написать. По этой причине описывать способ добавления ссылки на профиль в данном пособии мы НЕ БУДЕМ - и если, несмотря на наше предупреждение, вы всё же захотите это сделать, то разбираться в том как это сделать - вам нужно будет самим. Любой кто, после прочтения данного пособия, придёт с подобным вопросом в поддержку - будет расстроен результатом.

В большинстве случаев ссылка под именем пользователя нужна для того чтобы юзеры могли с ним связаться и единственным этичным способом это сделать является позволить ЮЗЕРУ определять самому хочет он чтобы с ним кто-то связывался или нет, а также позволить ему выбрать способ для подобного рода связи (это не обязательно должно быть личное сообщение).

Таким образом, позволить юзеру самому указать ссылку для связи будет являться единственно верным решением.

В качестве текста ссылки воспользуемся макросом имени %topbalance1u% из ТОПа по переменной, а в качестве ссылки используем макрос созданной нами текстовой переменной %ulink% в которой юзер будет (или не будет) сохранять нужную ему ссылку. Сама функция при этом будет выглядеть вот так:

link("%topbalance1u%", "%ulink%")

Если использовать выражение в таком виде то при отсутствии ссылки заданной юзером в ТОПе по переменной - будет пустое место, потому как функция link() не сработает. Если вы САМИ задаёте ссылку в переменной, то можно воспользоваться и этим вариантом, однако для нашего случая, где юзер сам определяет нужна ему ссылка или нет, мы дополнительно добавим обработку случая когда юзер эту ссылку не задал. В случае отсутствия ссылки мы просто покажем имя из макроса воспользовавшись функцией bool_symb().

{bool_symb("%ulink%"=="", "%topbalance1u%", link("%topbalance1u%", "%ulink%"))}

Условие в приведённом выше Выражении проверяет лишь наличие данных в переменной. То есть - если данные есть, то будет предпринята попытка показать имя пользователя со ссылкой, если данных нету, то будет показано просто имя пользователя как текст.

Понятно что текущее выражение можно усложнить ещё больше добавив например валидацию ссылки на наличие https://функцией startswith(), однако по нашему мнению ссылка должна валидироваться при вводе и модерироваться сразу после добавления, поэтому дополнительные валидации в самом выражении не являются необходимыми.

4. Создаём Форму для ввода переменной юзером

Чтобы сохранить ссылку в переменной, для пользователя необходимо создать Форму в режиме "ввод переменной".

Руководство по Формам.

Данный функционал решает две задачи:
1. Позволяет юзеру самому определять - хочет он чтобы с ним связывались или нет (хочет - если ссылка задана и не хочет - если не задана)
2. А так же позволяет задать саму ссылку в случае необходимости.

В сообщениях формы донесите эту мысль до вашего пользователя.

Для валидации ввода ссылки юзером можно использовать функцию startswith() из руководства по Выражениям. Для этого вам понадобится расширение:

64. Условия Форм
Для подключения перейдите в вашем боте:
☞ 🔐Админ | 🧩Расширения | 📂Рефералка

При этом Условие формы может выглядеть так:
startswith("%answer%", "%http%")

Кроме ввода ссылки, хорошо было бы иметь и возможность для юзера удалить введённую ранее ссылку. Для этого можно создать отдельную кнопку с экшеном очистки из Руководства по Action-ам

Хорошей идеей также было бы модерировать пользовательский ввод и проверять, добавлена ​​ли правильная ссылка в переменную. Для этого вы можете использовать Post-Action Сообщения и передавать все ссылки, сохранённые в переменных, в отдельную группу для модерации.
См. руководство по Action-ам
См. руководство по Группам

Таким образом у нас есть ТОП по переменной balance, в сообщении которого (под именем пользователя) может содержаться заданная им ссылка, а также Форма для ввода этой ссылки.