Вход Регистрация
Файл: includes/usercp_reputation.php
Строк: 492
<?php
/*******************************************************
 *              Разработка: Carbofos.
 *      Оптимизация под WAP: Гутник Игорь ( чел ).
 *          2009 год
 *******************************************************/

if (!defined('IN_PHPBB'))
{
    die(
'Hacking attempt');
}

include(
$phpbb_root_path 'includes/functions_reputation.' $phpEx);
include(
$phpbb_root_path 'includes/bbcode.' $phpEx);

$page_title $lang['Reputation'];

$mode input_var('mode''reputation');
$user_id $voter_id input_var(POST_USERS_URL0);
$post_id input_var(POST_POST_URL0);
$review_id input_var(POST_REVIEWS_URL0);
$post_order input_var('postorder', array('desc''asc'));
$start input_var('start'0);

if (
$post_id)
{
    
$mode 'post';
}
else
{
    if (
$review_id)
    {
        
$result db_query('SELECT * FROM {REPUTATION_TABLE} WHERE id = %d'$review_id);
        if (
$row $db->sql_fetchrow($result))
        {
            
$user_id $row['user_id'];
            
$voter_id $row['voter_id'];
            
$post_id $row['post_id'];

            switch (
$row['modification'])
            {
                case 
REPUTATION_WARNING:
                case 
REPUTATION_BAN:
                    
$mode 'warnings';
                    break;
                case 
REPUTATION_WARNING_EXPIRED:
                case 
REPUTATION_BAN_EXPIRED:
                    
$mode 'expired';
                    break;
                default:
                    
$mode 'reputation';
            }
        }
        else
        {
            
message_die(GENERAL_MESSAGE$lang['reputation_no_review_spec']);
        }
    }
    elseif (!
$user_id)
    {
        
message_die(GENERAL_MESSAGE$lang['reputation_no_user_spec']);
    }
}

switch (
$mode)
{
    case 
'given':
        
$cond "r.voter_id = $voter_id";
        
$view_param POST_USERS_URL '=' $voter_id;
        break;
    case 
'post':
        
$cond "r.post_id = $post_id";
        
$view_param POST_POST_URL '=' $post_id;
        break;
    default:
        
$cond "r.user_id = $user_id";
        
$view_param POST_USERS_URL '=' $user_id;
}

switch (
$mode)
{
    case 
'warnings':
        
$cond .= ' AND (r.modification = {REPUTATION_WARNING} OR r.modification = {REPUTATION_BAN})';
        break;
    case 
'expired':
        
$cond .= $board_config['reputation_delete_expried'] ? 'FALSE' ' AND (r.modification = {REPUTATION_WARNING_EXPIRED} OR r.modification = {REPUTATION_BAN_EXPIRED})';
        break;
    default:
        
$cond .= $board_config['reputation_positive_only'] ? ' AND r.modification = {REPUTATION_INC}' ' AND (r.modification = {REPUTATION_INC} OR r.modification = {REPUTATION_DEC})';
}

$ban_expired $warnings_expired $ban $warnings $plus $minus 0;
$result db_query("SELECT modification, COUNT(modification) cnt FROM {REPUTATION_TABLE} r
        WHERE 
$cond
        GROUP BY modification"
);
while (
$row $db->sql_fetchrow($result))
{
    switch (
$row['modification'])
    {
        case 
REPUTATION_INC$plus $row['cnt']; break;
        case 
REPUTATION_DEC$minus $row['cnt']; break;
        case 
REPUTATION_WARNING$warnings $row['cnt']; break;
        case 
REPUTATION_WARNING_EXPIRED$warnings_expired $row['cnt']; break;
        case 
REPUTATION_BAN$ban $row['cnt']; break;
        case 
REPUTATION_BAN_EXPIRED$ban_expired $row['cnt']; break;
    }
}
$reputation $plus $minus;

include(
$phpbb_root_path 'includes/page_header.' $phpEx);
$template->set_filenames(array('body' => 'profile_view_reputation.tpl'));

