G
Gemini_13
Гость
Написал сегодня ночью по просьбе Lange, только вывод сделал другим. Само собой надо протестить
Недостающие ланги по своему вкусу оформите, готовые ланги прописал.
Addon: Список юзеров, которые зарегались по Вашему рефералу на аяксе
Описание: Добавляет на страницу профиля возможность посмотреть пользователей, которые зарегистрировались с Вашего реферала. Табличка выводится на аяксе, по нажатию на кнопку. IP регистрации юзера видят только модераторы и админы.
Инструкция под спойлером и отдельно прикрепил файлик.
P.S. Я думаю сам мод рефералов стоит переписать, чтобы начислять сидбонус только в том случае, если пользователь не только зарегался, но и активировал свой акк. Это более правильно и занимает больше времени, для накрутки сидбонусов.
На правах ИМХО
Недостающие ланги по своему вкусу оформите, готовые ланги прописал.
Addon: Список юзеров, которые зарегались по Вашему рефералу на аяксе
Описание: Добавляет на страницу профиля возможность посмотреть пользователей, которые зарегистрировались с Вашего реферала. Табличка выводится на аяксе, по нажатию на кнопку. IP регистрации юзера видят только модераторы и админы.
Инструкция под спойлером и отдельно прикрепил файлик.
SQL:
Открыть ajax.php
Найти:
Вставить после:
Вставить перед последней кавычкой:
Открыть includes/init_bb.php
Найти:
Вставить после:
Открыть includes/ucp/usercp_register.php
Найти:
Заменить на:
Открыть templates/default/usercp_viewprofile.tpl
Найти:
Вставить после:
Найти:
Вставить после:
Вставить в любое место в профиле (куда понравится):
Код:
CREATE TABLE `bb_referals` (
`referal_id` mediumint(8) NOT NULL DEFAULT '0',
`new_user_id` mediumint(8) NOT NULL DEFAULT '0',
PRIMARY KEY (`new_user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Открыть ajax.php
Найти:
PHP:
'change_tor_status' => array('user'),
PHP:
'get_referals' => array('user'),
Вставить перед последней кавычкой:
PHP:
// Referals
function get_referals ()
{
global $userdata, $lang;
$user_id = (int) $this->request['user_id'];
if (!$user_id) $this->ajax_die($lang['NO_USER_ID_SPECIFIED']);
if ($user_id != $userdata['user_id'] && !IS_AM) $this->ajax_die('Ты не кошерный(ая)! :)');
$sql = "
SELECT u.user_active, u.user_id, u.username, u.user_avatar, u.user_avatar_type, u.user_reg_ip, u.user_regdate, u.user_rank, u.user_opt
FROM ". BB_USERS ." u, ". BB_REFERALS ." r
WHERE r.referal_id = $user_id
AND u.user_id = r.new_user_id
ORDER BY username ASC
";
if (!$result = DB()->sql_query($sql)) $this->ajax_die('Shit happens, man...', '', __LINE__, __FILE__, $sql);
$admin_mod_th = $admin_mod_td = '';
if(IS_AM) $admin_mod_th = '<td>IP регистрации</td>';
if ($row = DB()->sql_fetchrowset($result))
{
$row_count = count($row);
$referals_list = '';
for ($i=0; $i<$row_count; $i++)
{
$avatar = get_avatar($row[$i]['user_avatar'], $row[$i]['user_avatar_type'], !bf($row[$i]['user_opt'], 'user_opt', 'allow_avatar'), 64, 64);
$user = profile_url(array('username' => $row[$i]['username'], 'user_id' => $row[$i]['user_id'], 'user_rank' => $row[$i]['user_rank']));
$reg_time = bb_date($row[$i]['user_regdate'], 'Y-m-d', 'false') . '<br />' . bb_date($row[$i]['user_regdate'], 'H:i', 'false');
$reg_ip = decode_ip($row[$i]['user_reg_ip']);
$admin_mod_td = (IS_AM) ? '<td>'. $reg_ip .'</td>' : '';
$active = ($row[$i]['user_active']) ? '<img src="images/good.gif" alt="" border="0">' : '<img src="images/bad.gif" alt="" border="0">';
$row_class = ($i % 2) ? 'row1' : 'row2';
$referals_list .= '
<tr class="'. $row_class .' tCenter" >
<td>'. $avatar .'</td>
<td>'. $user .'</td>
<td>'. $reg_time .'</td>
'. $admin_mod_td .'
<td>'. $active .'</td>
</tr>
';
}
$this->response['referals_html'] = '
<br />
<table class="mod_ip bCenter borderless" cellspacing="1">
<tr class="row3 tCenter">
<td>'. $lang['AVATAR'] .'</td>
<td>'. $lang['USER'] .'</td>
<td>Время регистрации</td>
'. $admin_mod_th .'
<td>Актив.</td>
</tr>
'. $referals_list .'
</table>
<br />
';
}
else
{
$this->ajax_die('Нет пользователей, которые зарегистрировались по рефералу');
}
}
Открыть includes/init_bb.php
Найти:
PHP:
define('BB_RANKS', 'bb_ranks');
PHP:
define('BB_REFERALS', 'bb_referals');
Открыть includes/ucp/usercp_register.php
Найти:
PHP:
if (isset($_COOKIE['ref'])) DB()->query("UPDATE ".BB_USERS." SET user_points = user_points + 100 WHERE user_id = ". intval($_COOKIE['ref']));
PHP:
// Referals
if (isset($_COOKIE['ref']))
{
DB()->query("UPDATE ".BB_USERS." SET user_points = user_points + 100 WHERE user_id = ". intval($_COOKIE['ref']));
DB()->query("INSERT INTO ". BB_REFERALS ." VALUES (". intval($_COOKIE['ref']) .", ". $new_user_id .")");
cache_rm_user_sessions(intval($_COOKIE['ref']));
}
Открыть templates/default/usercp_viewprofile.tpl
Найти:
HTML:
<!-- ENDIF / SHOW_PASSKEY -->
HTML:
<!-- IF LOGGED_IN -->
<script type="text/javascript">
ajax.referals = function(mode) {
$('#referals').html('<i class="loading-1">{L_LOADING}</i>');
ajax.exec({
action : 'get_referals',
user_id : {PROFILE_USER_ID}
});
}
ajax.callback.get_referals = function(data) {
$('#referals').html(data.referals_html);
}
</script>
<!-- ENDIF -->
HTML:
<!-- IF IS_AM --><span id="ip_list"></span><!-- ENDIF -->
HTML:
<span id="referals"></span>
HTML:
[ <a href="#" class="med" onclick="ajax.referals('get_referals'); return false;">Приглашенные пользователи</a> ]
P.S. Я думаю сам мод рефералов стоит переписать, чтобы начислять сидбонус только в том случае, если пользователь не только зарегался, но и активировал свой акк. Это более правильно и занимает больше времени, для накрутки сидбонусов.
На правах ИМХО