Модуль с подтверждением регистрации через telegram (аналог смс подтверждения) — различия между версиями
Var null (обсуждение | вклад) (→Страница 404 (Не найденный раздел):) |
Var null (обсуждение | вклад) (→Демо регистрации через бота telegram) |
||
Строка 16: | Строка 16: | ||
'''Вид десктоп версии:''' | '''Вид десктоп версии:''' | ||
− | [[Файл:Sendmanager login.png | + | [[Файл:Sendmanager login.png|thumb|center|]] |
'''Вид мобильной версии:''' | '''Вид мобильной версии:''' |
Версия 03:38, 23 апреля 2018
Содержание
Демо регистрации через бота telegram
Проект Ebot.one представляет Демо регистрации через бота telegram.
Данный набор файлов (скачать можно по ссылкам ниже) имеет смысл использовать в качестве основы для проекта если:
- В вашей системе (например, сайте) будет регистрация пользователей.
- Нужно свести к минимуму возможность одним пользователем завести несколько аккаунтов.
- Механизм подтверждения уникальности пользователя должен быть бюджетным (сообщение от бота telegram бюджетнее смс).
- Будущая система должна поддерживать более одной языковой версии.
- Будущая система будет иметь как минимум разделение на пользователей и администраторов.
- Необходимо будет добавлять разделы.
- Необходимо чтобы была настройка какие разделы видны, а какие доступны для того или иного типа пользователя системы.
Вид десктоп версии:
Вид мобильной версии:
Данныая версия примера использует фреймфорк bootstrap, что дает системе адаптивность и возможность быстро поменять визуальную составляющую проекта, поскольку bootstrap достаточно прост в освоении, но Вам не составит труда заменить участки кода bootstrap на свои. bootstrap подключен в файле index.php (архив register_demo.zip)
Файлы
Файлы web-интерфейса регистратора:
register_demo.zip (579 Kb)
Файл дампа базы:
sender_users.sql.zip (2 Kb)
Экспорт бота для генерации кода при регистрации нового пользователя:
export_2018-04-22_21-44-21.zip (1 Kb)
Библиотека иконок: (Не обязательно)
fonts.zip (8 281 Kb)
По умолчанию файлы иконок загружаются с fontawesome.com но можно пожертвовать местом на хостинге (19,4 Mb) ради скорости загрузки иконок и скачать их по ссылке выше. В этом случае папку fonts следует положить в корень папки /register_demo/sender (из архива register_demo.zip) и прописать в файле конфига /register_demo/sender/settings.php в переменной $fonts_local = true;
Конфигурационные файлы:
Конфигурационный файл web движка - /register_demo/sender/settings.php (архив register_demo.zip).
Конфигурационные файлы бота для генерации регистрационного кода можно найти в register_demo/bots/source_reqs/77639817/SendManagerBot/ (архив register_demo.zip):
conf.php:
$admin_chat_id = '12345'; - chat_id администратора бота. Для того чтобы узнать свой chat_id (ID в телеграме) достаточно написать боту: getChatId. Это значение необходимо прописать здесь в конфигурационном файле и в настройках бота в редакторе.
$key_md5 = md5('sdfghj'); - md5 от key бота в редакторе (не путать с API KEY бота в telegram) (см. настройки бота в редакторе)
$admin_user_id = '56789'; - ID пользователя в редакторе
$bot_api_key = '12345:asdfgh'; - API KEY Бота. API KEY бота в telegram (выдает botfather) при создании бота. Также прописывается в настройках бота в редакторе.
my_sql.class - подключение к базе данных
Модули:
Модули (разделы) задаются в конфигурационном файле settings.php по пути /register_demo/sender/settings.php (архив register_demo.zip).
Для описания модулей предусмотрено два массива.
- modules - массив для названий (URL) модулей и их иконок
- modules_list - описывает какой роле (статусу) пользователя какие разделы видны и доступны. Также в этм массиве можно указать какой раздел загрузить после авторизации (захода в систему) пользователя. Например, администратора система перебросит на администрационный модуль, а пользователя на пользовательский.
Для добавления нового раздела достаточно продублировать модуль demo по пути register_demo/sender/modules, прописать его в массивах modulesи modules_list файла файда settings.php (архив register_demo.zip), а также поменять название функции в файле register_demo/sender/modules/ИМЯ ВАШЕГО МОДУЛЯ/locale/locale_data.php на getИмяВашегоМодуляMas, где ИмяВашегоМодуля должно быть с заглавной буквы. Например, если Ваш новый модуль называется emails то функция будет называться getEmailsMas. В этой функции следует описывать языковые версии используемых в модуле фраз. Пример языковых различий можно посмотреть в базовом файле языков locale_data.php по пути register_demo/sender/locale.
Русскоязычные (и другие языки) имена разделов находятся в файле locale_data.php по пути register_demo/sender/locale.
Языки:
Перечень языков которые вы хотите иметь в системе следует указать в locale_utils.php в функции getLangs
Базовые слова системы (и их перевод), такие как названия базовых модулей (разделов) и т.д. хранятся в файле locale_data.php по пути register_demo/sender/locale
Фразы модулей хранятся в locale_data.php по пути register_demo/sender/modules/ИМЯ МОДУЛЯ
Русскоязычные (и другие языки) имена разделов находятся в файле locale_data.php по пути register_demo/sender/locale.
Роли (статусы пользователей):
Первый пользователь, который зарегистрируется в системе будет иметь роль (статус) root, а все последующие - user. Раздела, которые будут видны пользователем того или иного статуса можно корректировать в массиве modules_list в конфигурационном файле settings.php (архив register_demo.zip). В этом же массиве можно указать какие модули доступны для пользователя.
функция getModulesList, которая используется в некоторых элементах массива modules_list возвращает список всех модулей за исключением тех, которые переданы ей в качестве аргумента. Например, если вы хотите разрешить доступ ко всем модулям - строчка для указания доступа будет выглядеть так: $add['modules_access'] = getModulesList(); Но если вы хотите разрешить доступ ко всем разделам кроме main и registration (чего не стоит делать вероятно) - то это будет выглядеть как: $add['modules_access'] = getModulesList(array("main", "registration"));
Регистрационный бот:
Имя бота, генерирующего для новых пользователей код, можно указать в конфигурационном файле settings.php по пути /register_demo/sender/settings.php (архив register_demo.zip).
Пример генерации кода для регистрации нового пользователя:
Полученный от бота код пользователь введет при регистрации в Вашей системе:
Файлы бота можно скачать по ссылкам выше.
О создании бота можно прочитать тут.
Следует иметь ввиду, что при необходимости система дописывается до работы с подтверждением через СМС или Email.
Для работы через новый сервис достаточно:
- чтобы система генерировала новую запись в базе в таблице sender_users и в поле hash писала нужный Вам код.
- поменять текст, говорящий, что генерация кода производится ботом. Сделать это можно в файле index.php по пути register_demo/sender/modules/registration.
Страница 404 (Ненайденный раздел):
В случае если модуль (раздел) не найден система выдаст ошибку 404:
Страница 401 (Доступ закрыт):
В случае если запрашиваемый пользователем модуль закрыт для пользователей его статуса система выдаст страницу модуля 401 (который и отвечает за это). На самом деле даже радел 404, содержимое которого выдается в случае несуществующей страницы (как и любой модуль, хранящийся в register_demo/sender/modules) может при необходимости быть закрыт для пользователя.
ЧПУ
Фалы примера работают через файл index.php по пути /register_demo/sender/ (архив register_demo.zip), выбранная пользователем страница отображается через подключение соответствующего странице модуля. Ссылки на страницы генерируются через функцию getModuleLink файла modules_utils.php по пути register_demo\sender\modules. При необходимости файлы можно настроить на работу через ЧПУ, для чего необходимо произвести соответствующие изменения в указанной функции.
Версия
Текущая версия библиотеки 1.1.1