1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

Реферальные ссылки

Discussion in 'Моды - Mods' started by lem1x, Feb 12, 2011.

  1. lem1x Thread starter Active member


    Offline
    Message Count:
    166
    Likes Received:
    68
    Кто то на днях спрашивал мод реферальных ссылок.
    Установка:
    1)Все файлы из архива в корень
    2)запрос в бд:
    PHP:
    CREATE TABLE IF NOT EXISTS `refer_track` (
      `
    idbigint(20NOT NULL auto_increment,
      `
    source_idvarchar(255NOT NULL,
      `
    source_namevarchar(255NOT NULL,
      `
    receiver_idvarchar(255NOT NULL,
      `
    receiver_namevarchar(255NOT NULL,
      `
    date_of_jointimestamp NOT NULL default CURRENT_TIMESTAMP,
      
    PRIMARY KEY  (`id`)
    ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=12;
    3)Открыть signup.php
    После
    PHP:
    if($user->user_exists)
    {
      
    header("Location: user_home.php");
      exit();
    }
    Вставить
    PHP:
      if(isset($_GET['ref'])){
        
    $_SESSION['ref']=$_GET['ref'];
    }
    4)После
    PHP:
    $new_user->user_create($signup_email$signup_username$signup_password$signup_timezone$signup_lang$signup_cat$field->field_query);
    Вставить
    PHP:
    $r1=mysql_query("select user_id  from se_users WHERE user_username='".$_SESSION['ref']."'" ) or die(mysql_error());
        
    $a1=mysql_fetch_array($r1);
         
    $r2=mysql_query("select user_id  from se_users WHERE user_username='".$signup_username."'" ) or die(mysql_error());
         
    $a2=mysql_fetch_array($r2);
         if(
    $_SESSION['ref']!='')
         {
            
    mysql_query("INSERT INTO refer_track SET source_id='".$a1[user_id]."', source_name='".$_SESSION[ref]."', receiver_id='".$a2[user_id]."', receiver_name='".$signup_username."'") or die(mysql_error());
            
    $_SESSION['ref']='';
        }
    5)Для отображения в админке - в admin_header.tpl найти
    PHP:
      <div class='menu'><a href='admin_viewadmins.php' class='menu'><img src='../images/icons/admin_admins16.gif' border='0' class='icon2'>{lang_print id=5}</a></div>
    И после вставить
    PHP:
    <div class='menu'><a href='admin_refer.php' class='menu'><img src='../images/icons/admin_admins16.gif' border='0' class='icon2'>Refer Report</a></div>
    6)Вместо ref1.png ref2.png ref3.png ref4.png вставить свои изображения (они сделаны в качестве подписи на форумы и т.д)

    P.S:Забыл написать, что взято с ресурса Nico-izo

    Attached Files:

  2. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Почему не utf8 ?
  3. Red Rabbit Tough member


    Offline
    Message Count:
    898
    Likes Received:
    193
    Для тех кто не любит беспорядка и каши, то запрос в бд такой. Отличия - кодировка исправлена в utf8, тип id изменен в mediumint ибо всё-равно столько не наберется, и уж тем более неразумно ставить такой тип и ограничивать его в сотни раз, авто инкремент исправлен в 0, чтобы исчисление у вас начиналось как у белых людей, с единицы, а не с 13. :)

    Code:
    CREATE TABLE IF NOT EXISTS `refer_track` (
      `id` MEDIUMINT(20) NOT NULL auto_increment,
      `source_id` varchar(255) NOT NULL,
      `source_name` varchar(255) NOT NULL,
      `receiver_id` varchar(255) NOT NULL,
      `receiver_name` varchar(255) NOT NULL,
      `date_of_join` timestamp NOT NULL default CURRENT_TIMESTAMP,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=0;
    Смутило

    PHP:
    $r1=mysql_query("select user_id  from se_users WHERE user_username='".$_SESSION['ref']."'" ) or die(mysql_error());
        
    $a1=mysql_fetch_array($r1);
         
    $r2=mysql_query("select user_id  from se_users WHERE user_username='".$signup_username."'" ) or die(mysql_error());
         
    $a2=mysql_fetch_array($r2);
         if(
    $_SESSION['ref']!='')
         {
            
    mysql_query("INSERT INTO refer_track SET source_id='".$a1[user_id]."', source_name='".$_SESSION[ref]."', receiver_id='".$a2[user_id]."', receiver_name='".$signup_username."'") or die(mysql_error());
            
    $_SESSION['ref']='';
        }
    1. Названия переменных.
    2. В SE разве нет класса для выполнения операций с mysql? Этот код не логируется, и не выведет ошибки в случае чего, кроме того это некрасиво, и неправильно.

    Вот валидный код.

    PHP:
      $ref_username_query $database->database_query("SELECT user_id FROM se_users WHERE user_username='".$_SESSION['ref']."'");
      
    $ref_username $database->database_fetch_array($ref_username_query);
      
    $ref_newuser_query $database->database_query("SELECT user_id FROM se_users WHERE user_username='".$signup_username."'");
      
    $ref_newuser $database->database_fetch_array($ref_newuser_query);
        if ( 
    $_SESSION['ref'] != '')
        {
            
    $database->database_query("INSERT INTO refer_track SET source_id='".$ref_username['user_id']."', source_name='".$_SESSION ['ref']."', receiver_id='".$ref_newuser['user_id']."', receiver_name='".$signup_username."'");
            
    $_SESSION['ref'] = '';
        }
  4. lem1x Thread starter Active member


    Offline
    Message Count:
    166
    Likes Received:
    68
    Благодарю за исправления - я его не разбирал и не вникал, т.к. не использовал пока в назначенной цели.
  5. stabker User


    Offline
    Message Count:
    67
    Likes Received:
    0
    Спасибо! То что искал! А как можно вывести количество зарегистрированных по вашей реферальной ссылке? Или их имена вывести в список на странице refer.php?
  6. pogi User


    Offline
    Message Count:
    67
    Likes Received:
    1
    я не пойму как он поинты начисляет? где это прописано?
  7. stabker User


    Offline
    Message Count:
    67
    Likes Received:
    0
    pogi, я тоже не пойму, где тут это прописано! Установил, приглашает и показывает кто пригласил в админке, но поинты не дает. Мне кажется мод не полный. Я нашел архив с этим модом и там больше файлов. А как тут поинты выдаются? Сразу или после 20, 50 и т.д. приглашенных? А то у меня пользователи друзей пригасили, а поинты не добавились. Кто подскажет?
  8. lem1x Thread starter Active member


    Offline
    Message Count:
    166
    Likes Received:
    68
    Поощрять "приглашающих" юзеров - Вы должны сами. Будь то - пополнения рейтинга, поинтов и т.д.
    Сдесь только показывает - ид приглашающих.
    Не спорю, что не дописанный мод, но это все, что нашел. Будет время и больше знаний - доработаю, чтоб показывало для каждого ID кол-во приглашенных, и чтоб поинты начислялись автоматом.


    stabker, Выкладывайте, что у Вас там за архив. Посмотрим...
  9. stabker User


    Offline
    Message Count:
    67
    Likes Received:
    0
    lem1x, ааа, теперь понятно. Было бы неплохо это автоматизировать, чтобы поинты сами приходили приглашающим.
    Архив залил, посмотрите. Я вот только сам там не понимаю значения некоторых файлов в этом архиве.

    Attached Files:

  10. pogi User


    Offline
    Message Count:
    67
    Likes Received:
    1
    Тоже самое :))

Share This Page

All rights reserved SocEngine.ru ©