Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб [DLE][FIX] Реферальная система

Kela-4D

Старожил
Пользователь
Баллы
143
Имя в Minecraft
Kelatyh
Оригинал тема > ТЫК
Привет РБ.
Понадобилась рефералка, решил сам слепить. С кусков. Вот решил пофиксить рефералку от @Qixiw .
Для её установки надо отредактировать 4 файла:
  1. index.php - в корне сайта
  2. register.php - в /engine/modules/
  3. profile.php - в /engine/modules/
  4. userinfo.tpl - в шаблонах
И так, начнём !
Открываем index.php и ищем строчку
PHP:
$tpl->load_template ( 'main.tpl' );
Под ней пишем:
PHP:
if((isset($_GET['ref'])) && (!isset($_COOKIE['ref_id'])))
setcookie("ref_id",$_GET['ref'],time()+3600);
Мы отредактировали index.php, сохраняем и закрываем.
Далее открываем register.php и ищем примерно такую строчку:
PHP:
$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );
Заменяем её на такую
PHP:
if(isset($_COOKIE['ref_id'])){
                $db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip, reffer_id) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "','".$db->safesql($_COOKIE['ref_id'])."')" );
                $db->query( "UPDATE " . USERPREFIX . "_users SET money=money +20 WHERE user_id='".$db->safesql($_COOKIE['ref_id'])."'");
            }else{
                $db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );
            }
Здесь же Находим
PHP:
$_REQUEST['id'] = htmlspecialchars( $_REQUEST['id'], ENT_QUOTES, $config['charset'] );
Вставляем ниже
PHP:
setcookie("ref_id", "", 1);
Тут закончили и рассмотрим эту строчку
PHP:
$db->query( "UPDATE " . USERPREFIX . "_users SET money=money +20 WHERE user_id='".$db->safesql($_COOKIE['ref_id'])."'");
Эта строчка отвечает за подарок игроку, который пригласил нового игрока. (В моём случае ему даётся 20 рублей.)
С редактированием мы закончили, осталось добавить 1 колоночку где будут хранится реферальные иды.
Отправляем sql запрос
PHP:
ALTER TABLE `dle_users` ADD `reffer_id` INT( 11 ) NOT NULL DEFAULT '0'
Теперь игрок сможет приглашать людей на проект по ссылке
http://site.ru/?ref={тут_его_ид}
Теперь сделаем вывод такой ссылки в профиле игрока и вывод всех приглашённых игроков.
Открываем profile.php и ищем такую строчку:
PHP:
$tpl->set( '{usertitle}', stripslashes( $row['name'] ) );
ниже добавляем такую:
PHP:
$tpl->set( '{userid}', stripslashes( $row['user_id'] ) );
Сохраняем, закрываем. Теперь в шаблоне профиля (userinfo.tpl) вы можете добавить реферальную ссылку http://site.ru/?ref={userid}
Так же ниже я прикреплю скрипт для вывода всех приглашённых игроков. Его так же иклюдем в userinfo.tpl
PHP:
{include file="путь до скритпа/reffer.php"}
Ссылка на скрипт - RGhost
 
Последнее редактирование:
Хахаха... Как ты смог пофиксить рабочий оригинальный скрипт?
 
Лучше бы кто-нибудь привязал к плагину PlayTime, чтобы игроки не регали кучу акков и тырили ресурсы/валюту на халяву...
А то перепишут три строчки, а смысла 0...
 
Лучше бы кто-нибудь привязал к плагину PlayTime, чтобы игроки не регали кучу акков и тырили ресурсы/валюту на халяву...
А то перепишут три строчки, а смысла 0...
У меня своя тоже, работает так что после 3 часов выдает бонус рефералу!
 
У меня под другой движок было. Могу дописать данную систему за плату
 
Эта реф.система фигня. (Я не могу написать лучше)
Но, но просто ctrl+shift+n нажимаешь и регистрируешь сколько хочешь акков. (Проверено)
ctrl+shift+n - режим инкогнито
 
Эта реф.система фигня. (Я не могу написать лучше)
Но, но просто ctrl+shift+n нажимаешь и регистрируешь сколько хочешь акков. (Проверено)
ctrl+shift+n - режим инкогнито
Молодец. Это простая паб система.
Для защиты:
1)Регистрация по email(Запретить 10минутные email)
2)Сделать подтверждение + выдачу поощрения за отыгранные % часов!, с помощью PlayTime.(Давно реализовано в паб не скину).
 

Поделиться этой страницей

Назад
Верх