СМС регистрация на сайте.
Если вы считаете, что регистрация на вашем сайте в чьих то глазах может стоить немного монет, или просто хотите ограничить это дело, сделав плату символической, но до сих пор не знали как это оформить...
В основе решения, имеющаяся в первой ветке система инвайтов.
================
Первое что нужно сделать, в настройках регистрации, установить "регистрация по инвайтам".
Далее, я предлагаю, в шаблоне либо полностью убрать блок показывающий по чьему приглашению зарегистрировался участник
либо сделать его видимым только админу.
В меню пользователя на странице профиля так же есть есть ссылка с количеством доступных инвайтов.
В принципе, она показывается только тем пользователям, у которых есть доступные инвайты, можно её не трогать. Нет инвайтов — нет ссылки.
Далее, для удобства, предлагаю сократить количество символов в инвайте до 7 (что бы код приглашения было проще ввести из полученной смс в окно) и сделать весь код в верхнем регистре.
В файле
/components/users/model.php в двух местах
заменить на
теперь инвайты будут вида A1Z8565
=================================================
Теперь нужно сгенерировать сами инвайты.
Я для этого использую Notepad и опции "генератор столбца", "числа для вставки", "текст для вставки", запись, автозамена и редактор столбца, что бы в конце отсечь лишние символы, если в каких строках получилось больше 7 знаков. В принципе не сложно. В прикрепленном архиве есть файл примером. 1000 кодов были сгенерированы минут за 5.
==================================================
Теперь нужно внести эти инвайты в Базу данных.
Создать SQL запрос.
Опять же Notepad.
Создать файл, вставить первую строку
INSERT INTO `cms_user_invites` (`id`, `code`, `owner_id`, `createdate`, `is_used`, `is_sended`) VALUES
Затем с помощью записи и воспроизведения продублировать 1000 раз следующую строку
(номер_инвайта, 'код_инвайта', 1, '2014-08-18 14:14:58', 0, 1),
Здесь: инвайт выдан на админа сайта (пользователь ид 1), и единица в конце говорит о том, что инвайт был активирован, то есть как бы отправлен кому то на почту и теперь ждет когда его используют.
Итак, продублировать эту строку 1000 раз, для тех кто не работал с базами данных, напоминаю, в конце последней строки в самом конце вместо запятой, должен стоять замыкающий символ ";"
Теперь с помощью редактора столбцов и генератора столбцов нужно проставить инвайтам в списке уникальные id (номер инвайта) которые бы не пересекались с уже имеющимися в базе, если они там есть (посмотрите что у вас в базе в таблице cms_user_invites какой номер крайнего инвайта и начинайте от следующей цифры), и с помощью редактора столбцов заменить "код_инвайта" на те коды, которые вы сгенерировали пять минут назад.
Теперь нужно в php Admin выполнить запрос и таким образом внести инвайты в базу данных.
Пример запроса с готовыми инвайтами в прикрепленном архиве.
==============================================
Осталось подключиться к какому нибудь смс биллингу и настроить раздачу приглашений по смс.
За основу скрипта, который будет отправлять смски с инвайтами использовал скрипт "магазина уинов" (когда то была такая индустрия уины для аськи были предметом торговли) имеющийся в документации биллинга smsbill.ru (использовать этот биллинг не рекомендую!!!) и скрипт отправляющий уведомления на email при покупке через смс взятый с биллинга x-bill.ru
Откройте в прикрепленном архиве файл registrator.php выполните настройки в строках 6, 81, 83
Один момент. На разных смс биллингах входящие GET параметры могут иметь другие названия, в таком случае придется править блок "Получение данных", что бы этот обработчик правильно работал с вашим смс биллингом.
Последний этап
Из прикрепленного архива папку /smsrega вместе с содержимым залейте в корень сайта
в ней:
registrator.php — скрипт который будет принимать запрос, брать из текстового файла инвайт и отправлять его в ответ.
/data/codes.txt — текстовый файл, в который вы должны сложить ваши инвайты, сейчас там те инвайты что создал я
/data/base.txt — сюда будет записываться статистика по работе скрипта,
/logs — здесь будут создаваться логи работы скрипта обработчика
СМС биллинг
В панели смс биллинга создайте новый проект, в настройках проекта в качестве скрипта обработчика укажите путь до вашего файла registrator.php
Обычно биллинг предоставляет возможность тестировать обработчик, используйте возможность. В ответ на тестовую смс вам должен быть выдан код инвайта, откройте на своем сайте страницу /registration в качестве неавторизованного пользователя и введите код в окно, для продолжения регистрации.
В принципе, это решение можно использовать и с Робокасса, Яндекс Деньги и т. п.
Ничто не мешает в дальнейшем, рядом с файлом registration.php положить похожий скрипт, который будет брать инвайты из того же текстового файла и таким образом настроить раздачу инвайтов при оплате через другие платежные системы. Но в таком случае, понадобится зарегистрироваться еще на каком нибудь сервисе предоставляющем услуги смс рассылок, а сам скрипт дополнить кодом, который будет отправлять ответные смс через этот сервис, тем кто оплатил регистрацию другим способом.
Может быть в будущем опишу подобный пример с другим платежным сервисом. Может быть это сделает кто то другой)
Приведенный вариант смс регистрации опробован и является рабочим, однако пост писался по памяти без дополнительных тестов. Я мог что то упустить, вы также можете что то напутать.
Поэтому:
Перед началом работы делайте резервные копии изменяемых файлов и таблиц в базе данных, если что то пошло не так… я не виноват)))
Архив
instantcms.ru/users/files/download5308.html
Если вы считаете, что регистрация на вашем сайте в чьих то глазах может стоить немного монет, или просто хотите ограничить это дело, сделав плату символической, но до сих пор не знали как это оформить...
В основе решения, имеющаяся в первой ветке система инвайтов.
================
Первое что нужно сделать, в настройках регистрации, установить "регистрация по инвайтам".
Далее, я предлагаю, в шаблоне либо полностью убрать блок показывающий по чьему приглашению зарегистрировался участник
{if $usr.inv_login} <div class="field"> <div class="title">{$LANG.INVITED_BY}:</div> <div class="value"> <a href="{profile_url login=$usr.inv_login}">{$usr.inv_nickname}</a> </div> </div> {/if}
либо сделать его видимым только админу.
{if $usr.inv_login}{if $is_admin} <div class="field"> <div class="title">{$LANG.INVITED_BY}:</div> <div class="value"> <a href="{profile_url login=$usr.inv_login}">{$usr.inv_nickname}</a> </div> </div> {/if} {/if}
В принципе, она показывается только тем пользователям, у которых есть доступные инвайты, можно её не трогать. Нет инвайтов — нет ссылки.
Далее, для удобства, предлагаю сократить количество символов в инвайте до 7 (что бы код приглашения было проще ввести из полученной смс в окно) и сделать весь код в верхнем регистре.
В файле
/components/users/model.php в двух местах
теперь инвайты будут вида A1Z8565
=================================================
Теперь нужно сгенерировать сами инвайты.
Я для этого использую Notepad и опции "генератор столбца", "числа для вставки", "текст для вставки", запись, автозамена и редактор столбца, что бы в конце отсечь лишние символы, если в каких строках получилось больше 7 знаков. В принципе не сложно. В прикрепленном архиве есть файл примером. 1000 кодов были сгенерированы минут за 5.
==================================================
Теперь нужно внести эти инвайты в Базу данных.
Создать SQL запрос.
Опять же Notepad.
Создать файл, вставить первую строку
INSERT INTO `cms_user_invites` (`id`, `code`, `owner_id`, `createdate`, `is_used`, `is_sended`) VALUES
Затем с помощью записи и воспроизведения продублировать 1000 раз следующую строку
(номер_инвайта, 'код_инвайта', 1, '2014-08-18 14:14:58', 0, 1),
Здесь: инвайт выдан на админа сайта (пользователь ид 1), и единица в конце говорит о том, что инвайт был активирован, то есть как бы отправлен кому то на почту и теперь ждет когда его используют.
Итак, продублировать эту строку 1000 раз, для тех кто не работал с базами данных, напоминаю, в конце последней строки в самом конце вместо запятой, должен стоять замыкающий символ ";"
Теперь с помощью редактора столбцов и генератора столбцов нужно проставить инвайтам в списке уникальные id (номер инвайта) которые бы не пересекались с уже имеющимися в базе, если они там есть (посмотрите что у вас в базе в таблице cms_user_invites какой номер крайнего инвайта и начинайте от следующей цифры), и с помощью редактора столбцов заменить "код_инвайта" на те коды, которые вы сгенерировали пять минут назад.
Теперь нужно в php Admin выполнить запрос и таким образом внести инвайты в базу данных.
Пример запроса с готовыми инвайтами в прикрепленном архиве.
==============================================
Осталось подключиться к какому нибудь смс биллингу и настроить раздачу приглашений по смс.
За основу скрипта, который будет отправлять смски с инвайтами использовал скрипт "магазина уинов" (когда то была такая индустрия уины для аськи были предметом торговли) имеющийся в документации биллинга smsbill.ru (использовать этот биллинг не рекомендую!!!) и скрипт отправляющий уведомления на email при покупке через смс взятый с биллинга x-bill.ru
Откройте в прикрепленном архиве файл registrator.php выполните настройки в строках 6, 81, 83
Один момент. На разных смс биллингах входящие GET параметры могут иметь другие названия, в таком случае придется править блок "Получение данных", что бы этот обработчик правильно работал с вашим смс биллингом.
Последний этап
Из прикрепленного архива папку /smsrega вместе с содержимым залейте в корень сайта
в ней:
registrator.php — скрипт который будет принимать запрос, брать из текстового файла инвайт и отправлять его в ответ.
/data/codes.txt — текстовый файл, в который вы должны сложить ваши инвайты, сейчас там те инвайты что создал я
/data/base.txt — сюда будет записываться статистика по работе скрипта,
/logs — здесь будут создаваться логи работы скрипта обработчика
СМС биллинг
В панели смс биллинга создайте новый проект, в настройках проекта в качестве скрипта обработчика укажите путь до вашего файла registrator.php
Обычно биллинг предоставляет возможность тестировать обработчик, используйте возможность. В ответ на тестовую смс вам должен быть выдан код инвайта, откройте на своем сайте страницу /registration в качестве неавторизованного пользователя и введите код в окно, для продолжения регистрации.
В принципе, это решение можно использовать и с Робокасса, Яндекс Деньги и т. п.
Ничто не мешает в дальнейшем, рядом с файлом registration.php положить похожий скрипт, который будет брать инвайты из того же текстового файла и таким образом настроить раздачу инвайтов при оплате через другие платежные системы. Но в таком случае, понадобится зарегистрироваться еще на каком нибудь сервисе предоставляющем услуги смс рассылок, а сам скрипт дополнить кодом, который будет отправлять ответные смс через этот сервис, тем кто оплатил регистрацию другим способом.
Может быть в будущем опишу подобный пример с другим платежным сервисом. Может быть это сделает кто то другой)
Приведенный вариант смс регистрации опробован и является рабочим, однако пост писался по памяти без дополнительных тестов. Я мог что то упустить, вы также можете что то напутать.
Поэтому:
Перед началом работы делайте резервные копии изменяемых файлов и таблиц в базе данных, если что то пошло не так… я не виноват)))
Архив
instantcms.ru/users/files/download5308.html
Реклама #
F_a_R_i_D 9 лет назад #
Нил™ 9 лет назад #
Alexneva 9 лет назад #
Нил™ 9 лет назад #
pdp 9 лет назад #