if (
$mode == 'post')
{

    
$result db_query('SELECT u.username, u.user_id, u.user_level, u.user_sig, u.user_sig_bbcode_uid, u.user_allowsmile, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid, u.user_reputation, u.user_reputation_plus, u.user_warnings
        FROM {POSTS_TABLE} p, {USERS_TABLE} u, {POSTS_TEXT_TABLE} pt
        WHERE p.post_id = %d
            AND pt.post_id = p.post_id
            AND u.user_id = p.poster_id'
$post_id);
    if (!
$postrow $db->sql_fetchrow($result))
    {
        
message_die(GENERAL_MESSAGE$lang['Topic_post_not_exist']);
    }
    if (
$postrow['poster_id'] == ANONYMOUS)
    {
        
message_die(GENERAL_MESSAGE$lang['reputation_anonymous_no_reviews']);
    }
    if (!
$plus && !$minus)
    {
        
message_die(GENERAL_MESSAGE$lang['reputation_no_reviews'] . '<br /><br />' sprintf($lang['reputation_msg_back_to_topic'], "<a href="" . append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=$post_id") . "#$post_id">", "</a>"));
    
}
    
$num_reviews $plus $minus;

    
$is_auth reputation_auth($postrow['forum_id'], $userdata);
    
$forums_auth = array($postrow['forum_id'] => $is_auth);

    if (!
$is_auth['auth_view_rep'])
    {
        if (!
$userdata['session_logged_in'])
        {
            
redirect(append_sid("login.$phpEx?redirect=profile.$phpEx&mode=$mode&start=$start&postorder=$post_order&$view_param"true));
        }
        
message_die(GENERAL_MESSAGE$lang['Not_Authorised']);
    }

    
$post_id $postrow['post_id'];

    if (
$userdata['session_logged_in'] && $postrow['post_time'] > $userdata['user_lastvisit'])
    {
        
$mini_post_img $images['icon_minipost_new'];
        
$mini_post_alt $lang['New_post'];
    }
    else
    {
        
$mini_post_img $images['icon_minipost'];
        
$mini_post_alt $lang['Post'];
    }
    
$mini_post_url append_sid("viewtopic.$phpEx?" POST_POST_URL '=' $post_id) . '#' $post_id;

    
$bani_img $bani $warn_img $warn $edit_img $edit $delpost_img $delpost $ip_img $ip $reportpost_img $reportpost $user_sig $l_edited_by $user_warnings $user_reputation $temp_url '';

    
$is_auth reputation_auth($is_auth$userdata$postrowtrue);

    if (
$board_config['reputation_enabled'])
    {
        
$user_reputation reputation_display($postrow$is_authtrue);
    }
    if (
$board_config['warnings_enabled'])
    {
        
$result db_query('SELECT *
            FROM {BANLIST_TABLE}
            WHERE ban_userid = %d'
$postrow['user_id']);

        
$user_warnings reputation_warnings($postrow, (bool) $db->sql_fetchrow($result), $is_auth);
    }

    if (
$board_config['warnings_enabled'])
    {
        if (
$is_auth['auth_warn'])
        {
            
$temp_url "reputation.$phpEx?mode=warning&amp;" POST_POST_URL "=" $post_id "&amp;sid=" $userdata['session_id'];
            
$warn_img '<a href="' $temp_url '">' $lang['reputation_warn_user'] . '</a>';
            
$warn '<a href="' $temp_url '">' $lang['reputation_warn_user'] . '</a>';
        }

        if (
$is_auth['auth_ban'])
        {
            
$temp_url "reputation.$phpEx?mode=ban&amp;" POST_POST_URL "=" $post_id "&amp;sid=" $userdata['session_id'];
            
$bani_img '<a href="' $temp_url '">' $lang['reputation_ban_user'] . '</a>';
            
$bani '<a href="' $temp_url '">' $lang['reputation_ban_user'] . '</a>';
        }
    }

    if ((
$userdata['user_id'] == $postrow['user_id'] && $is_auth['auth_edit']) || $is_auth['auth_mod'])
    {
        
$temp_url append_sid("posting.$phpEx?mode=editpost&amp;" POST_POST_URL "=" $post_id);
        
$edit '<a href="' $temp_url '" title="' $lang['Edit_delete_post'] . '">' $lang['Edit'] . '</a>';
    }

    if ((
$userdata['user_id'] == $postrow['user_id'] && $is_auth['auth_delete'] && $forum_topic_data['topic_last_post_id'] == $post_id) || $is_auth['auth_mod'])
    {
        
$temp_url "posting.$phpEx?mode=delete&amp;" POST_POST_URL "=" $post_id "&amp;sid=" $userdata['session_id'];
        
$delpost '<a href="' $temp_url '" title="' $lang['Delete_post'] . '">' $lang['Delete'] . '</a>';
    }

    if (
$is_auth['auth_mod'])
    {
        
$temp_url "modcp.$phpEx?mode=ip&amp;" POST_POST_URL "=" $post_id "&amp;" POST_TOPIC_URL "=" $postrow['topic_id'] . "&amp;sid=" $userdata['session_id'];
        
$ip '<a href="' $temp_url '" title="' $lang['View_IP'] . '">IP</a>';
    }
    else
    {
        if (
$board_config['reports_enabled'] && $userdata['session_logged_in'] && $userdata['user_level'] == USER)
        {
            
$temp_url "post_report.$phpEx?mode=report&amp;" POST_POST_URL "=" $post_id "&amp;sid=" $userdata['session_id'];
            
$reportpost '<a href="' $temp_url '" title="' $lang['reputation_report_post'] . '">' $lang['reputation_report'] . '</a>';
        }
    }

    
$user_profile $user_profile_img '';

    
$message prepare_display($postrow['post_text'], $postrow['bbcode_uid'], $postrow['enable_html'], $postrow['enable_smilies']);
    
$post_subject censor($postrow['post_subject']);

    if (
$postrow['enable_sig'] && $postrow['user_sig'] && $board_config['allow_sig'])
    {
        
$user_sig prepare_display($postrow['user_sig'], $postrow['user_sig_bbcode_uid'], truetrue);
        
$user_sig '<br clear="all" />_________________<br />' $user_sig;
    }

    if (
$postrow['post_edit_count'])
    {
        
$l_edit_time_total = ($postrow['post_edit_count'] == 1) ? $lang['Edited_time_total'] : $lang['Edited_times_total'];
        
$l_edited_by '<br /><br />' sprintf($l_edit_time_total$postrow['username'], create_date($board_config['default_dateformat'], $postrow['post_edit_time'], $board_config['board_timezone']), $postrow['post_edit_count']);
    }

    
$template->assign_block_vars('postrow', array(
        
'POSTER_NAME' => $postrow['username'],
        
'POST_DATE' => $post_date,
        
'POST_SUBJECT' => $post_subject,
        
'MESSAGE' => $message,
        
'SIGNATURE' => $user_sig,
        
'EDITED_MESSAGE' => $l_edited_by,
        
'POSTER_REPUTATION' => $user_reputation,
        
'POSTER_WARNINGS' => $user_warnings,

        
'REPORTPOST' => $reportpost,
        
'REPORTPOST_IMG' => $reportpost_img,
        
'RED' => $bani,
        
'RED_IMG' => $bani_img,
        
'YELLOW' => $warn,
        
'YELLOW_IMG' => $warn_img,
        
'MINI_POST_IMG' => $mini_post_img,
        
'EDIT_IMG' => $edit_img,
        
'EDIT' => $edit,
        
'IP_IMG' => $ip_img,
        
'IP' => $ip,
        
'DELETE_IMG' => $delpost_img,
        
'DELETE' => $delpost,

        
'L_POST' => $lang['Post'],
        
'L_POST_SUBJECT' => $lang['Post_subject'],
        
'L_MINI_POST_ALT' => $mini_post_alt,

        
'U_RETURN_TOPIC' => sprintf($lang['reputation_msg_back_to_topic'], '<a class="nav" href="' append_sid("viewtopic.$phpEx?" POST_POST_URL '=' $post_id) . '#' $post_id '">''</a>'),
        
'U_MINI_POST' => $mini_post_url,
        
'U_POST_ID' => $post_id)
    );

    if (
$board_config['warnings_enabled'])
    {
        
$result db_query('SELECT r.*, rt.*, u.username FROM {REPUTATION_TABLE} r, {REPUTATION_TEXT_TABLE} rt, {USERS_TABLE} u
            WHERE r.post_id = %d
                AND r.modification IN ({REPUTATION_WARNING}, {REPUTATION_BAN}, {REPUTATION_WARNING_EXPIRED}, {REPUTATION_BAN_EXPIRED})
                AND r.id = rt.id
                AND r.voter_id = u.user_id
                LIMIT 1'
$post_id);
        if (
$post_warning $db->sql_fetchrow($result))
        {
            
$template->assign_block_vars('postrow.warning'reputation_warning_tpl($post_warning));
        }
    }

    if (
$board_config['reputation_positive_only'])
    {
        
$block_title $lang['reputation_post_reviews'] . ": &nbsp; $thumb_up_img $plus";
    }
    else
    {
        
$block_title $lang['reputation_post_reviews'] . ": &nbsp; $thumb_up_img $plus &nbsp; $thumb_dn_img $minus &nbsp; (" $lang['reputation_total'] . ': ' . ($reputation '+' '') . $reputation ')';
    }
    
$block 'rep';
}
else
{
    
$result db_query('SELECT username, user_reputation, user_warnings FROM {USERS_TABLE} WHERE user_id = %d'$user_id);
    if (!(
$user $db->sql_fetchrow($result)))
    {
        
message_die(GENERAL_ERROR$lang['reputation_no_user_spec']);
    }

    
$forums_auth reputation_auth(AUTH_LIST_ALL$userdata);

    
$temp_url append_sid("profile.$phpEx?mode=viewprofile&amp;" POST_USERS_URL "=$user_id");
    
$user_profile '<a href="' $temp_url '">' $lang['Read_profile'] . '</a>';
    
$user_link '<a href="' $temp_url '">' $user['username'] . '</a>';
    if (
$mode == 'warnings')
    {
        if (
$warnings || $ban)
        {
            
$warnings_data = ($warnings $warned_img $warnings '') . ($ban ' &nbsp; ' $banned_img '');

            
$num_reviews $warnings $ban;
            
$block_title sprintf($lang['reputation_warnings_to'], $user_link) . ': &nbsp; ' $warnings_data;
        }
        else
        {
            
$message $lang['reputation_no_warnings'];
            if (
$warnings_expired || $ban_expired)
            {
                
$message .= '<br /><br /><a href="' append_sid("profile.$phpEx?mode=expired&amp;m=" 'expired' '&amp;' POST_USERS_URL "=$user_id") . '">' $lang['reputation_display_expired'] . '</a>';
            }
            else
            {
                
$message .= '<br /><br />' sprintf($lang['reputation_msg_view_profile'], '<a href="' $temp_url '">''</a>');
            }
            
message_die(GENERAL_MESSAGE$message);
        }
        
$block 'warn';
    }
    elseif (
$mode == 'expired')
    {
        if (
$warnings_expired || $ban_expired)
        {
            
$num_reviews $warnings_expired $ban_expired;
            
$block_title sprintf($lang['reputation_warnings_expired'], $user_link) . ': &nbsp; ' $warnings_expired;
        }
        else
        {
            
$message $lang['reputation_no_warnings'] . '<br /><br />' sprintf($lang['reputation_msg_view_profile'], '<a href="' $temp_url '">''</a>');
            
message_die(GENERAL_MESSAGE$message);
        }
        
$block 'warn';
    }
    else
    {
        if (
$plus || $minus)
        {
            
$num_reviews $plus $minus;
            
$block_title sprintf($lang['reputation_of'], $user_link);

            if (
$board_config['reputation_positive_only'])
            {
                
$block_title .= ': +'.$plus;
            }
            else
            {
                
$block_title .= ': +'.$plus.'/-'.$minus;
            }
        }
        else
        {
            
message_die(GENERAL_MESSAGE$lang['reputation_no_details'] . '<br /><br />' sprintf($lang['reputation_msg_view_profile'], '<a href="' $temp_url '">''</a>'));
        }
        
$block 'rep';
    }
}

$self "profile.$phpEx?mode=$mode&amp;start=$start&amp;postorder=$post_order&amp;$view_param";
$pagination generate_pagination($self$num_reviews$board_config['topics_per_page'], $start);

if (
$mode == 'warnings' || $mode == 'expired')
{
    
$l_expire = ($mode == 'warnings') ? $lang['reputation_expire'] : $lang['reputation_expired'];
    
$l_read $lang['Warning'];
    
$l_unread $lang['New_warning'];

    
$auth_edit_key 'auth_edit_warn';
    
$auth_delete_key 'auth_delete_warn';
}
else
{
    
$l_expire '';
    
$l_read $lang['Review'];
    
$l_unread $lang['New_review'];

    
$auth_edit_key 'auth_edit_rep';
    
$auth_delete_key 'auth_delete_rep';
}

$select_post_order html_select('postorder', array('asc''desc'), array('Oldest_First''Newest_First'), $post_order);

$template->assign_vars(array(
    
'L_DISPLAY_POSTS' => $lang['reputation_display'],
    
'L_GO' => $lang['Go'],
    
'L_BACK_TO_TOP' => $lang['Back_to_top'],
    
'L_REASON' => $lang['reputation_reason'],
    
'L_AUTHOR' => $lang['Author'],
    
'L_OFFICIAL' => $lang['Official'],
    
'L_WARNING' => $lang['Warning'],
    
'L_REVIEW' => $lang['Review'],
    
'L_ISSUED' => $lang['reputation_issued'],
    
'L_POST_REF' => $lang['reputation_post_ref'],
    
'L_EXPIRE' => $l_expire,
    
'L_POSTED' => $lang['Posted'],

    
'S_REVIEW_OREDR_ACTION' => append_sid($self),
    
'S_SELECT_POST_ORDER' => $select_post_order,

    
'PAGINATION' => $pagination
));

$template->assign_block_vars($block, array(
    
'BLOCK_TITLE' => $block_title,

    
'U_VIEWPROFILE' => $user_profile,
    
'U_VIEWPROFILE_IMG' => $user_profile_img,
));

$review_images = array(REPUTATION_INC => 'положительный'REPUTATION_DEC => 'отрицательный'REPUTATION_WARNING => 'предупреждение'REPUTATION_WARNING_EXPIRED => 'предупреждение'REPUTATION_BAN => 'бан'REPUTATION_BAN_EXPIRED => 'бан');

$result db_query("SELECT r.*, rt.*, u.* FROM {REPUTATION_TABLE} r, {REPUTATION_TEXT_TABLE} rt, {USERS_TABLE} u
        WHERE 
$cond
            AND r.id = rt.id
            AND r.voter_id = u.user_id
        ORDER BY r.date %s
        LIMIT %d, %d"
,
        (
$post_order == 'desc') ? 'DESC' 'ASC'$start$board_config['topics_per_page'], 0$board_config['topics_per_page']);

$report_button $board_config['reports_enabled'] && $userdata['session_logged_in'] && $userdata['user_level'] == USER && ($mode == 'reputation' || $mode == 'given');

for (
$i true$row $db->sql_fetchrow($result); $i = !$i)
{
    
$is_auth reputation_auth($forums_auth[$row['forum_id']], $userdata$rowtrue);

    if (
$row['post_id'] != NO_ID)
    {
        
$post_reference '<a href="' append_sid("viewtopic.$phpEx?" POST_POST_URL '=' $row['post_id']) . '#' $row['post_id'] . '">' $lang['reputation_post_ref'] . '</a>';
    }
    elseif (
$row['forum_id'] != NO_ID)
    {
        
$post_reference $lang['reputation_post_deleted'];
    }
    else
    {
        
$post_reference $lang['No'];
    }

    
$review $review_images[$row['modification']];
    
$expire is_null($row['expire']) ? $lang['reputation_expire_never'] : create_date($board_config['default_dateformat'], $row['expire'], $board_config['board_timezone']);

    
$ip_img $ip $delpost_img $delpost $edit_img $edit $reportpost_img $reportpost $l_edited_by '';

    if (
$is_auth['auth_mod'])
    {
        
//$temp_url = "modcp.$phpEx?mode=ip&amp;" . POST_REVIEWS_URL . '=' . $row['id'] . "&amp;sid=" . $userdata['session_id'];
        
$temp_url 'http://www.dnsstuff.com/tools/whois.ch?ip=' decode_ip($row['poster_ip']);
        
$ip '<a href="' $temp_url '" title="' $lang['View_IP'] . '">IP</a>';
    }

    if (
$is_auth[$auth_delete_key])
    {
        
$temp_url "reputation.$phpEx?mode=delete&amp;" POST_REVIEWS_URL '=' $row['id'] . '&amp;ret=' $mode '&amp;sid=' $userdata['session_id'];
        
$delpost ' <a href="' $temp_url '" title="' $lang['reputation_delete_review'] . '">удал</a>';
    }

    if (
$is_auth[$auth_edit_key])
    {
        
$temp_url "reputation.$phpEx?mode=edit&amp;" POST_REVIEWS_URL '=' $row['id'] . '&amp;ret=' $mode '&amp;sid=' $userdata['session_id'];
        
$edit ' <a href="' $temp_url '" title="' $lang['reputation_edit_review'] . '">изм</a>';
    }

    if (
$report_button)
    {
        
$temp_url "post_report.$phpEx?mode=report&amp;" POST_REVIEWS_URL '=' $row['id'] . '&amp;sid=' $userdata['session_id'];
        
$reportpost '<a href="' $temp_url '" title="' $lang['reputation_report_post'] . '">' $lang['reputation_report_post'] . '</a>';
    }

    if (
$userdata['session_logged_in'] && $row['date'] > $userdata['user_lastvisit'])
    {
        
$mini_post_img $images['icon_minipost_new'];
        
$mini_post_alt $l_unread;
    }
    else
    {
        
$mini_post_img $images['icon_minipost'];
        
$mini_post_alt $l_read;
    }

    
$mini_post_url append_sid("profile.$phpEx?mode=$mode&amp;" POST_REVIEWS_URL '=' $row['id'] . "&amp;postorder=$post_order");

    if (
$row['edit_count'])
    {
        
$l_edit_time_total = ($row['edit_count'] == 1) ? $lang['Edited_time_total'] : $lang['Edited_times_total'];
        
$l_edited_by '<br />' sprintf($l_edit_time_total$row['username'], create_date($board_config['default_dateformat'], $row['edit_time'], $board_config['board_timezone']), $row['edit_count']);
    }

    
$message prepare_display($row['text'], $row['bbcode_uid'], truetrue);
    
$class = ( !($i 2) ) ? 'row_hard' 'row_easy';

    
$template->assign_block_vars("$block.rows", array(
        
'L_MINI_POST_ALT' => $mini_post_alt,
        
'U_MINI_POST' => $mini_post_url,
        
'COMMENTS' => $message,
        
'EDITED_COMMENTS' => $l_edited_by,
        
'REVIEWER_NAME' => '<a href="'.append_sid('profile.'.$phpEx.'?mode=viewprofile&amp;u='.$row['user_id']).'">'.$row['username'].'</a>',
        
'REVIEW' => $review,
        
'ROW_CLASS' => $class,
        
'EXPIRE' => $expire,
        
'POST_REF' => $post_reference,
        
'POST_DATE' => create_date($board_config['default_dateformat'], $row['date'], $board_config['board_timezone']),
        
'REPORTPOST' => $reportpost,
        
'REPORTPOST_IMG' => $reportpost_img,
        
'EDIT_IMG' => $edit_img,
        
'EDIT' => $edit,
        
'IP_IMG' => $ip_img,
        
'IP' => $ip,
        
'DELETE_IMG' => $delpost_img,
        
'DELETE' => $delpost,
        
'MINI_POST_IMG' => $mini_post_img
    
));
}

$template->pparse('body');

include(
$phpbb_root_path 'includes/page_tail.' $phpEx);

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