Вход Регистрация
Файл: admin/module_update_user_points.php
Строк: 107
<?php
/***************************************************************************
 *                           ©  KaspeR
 *                            -------------------
 ***************************************************************************/
 
define('IN_PHPBB', 1);

$points_config['points_name'] = isset($points_config['points_name']) ? $points_config['points_name'] : 'Points';

//
// First we do the setmodules stuff for the admin cp.
//
if( !empty($setmodules) )
{
    
$filename = basename(__FILE__);
    
$menu_name = sprintf($lang['Points_update_user'], $points_config['points_name']);
    
$module['Points_sys_settings'][$menu_name] = $filename;
    return;
}

//
// Load default header
//
$phpbb_root_path = './../';
require(
$phpbb_root_path . 'extension.inc');
require(
'./pagestart.' . $phpEx);

$confirm = (isset($HTTP_POST_VARS['confirm'])) ? TRUE : FALSE;

if (!
$confirm)
{
    
$template->set_filenames(array(
        
'confirm' => 'confirm_body.tpl')
    );

    
$template->assign_vars(array(
        
'MESSAGE_TITLE'    => sprintf($lang['Points_update_user'], $points_config['points_name']),
        
'MESSAGE_TEXT'    => sprintf($lang['Confirm_points_update'], $points_config['points_name']),
        
'L_YES'            => $lang['Yes'],
        
'L_NO'            => $lang['No'],
        
'S_CONFIRM_ACTION'    => append_sid('module_update_user_points.' . $phpEx),
        
'S_HIDDEN_FIELDS'    => '')
    );

    
$template->pparse('confirm');
    
    include(
'./page_footer_admin.'.$phpEx);
    exit;
}

$sql = "SELECT user_id 
    FROM " 
. USERS_TABLE . " 
    WHERE user_id <> " 
. ANONYMOUS;
if (!
$result = $db->sql_query($sql))
{
    
message_die(GENERAL_ERROR, 'Could not obtain the user information!', '', __LINE__, __FILE__, $sql);
}

$users = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);

$total_users = count($users);

for(
$i = 0; $i < $total_users; $i++)
{
    
$user_id = $users[$i]['user_id'];

    
$sql = 'SELECT COUNT(u.user_id) as all_posts 
        FROM ' 
. POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . ' f, ' . USERS_TABLE . ' u
        WHERE p.topic_id = t.topic_id AND t.forum_id = f.forum_id
        AND f.points_disabled = 0
        AND p.poster_id = ' 
. $user_id . '
        AND u.user_id = p.poster_id
        GROUP BY u.user_id'
;
    if (!
$result = $db->sql_query($sql))
    {
        
message_die(GENERAL_ERROR, 'Could not obtain the posts information!', '', __LINE__, __FILE__, $sql);
    }

    
$all_posts = $db->sql_fetchrow($result);
    
$db->sql_freeresult($result);
    
    
$sql = 'SELECT COUNT(u.user_id) as total_topics 
        FROM ' 
. TOPICS_TABLE . ' t, ' . FORUMS_TABLE . ' f, ' . USERS_TABLE . ' u
        WHERE t.forum_id = f.forum_id
        AND f.points_disabled = 0
        AND u.user_id = t.topic_poster
        AND t.topic_poster = ' 
. $user_id . '
        GROUP BY u.user_id'
;
    if (!
$result = $db->sql_query($sql))
    {
        
message_die(GENERAL_ERROR, 'Could not obtain the topics information!', '', __LINE__, __FILE__, $sql);
    }

    
$total_topics = $db->sql_fetchrow($result);
    
$db->sql_freeresult($result);

    
$total_posts = $all_posts['all_posts'] - $total_topics['total_topics'];
    
$total_topics = $total_topics['total_topics'];

    
$points = 0;
    
$points = $points + ($total_posts * $points_config['points_reply']);
    
$points = $points + ($total_topics * $points_config['points_topic']);
    
$points = $points + $points_config['points_register'];

    
$sql = "UPDATE " . USERS_TABLE . " 
        SET user_points = 
$points 
        WHERE user_id = 
$user_id";
    if (!
$db->sql_query($sql))
    {
        
message_die(GENERAL_ERROR, 'Could not update the user points!', '', __LINE__, __FILE__, $sql);
    }
}

message_die(GENERAL_MESSAGE, '<br /><br />' . sprintf($lang['Points_user_updated'], $points_config['points_name']). '<br /><br />');

?>
Онлайн: 2
Реклама