1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
  3. Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем Qixiw, 19 окт 2013.

?

Полезен ли был этот гайд ?

  1. Да, спс (жми "Мне нравится" =\)

    82,1%
  2. Нет.

    17,9%
  1. Автор темы
    Qixiw

    Qixiw Старожил Пользователь

    Баллы:
    103
    Привет рубаккит.
    Решил выложить свою реферальную систему, может кому надо :)
    Для её установки надо отредактировать 4 файла:
    • index.php - в корне сайта
    • register.php - в /engine/modules/
    • profile.php - в /engine/modules/
    • 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 "','".mysql_real_escape_string($_COOKIE['ref_id'])."')" );
                    
    $db->query"UPDATE " USERPREFIX "_users SET money=(money + 20) WHERE user_id='".mysql_real_escape_string($_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:
    $db->query"UPDATE " USERPREFIX "_users SET money=(money + 20) WHERE user_id='".mysql_real_escape_string($_COOKIE['ref_id'])."'");
    Эта строчка отвечает за подарок игроку, который пригласил нового игрока. (В моём случае ему даётся 20 рублей.)
    С редактированием мы закончили, осталось добавить 1 колоночку где будут хранится реферальные иды.
    Отправляем sql запрос
    Код:
    ALTER TABLE `название таблицы с пользователями` 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
    Код:
    {include file="путь до скритпа/reffer.php"}
    ps. Это мой первый гайд, я старался всё подробно расписать, если будут вопросы, пишите.
    pss. Тестировал на DLE 9.8, на других версиях не проверял, но должно работать.


    Ссылка на скрипт - RGhost
     
    Последнее редактирование: 23 дек 2013
    skaycraft, Help, GusevVasily и 21 другим нравится это.
  2. Автор темы
    Qixiw

    Qixiw Старожил Пользователь

    Баллы:
    103
    ...
     
    Последнее редактирование: 22 май 2018
    artem1458 нравится это.
  3. Style71

    Style71 Активный участник Пользователь

    Баллы:
    78
    Skype:
    testerpb71
    Имя в Minecraft:
    Style
    Просто ссылку даёт (Реф) и всё?
     
  4. lexa_kiker

    lexa_kiker Старожил Пользователь

    Баллы:
    123
    Skype:
    lexa_kiker
    Скрины в студию
     
    kaka23 и dimon377 нравится это.
  5. SaIII

    SaIII Активный участник Пользователь

    Баллы:
    58
    Имя в Minecraft:
    SaW
    А скрины можно?
     
  6. Автор темы
    Qixiw

    Qixiw Старожил Пользователь

    Баллы:
    103
    Добавил демо.
    Да, если по ней кто нибудь зарегистрируется, то игроку, чья это ссылка даётся приз (в моём случае 20р)
     
    artem1458 нравится это.
  7. SaIII

    SaIII Активный участник Пользователь

    Баллы:
    58
    Имя в Minecraft:
    SaW
    По сути не плохо, но вдруг игрок будет просто приглашать и регать твинков?
    Возможно ли сделать так, что бы монеты довались только тогда, когда он проиграет на сервере допустим 1 час
     
  8. lexa_kiker

    lexa_kiker Старожил Пользователь

    Баллы:
    123
    Skype:
    lexa_kiker
    Можно
     
    kaka23 и Сникерсни нравится это.
  9. Автор темы
    Qixiw

    Qixiw Старожил Пользователь

    Баллы:
    103
    Можно, надо написать скрипт для проверки времени онлайна и сунуть его в крон.
    Если надо, то могу сделать, но чуть позже, сейчас много дел.
     
  10. SaIII

    SaIII Активный участник Пользователь

    Баллы:
    58
    Имя в Minecraft:
    SaW
    Будем ждать... :rolleyes:
     
  11. Pennyroyal

    Pennyroyal Участник

    Баллы:
    38
    А если например человек сам себе пригласит в рефы? Нужно сделать хотя бы, чтобы он отыграл некое время на серверах
     
  12. Автор темы
    Qixiw

    Qixiw Старожил Пользователь

    Баллы:
    103
    Я уже писал выше по поводу этого. А так, кто вам мешает переделать мой способ ?
    Основу я дал, а вы уже под себя редактируйте :)
     
    artem1458 и SaIII нравится это.
  13. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Парень, а ничего, что Ensemplix и W4P поднялись таким образом и сейчас в топах будет over9000 школопроектов?
     
  14. ykpon

    ykpon Старожил Пользователь

    Баллы:
    173
    Если проект в топе, на нем играют и он нравится игрокам - это уже не "школопроект", как ты выразился. А то, что они станут выше твоего проекта, так это только твоя вина.
     
    Egor33345 и Help нравится это.
  15. RevenHell

    RevenHell Старожил Пользователь

    Баллы:
    153
    Фак, я хочу себе то что у тебя на аве >_<
    Я так понял, после каждой новой плюшки в виде скрипта или лк появляются новые школо-проекты?
    На самом деле это явление не зависит от плюшек...
     
  16. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Дело не в плюшевости скрипта, а в том, что любой школяр готов за "ОлмаСы" позвать своих школоклассников на школосервер с этим скриптом.
     
  17. Meowt

    Meowt Старожил Пользователь

    Баллы:
    123
    Улыбнуло.
     
  18. RevenHell

    RevenHell Старожил Пользователь

    Баллы:
    153
    От этого серверов не прибавиться. Игроков только.
     
  19. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Кто действительно готов на всё, чтобы поднять проект, тот пишет сам (как бы намекаю):
    http://onlymc.ru/reflist.php?r=Bars
    http://onlymc.ru/start.php?r=Bars

    PS: С проверкой по IP.
     
  20. Автор темы
    Qixiw

    Qixiw Старожил Пользователь

    Баллы:
    103

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