Перейти к содержимому


Фотография
- - - - -

(DP33) Referrals System 1.1.9

Referrals System Мод Компонент

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 32

#31 Оффлайн   akgin

    Новичок


  • Пользователи
  • Репутация
    1
    • Cообщений: 11
    • Форум:3.3.х

Отправлено 11 Октябрь 2013 - 12:26

короче под свою задачу сделал примерно так

ОСТОРОЖНО, НИЖЕ БЫДЛОКОД!

 

admin/applications_addon/other/referrals/modules_public/core/main.php

в самом конце файла заменил

$this->registry->output->silentRedirect( $this->settings['base_url'] . '&app=core&module=global&section=register' );

на это:
 

$result = ''; // Пока результат пуст
$default_port = 80; // Порт по-умолчанию

// А не в защищенном-ли мы соединении?
if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS']=='on')) {
// В защищенном! Добавим протокол...
$result .= 'https://';
// ...и переназначим значение порта по-умолчанию
$default_port = 443;
} else {
// Обычное соединение, обычный протокол
$result .= 'http://';
}
// Имя сервера, напр. site.com или www.site.com
$result .= $_SERVER['SERVER_NAME'];

// А порт у нас по-умолчанию?
if ($_SERVER['SERVER_PORT'] != $default_port) {
// Если нет, то добавим порт в URL
$result .= ':'.$_SERVER['SERVER_PORT'];
}
// Последняя часть запроса (путь и GET-параметры).
$result .= $_SERVER['REQUEST_URI'];
// Уфф, вроде получилось!

if (strlen($_SERVER['REQUEST_URI']) < 23 || strpos($result, 'app=referrals&module=core&section=main&do=checkRefferal'))
{
	$this->registry->output->silentRedirect( $this->settings['base_url'] . '&app=core&module=global&section=register' );
}
else
	$this->registry->output->silentRedirect( preg_replace('/\/r\/\d{1,6}/', '', $result) );

по факту, изначальная строка после назначения кукисов редиректит на форму авторизации

 

а мой хренокод делает это только в случае если переход совершен по обычным реф ссылкам (в if проверна на маску по маленькой длине и на обычную реф ссылку)

 

таким образом я реализовал возможность вставления реф данных в ссылки для топиков, форумов и постов

например для создания свой ссылки нужно сделать так:
Берем ссылку, этой темы и добавляем в начале /r/свой_user_id

Обычная ссылка:
http://ipbzona.ru/in...stem-119/page-3
Реф ссылка
http://ipbzona.ru/index.php/r/user_id/topic/1854-dp33-referrals-system-119/page-3
 

у кого url без index.php измените if


  • 1

Заработок и обучение заработку

#32 Оффлайн   akgin

    Новичок


  • Пользователи
  • Репутация
    1
    • Cообщений: 11
    • Форум:3.3.х

Отправлено 16 Октябрь 2013 - 12:02

Заметил новую подставу.

 

Допустим вы пригласили пользователя, он зарегистрировался по вашей ссылке, все отобразилось в логах, все правильно, все хорошо.

 

Так вот, если этот новый пользователь, позже разлогинется, а спустя еще какое то время, случайно, попадет на форум по чьей то другой реферальной ссылке (допустим скрытой на любой раздел как описано выше ), то при попытке залогиниться (а не зарегистрироваться) со старыми данными в логи модуля в админке будет занесена инфа, что пользователь зарегался под нового реферера!!!

525e4497612e2_20131016104659AM.png

Также запись появится и у "нового реферера", что под него лег новый пользователь.

Не смотря на то, что этот "новый пользователь" мог зарегистрироваться в прошлом году, а сейчас случайно попасть на форум по чужой ссылке.
Тобишь дата регистрации пользователя и пометка в логах рефералки мягко говоря не совпадают

 
При этом в кабинете "нового пользователя" реферер, под которым он действительно зарегался не меняется

525e467f95ed6_20131016105448AM.png

 

Возникает ничего себе такая путаницу, если у вас активный форум.


Полез в базу, табличка "ibf_dp3_rs_referrals", ничего нового не увидел.
Только не пойму за что отвечает поле i_user_pending; Та как в i_inviter_id может стоять одно в i_invited_id другое, а в i_user_pending третье.

Буду разбираться.

Если кто то столкнулся с таким, или просто есть, что сказать, вЭлкам.


  • 0

#33 Оффлайн   Law AC vs. Finch

    Гуру


  • Пользователи
  • Репутация
    887
    • Cообщений: 3 004
    • Форум:Нет

Отправлено 16 Октябрь 2013 - 12:11

Только не пойму за что отвечает поле i_user_pending;

Ожидание. На скрине у Вас есть статус "Утверждено". Вот за это и отвечает
  • 0





Темы с аналогичными тегами: Referrals System, Мод, Компонент