Автоматическое повышение/понижение по рангу с оповещением в ЛС

_Xz_

Легенда
не забудьте выставить для констант соответствующие им значения user_rank'а
ну и свой текст для отправки в ЛС
PHP:
define('S_MOD', 3);
define('VIP', 4);
define('S_UPLOADER', 5);
define('UPLOADER', 6);
define('S_USER', 7);
define('P_USER', 8);
define('LEECHER', 9);

$sql = DB()->fetch_rowset("
SELECT u.*, bt.*,
COUNT(tor.topic_id) as releases
FROM bb_users u
LEFT JOIN bb_bt_torrents tor ON ( tor.poster_id = u.user_id )
LEFT JOIN bb_bt_users bt ON ( bt.user_id = u.user_id )
WHERE u.user_active = 1
AND u.user_rank not IN(". ADMIN .", ". MOD .")
AND u.user_level not IN(". ADMIN .", ". MOD .")
GROUP BY u.user_id
");

foreach ($sql as $key => $row)
{
$ratio = ($row['u_down_total']) ? ($row['u_up_total'] + $row['u_up_release'] + $row['u_up_bonus']) / $row['u_down_total'] : '0';

if($row['releases'])
{
if(($row['releases'] >= 20) && ($row['user_regdate'] < (TIMENOW - 86400*30*3)))
{
// Super Uploader
$SuperUploader[] = $row['user_id'];
pm_rank($row['user_id'], $row['user_rank'], S_UPLOADER);
}
else
{
// Uploader
$Uploader[] = $row['user_id'];
pm_rank($row['user_id'], $row['user_rank'], UPLOADER);
}
// false
}
else
{
if($row['user_regdate'] < (TIMENOW - 86400*30*3))
{
if(($ratio >= 2) && ($row['u_up_total'] > 53687091200))
{
// Super User
$SuperUser[] = $row['user_id'];
pm_rank($row['user_id'], $row['user_rank'], S_USER);
}
elseif (($ratio >= 1) && ($row['u_down_total'] > 10737418240))
{
// Power User
$PowerUser[] = $row['user_id'];
pm_rank($row['user_id'], $row['user_rank'], P_USER);
}
elseif (($ratio < 1) && ($row['u_up_total'] > 5368709120))
{
// Leecher
$Leecher[] = $row['user_id'];
pm_rank($row['user_id'], $row['user_rank'], LEECHER);
}
else
{
// User
$User[] = $row['user_id'];
pm_rank($row['user_id'], $row['user_rank'], USER);
}
// false
}
elseif($row['user_regdate'] < (TIMENOW - 2592000))
{
if (($ratio >= 1) && ($row['u_down_total'] > 10737418240))
{
// Power User
$PowerUser[] = $row['user_id'];
pm_rank($row['user_id'], $row['user_rank'], P_USER);
}
elseif (($ratio < 1) && ($row['u_up_total'] > 5368709120))
{
// Leecher
$Leecher[] = $row['user_id'];
pm_rank($row['user_id'], $row['user_rank'], LEECHER);
}
else
{
// User
$User[] = $row['user_id'];
pm_rank($row['user_id'], $row['user_rank'], USER);
}
// false
}
else
{
if($ratio < 1)
{
if($row['u_up_total'] > 5368709120)
{
// Leecher
$Leecher[] = $row['user_id'];
pm_rank($row['user_id'], $row['user_rank'], LEECHER);
}
else
{
// User
$User[] = $row['user_id'];
pm_rank($row['user_id'], $row['user_rank'], USER);
}
}
else
{
if($row['u_down_total'] > 10737418240)
{
// Power User
$PowerUser[] = $row['user_id'];
pm_rank($row['user_id'], $row['user_rank'], P_USER);
}
else
{
// User
$User[] = $row['user_id'];
pm_rank($row['user_id'], $row['user_rank'], USER);
}
}
// false
}
}
}

DB()->query("UPDATE bb_users SET user_rank = ". USER ." WHERE user_id IN(". implode(', ', array_diff($User, array(''))) .")");
DB()->query("UPDATE bb_users SET user_rank = ". S_UPLOADER ." WHERE user_id IN(". implode(', ', array_diff($SuperUploader, array(''))) .")");
DB()->query("UPDATE bb_users SET user_rank = ". UPLOADER ." WHERE user_id IN(". implode(', ', array_diff($Uploader, array(''))) .")");
DB()->query("UPDATE bb_users SET user_rank = ". S_USER ." WHERE user_id IN(". implode(', ', array_diff($SuperUser, array(''))) .")");
DB()->query("UPDATE bb_users SET user_rank = ". P_USER ." WHERE user_id IN(". implode(', ', array_diff($PowerUser, array(''))) .")");
DB()->query("UPDATE bb_users SET user_rank = ". LEECHER ." WHERE user_id IN(". implode(', ', array_diff($Leecher, array(''))) .")");

function pm_rank($user_id, $user_rank, $new_rank)
{
if($user_rank > $new_rank)
{
//Понижение
//send_pm($user_id, $subject, $message, BOT_UID)
}
else if($user_rank < $new_rank)
{
//Повышение
//send_pm($user_id, $subject, $message, BOT_UID)
}
}
 
C

christopher

Гость
в каком файле вообще производится манипуляция? это единым кодом идёт? не могу вникнуть в туториал
 
Сверху