Webmaster общности: Predpriemach.com | SearchEngines.bg

    Добавяне на цвят към ранга

    Автор: miro_94

    ##############################################################
    ## Трудност: Лесно
    ## Инсталация: 30 минути
    ## Файлове за промяна: (10)
    ## viewonline.php
    ## admin/admin_users.php
    ## admin/admin_groups.php
    ## admin/admin_board.php
    ## includes/constants.php
    ## includes/page_header.php
    ## templates/subSilver/index_body.tpl
    ## templates/subSilver/admin/user_edit_body.tpl
    ## templates/subSilver/admin/group_edit_body.tpl
    ## templates/subSilver/admin/board_config_body.tpl
    ##
    ## Добавени файлове: (4)
    ## admin/admin_ranks_whosonline.php
    ## templates/subSilver/admin/whosonline_ranks_edit_body.tpl
    ## templates/subSilver/admin/whosonline_ranks_list_body.tpl
    ## language/lang_english/lang_erc.php
    ##
    ##############################################################
    ## Преди да направите този мод направете копие на форума си!!!
    ##############################################################
    #
    #-----[ SQL ]------------------------------------------
    #
    CREATE TABLE `phpbb_whosonline_ranks` (
    `whosonline_rank_id` tinyint(4) NOT NULL auto_increment,
    `whosonline_rank_name` varchar(50) NOT NULL default '',
    `whosonline_rank_color` varchar(9) NOT NULL default '',
    `whosonline_lang_key` smallint(1) unsigned NOT NULL default '0',
    `whosonline_rank_order` int(11) NOT NULL default '0',
    PRIMARY KEY (`whosonline_rank_id`)
    ) TYPE=MyISAM AUTO_INCREMENT=20 ;
    
    #
    #-----[ SQL ]------------------------------------------
    #
    INSERT INTO `phpbb_whosonline_ranks` VALUES (1, 'Test', 'red', 0, 10);
    
    #
    #-----[ SQL ]------------------------------------------
    #
    
    ALTER TABLE phpbb_users ADD user_whosonline_color int(11) DEFAULT '0' NOT NULL;
    
    #
    #-----[ SQL ]------------------------------------------
    #
    
    ALTER TABLE `phpbb_groups` ADD `group_color` smallint(8) DEFAULT '0' NOT NULL ;
    
    #
    #-----[ SQL ]------------------------------------------
    #
    
    INSERT INTO `phpbb_config` VALUES ('allow_group_index', '0');
    
    #
    #-----[ COPY ]------------------------------------------------
    #
    copy root/language/lang_english/lang_erc.php to language/lang_english/lang_erc.php
    copy root/admin/admin_ranks_whosonline.php to admin/admin_ranks_whosonline.php
    copy root/templates/subSilver/admin/whosonline_ranks_edit_body.tpl to templates/subSilver/admin/whosonline_ranks_edit_body.tpl
    copy root/templates/subSilver/admin/whosonline_ranks_list_body.tpl to templates/subSilver/admin/whosonline_ranks_list_body.tpl
    
    #
    #-----[ Отвори ]-----
    #
    viewonline.php
    
    #
    #-----[ Намери ]-----
    #
    //
    // Get auth data
    //
    $is_auth_ary = array();
    $is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);
    
    #
    #-----[ След това добави ]------------------------------------------
    #
    
    $ranks_sql= " SELECT * from " . WHOSONLINE_RANKS_TABLE . " ORDER BY whosonline_rank_order";
    
    if ( !($ranks_result = $db->sql_query($ranks_sql)) )
    {
    message_die(GENERAL_MESSAGE, 'Fatal Error into getting whos is online color');
    }
    
    while( $rank_row = $db->sql_fetchrow($ranks_result) )
    {
    
    $id_color[ $rank_row['whosonline_rank_id'] ] = $rank_row['whosonline_rank_color'];
    }
    
    if ( $board_config['allow_group_index'] )
    {
    
    $group_user_sql= "SELECT ug.group_id, ug.user_id, g.group_color from " . USER_GROUP_TABLE . " ug," . GROUPS_TABLE . " g, " . WHOSONLINE_RANKS_TABLE . " wr
    WHERE ug.group_id=g.group_id
    AND g.group_color <> '0'
    AND ug.user_pending <> '1'
    AND wr.whosonline_rank_id = g.group_color
    ORDER BY wr.whosonline_rank_order DESC";
    if ( !($group_user_result = $db->sql_query($group_user_sql)) )
    {
    message_die(GENERAL_MESSAGE, 'Fatal Error into getting user in group');
    }
    
    while( $group_user_row = $db->sql_fetchrow($group_user_result) )
    {
    $user_group_color[ $group_user_row['user_id'] ] = $id_color[ $group_user_row['group_color'] ];
    }
    }
    
    #
    #-----[ Намери ]-----
    #
    $sql = "SELECT u.user_id, u.username, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_time, s.session_page, s.session_ip
    
    #
    #-----[ В реда намери ]------------------------------------------
    #
    , u.user_level
    
    #
    #-----[ В реда След това добави ]------------------------------------------
    #
    , u.user_whosonline_color
    
    #
    #-----[ Намери ]-----
    #
    if ( $row['user_level'] == ADMIN )
    {
    $username = '<b style="color:#' . $theme['fontcolor3'] . '">' . $username . '</b>';
    }
    #
    #-----[ Замени с ]------------------------------------------
    #
    if ( $row['user_whosonline_color'] )
    {
    $username = '<b style="color:' . $id_color[$row[user_whosonline_color> . '">' . $username . '</b>';
    }
    else if ( $row['user_level'] == ADMIN )
    {
    $username = '<b style="color:#' . $theme['fontcolor3'] . '">' . $username . '</b>';
    }
    
    #
    #-----[ Намери ]-----
    #
    else if ( $row['user_level'] == MOD )
    {
    $username = '<b style="color:#' . $theme['fontcolor2'] . '">' . $username . '</b>';
    }
    
    #
    #-----[ След това добави ]------------------------------------------
    #
    else if ( $user_group_color[$row['user_id'>)
    {
    $username = '<b style="color:' . $user_group_color[ $row['user_id'] ] . '">' . $username . '</b>';
    }
    
    #
    #-----[ Отвори ]-----
    #
    admin/admin_users.php
    
    #
    #-----[ Намери ]------------------------------------------
    #
    require('./pagestart.' . $phpEx);
    
    #
    #-----[ След това добави ]------------------------------------------
    #
    include($phpbb_root_path . 'language/lang_' . $userdata['user_lang'] . '/lang_erc.' . $phpEx);
    
    #
    #-----[ Намери ]------------------------------------------------
    #
    $user_allowavatar = ( !empty($HTTP_POST_VARS['user_allowavatar']) ) ? intval( $HTTP_POST_VARS['user_allowavatar'] ) : 0;
    
    #
    #-----[ След това добави ]------------------------------------------
    #
    $whosonline_rank = $HTTP_POST_VARS['whosonline_rank'];
    
    #
    #-----[ Намери ]------------------------------------------------
    #
    # this is a partial search : the full line is longer
    #
    SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace
    
    #
    #-----[ В реда намери ]------------------------------------------
    #
    user_interests = '" . str_replace("\'", "''", $interests) . "'
    
    
    #
    #-----[ В реда след това добави ]------------------------------------------
    #
    , user_whosonline_color='$whosonline_rank'
    
    #
    #-----[ Намери ]------------------------------------------
    #
    //
    // Let's do an overall check for settings/versions which would prevent
    // us from doing file uploads....
    //
    
    #
    #-----[ Преди това добави ]-----
    #
    $sql = "SELECT * FROM " . WHOSONLINE_RANKS_TABLE . "";
    
    if(!$result = $db->sql_query($sql))
    {
    message_die(GENERAL_ERROR, "Couldn't obtain who's online ranks data", "", __LINE__, __FILE__, $sql);
    }
    
    $rank_rows = $db->sql_fetchrowset($result);
    $rank_count = count($rank_rows);
    $whosonlinecolor .= '<select name="whosonline_rank" class="gensmall"><option value="">Aucun</option>';
    
    for( $i = 0; $i < $rank_count; $i++)
    {
    $rank = $rank_rows[$i]['whosonline_rank_name'];
    $rank_color = $rank_rows[$i]['whosonline_rank_color'];
    $rank_id = $rank_rows[$i]['whosonline_rank_id'];
    if ($this_userdata['user_whosonline_color'] == "$rank_id")
    {
    $checked = "SELECTED";
    }
    else
    {
    $checked = '';
    }
    $whosonlinecolor .= '<option value="' . $rank_id . '" style="color:' . $rank_color . '" ' . $checked . '>' . $rank . '';
    }
    
    #
    #-----[ Намери ]------------------------------------------
    #
    'RANK_SELECT_BOX' => $rank_select_box,
    
    #
    #-----[ След това добави ]------------------------------------------
    #
    'WHOSONLINE_RANK' => $whosonlinecolor,
    
    #
    #-----[ Намери ]------------------------------------------
    #
    'L_LINK_REMOTE_AVATAR' => $lang['Link_remote_Avatar'],
    
    #
    #-----[ След това добави ]------------------------------------------
    #
    'L_WHOSONLINE_RANK' => $lang['whosonline_ranks_title'],
    
    #
    #-----[ Отвори ]-----
    #
    admin/admin_groups.php
    
    #
    #-----[ Намери ]------------------------------------------
    #
    require('./pagestart.' . $phpEx);
    
    #
    #-----[ След това добави ]------------------------------------------
    #
    include($phpbb_root_path . 'language/lang_' . $userdata['user_lang'] . '/lang_erc.' . $phpEx);
    
    #
    #-----[ Намери ]------------------------------------------
    #
    //
    // Ok, now we know everything about them, let's show the page.
    //
    
    #
    #-----[ Преди това добави ]------------------------------------------
    #
    $sql = "SELECT * FROM " . WHOSONLINE_RANKS_TABLE . "";
    if(!$result = $db->sql_query($sql))
    {
    message_die(GENERAL_ERROR, "Couldn't obtain who's online ranks data", "", __LINE__, __FILE__, $sql);
    }
    $rank_rows = $db->sql_fetchrowset($result);
    $rank_count = count($rank_rows);
    $template->assign_block_vars('whosonline_rank', array(
    'VALUE' => "0",
    'SELECT' => "",
    'NAME' => $lang['None']));
    for( $i = 0; $i < $rank_count; $i++)
    {
    $rank = $rank_rows[$i]['whosonline_rank_name'];
    $rank_color = $rank_rows[$i]['whosonline_rank_color'];
    $rank_id = $rank_rows[$i]['whosonline_rank_id'];
    if ($group_info['group_color'] == "$rank_id")
    {
    $checked = "SELECTED";
    }
    else
    {
    $checked = '';
    }
    $template->assign_block_vars('whosonline_rank', array(
    'VALUE' => $rank_id,
    'SELECT' => $checked,
    'STYLE' => $rank_color,
    'NAME' => $rank));
    }
    
    #
    #-----[ Намери ]------------------------------------------
    #
    'L_YES' => $lang['Yes'],
    
    #
    #-----[ След това добави ]------------------------------------------
    #
    'L_RANK_COLOR' => $lang['color'],
    'L_COLOR_DARK_RED' => $lang['color_dark_red'],
    'L_COLOR_RED' => $lang['color_red'],
    'L_COLOR_ORANGE' => $lang['color_orange'],
    'L_COLOR_BROWN' => $lang['color_brown'],
    'L_COLOR_YELLOW' => $lang['color_yellow'],
    'L_COLOR_GREEN' => $lang['color_green'],
    'L_COLOR_OLIVE' => $lang['color_olive'],
    'L_COLOR_CYAN' => $lang['color_cyan'],
    'L_COLOR_BLUE' => $lang['color_blue'],
    'L_COLOR_DARK_BLUE' => $lang['color_dark_blue'],
    'L_COLOR_INDIGO' => $lang['color_indigo'],
    'L_COLOR_VIOLET' => $lang['color_violet'],
    'L_COLOR_WHITE' => $lang['color_white'],
    'L_COLOR_BLACK' => $lang['color_black'],
    
    #
    #-----[ Намери ]------------------------------------------
    #
    $delete_old_moderator = isset($HTTP_POST_VARS['delete_old_moderator']) ? true : false;
    
    #
    #-----[ След това добави ]------------------------------------------
    #
    $group_color = $HTTP_POST_VARS['whosonline_rank'];
    
    #
    #-----[ Намери ]------------------------------------------------
    #
    # this is a partial search : the full line is longer
    #
    SET group_type = $group_type, group_name
    
    #
    #-----[ В реда намери ]------------------------------------------
    #
    group_moderator = $group_moderator
    
    #
    #-----[ В реда след това добави ]------------------------------------------
    #
    , group_color = '$group_color'
    
    #-----[ Намери ]------------------------------------------------
    #
    # this is a partial search : the full line is longer
    #
    $sql = "INSERT INTO " . GROUPS_TABLE . "
    
    #
    #-----[ В реда намери ]------------------------------------------
    #
    group_single_user
    
    #
    #-----[ В реда след това добави ]------------------------------------------
    #
    , group_color
    
    #
    #-----[ Намери ]------------------------------------------
    #
    VALUES ($group_type, '" . str_replace("\'", "''", $group_name) . "', '" . str_replace("\'", "''", $group_description) . "', $group_moderator, '0')";
    
    #
    #-----[ В реда намери ]------------------------------------------
    #
    '0'
    
    #
    #-----[ В реда след това добави ]------------------------------------------
    #
    , '$group_color'
    
    #
    #-----[ Отвори ]-----
    #
    admin/admin_board.php
    
    #
    #-----[ Намери ]------------------------------------------
    #
    require('./pagestart.' . $phpEx);
    
    #
    #-----[ След това добави ]------------------------------------------
    #
    include($phpbb_root_path . 'language/lang_' . $userdata['user_lang'] . '/lang_erc.' . $phpEx);
    
    #
    #-----[ Намери ]-----
    #
    $namechange_yes = ( $new['allow_namechange'] ) ? "checked=\"checked\"" : "";
    $namechange_no = ( !$new['allow_namechange'] ) ? "checked=\"checked\"" : "";
    
    #
    #-----[ След това добави ]-----
    #
    
    $allow_group_index_yes = ( $new['allow_group_index'] ) ? "checked=\"checked\"" : "";
    $allow_group_index_no = ( !$new['allow_group_index'] ) ? "checked=\"checked\"" : "";
    
    #
    #-----[ Намери ]-----
    #
    "L_MAX_SIG_LENGTH_EXPLAIN" => $lang['Max_sig_length_explain'],
    "L_ALLOW_NAME_CHANGE" => $lang['Allow_name_change'],
    
    #
    #-----[ След това добави ]-----
    #
    "L_ALLOW_GROUP_INDEX" => $lang['groups_index'],
    
    #
    #-----[ Намери ]-----
    #
    "NAMECHANGE_YES" => $namechange_yes,
    "NAMECHANGE_NO" => $namechange_no,
    
    #
    #-----[ След това добави ]-----
    #
    "ALLOW_GROUP_INDEX_YES" => $allow_group_index_yes,
    "ALLOW_GROUP_INDEX_NO" => $allow_group_index_no,
    
    #
    #-----[ Отвори ]-----
    #
    includes/constants.php
    
    #
    #-----[ Намери ]-----
    #
    ?>
    
    #
    #-----[ Преди това добави ]-----
    #
    define('WHOSONLINE_RANKS_TABLE', $table_prefix.'whosonline_ranks');
    
    #
    #-----[ Отвори ]-----
    #
    includes/page_header.php
    
    #
    #-----[ Намери ]-----
    #
    if (defined('SHOW_ONLINE'))
    {
    
    #
    #-----[ След това добави ]-----
    #
    
    $ranks_sql= " SELECT * from " . WHOSONLINE_RANKS_TABLE . " ORDER BY whosonline_rank_order";
    if ( !($ranks_result = $db->sql_query($ranks_sql)) )
    {
    message_die(GENERAL_MESSAGE, 'Fatal Error into getting whos is online color');
    }
    
    while( $rank_row = $db->sql_fetchrow($ranks_result) )
    {
    if ($rank_row['whosonline_lang_key'] && isset($lang[ $rank_row['whosonline_rank_name'] ]))
    $rank_name = $lang[ $rank_row['whosonline_rank_name'] ];
    else
    $rank_name = $rank_row['whosonline_rank_name'];
    
    $whosonline_color .= "[ <span style=\"color:". $rank_row['whosonline_rank_color'] ."\"><b>". $rank_name . "</b></span> ] ";
    $id_color[ $rank_row['whosonline_rank_id'] ] = $rank_row['whosonline_rank_color'];
    }
    
    if ( $board_config['allow_group_index'] )
    {
    
    $group_user_sql= "SELECT ug.group_id, ug.user_id, g.group_color from " . USER_GROUP_TABLE . " ug," . GROUPS_TABLE . " g, " . WHOSONLINE_RANKS_TABLE . " wr
    WHERE ug.group_id=g.group_id
    AND g.group_color <> '0'
    AND ug.user_pending <> '1'
    AND wr.whosonline_rank_id = g.group_color
    ORDER BY wr.whosonline_rank_order DESC";
    
    if ( !($group_user_result = $db->sql_query($group_user_sql)) )
    {
    message_die(GENERAL_MESSAGE, 'Fatal Error into getting user in group');
    }
    
    while( $group_user_row = $db->sql_fetchrow($group_user_result) )
    {
    $user_group_color[ $group_user_row['user_id'] ] = $id_color[ $group_user_row['group_color'] ];
    }
    }
    $template->assign_vars(array(
    'WHOSONLINE_LEGEND' => "$whosonline_color")
    );
    
    #
    #-----[ Намери ]-----
    #
    $sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip
    
    #
    #-----[ В реда намери ]------------------------------------------
    #
    , u.user_level
    
    #
    #-----[ В реда след това добави ]------------------------------------------
    #
    , u.user_whosonline_color
    
    #
    #-----[ Намери ]-----
    #
    if ( $row['user_level'] == ADMIN )
    {
    $row['username'] = '<b>' . $row['username'] . '</b>';
    $style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
    }
    
    #
    #-----[ Замени с ]------------------------------------------
    #
    if ( $row['user_whosonline_color'] )
    {
    $row['username'] = '<b>' . $row['username'] . '</b>';
    $style_color .= 'style="color:' . $id_color[$row[user_whosonline_color> . '"';
    }
    
    else if ( $row['user_level'] == ADMIN )
    {
    $row['username'] = '<b>' . $row['username'] . '</b>';
    $style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
    }
    
    #
    #-----[ Намери ]-----
    #
    else if ( $row['user_level'] == MOD )
    {
    $row['username'] = '<b>' . $row['username'] . '</b>';
    $style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
    }
    
    #
    #-----[ След това добави ]------------------------------------------
    #
    else if ( $user_group_color[$row['user_id'> )
    {
    $row['username'] = '<b>' . $row['username'] . '</b>';
    $style_color .= 'style="color:' . $user_group_color[$row['user_id'> . '"';
    }
    
    #
    #-----[ Отвори ]-----
    #
    templates/subSilver/index_body.tpl
    
    #
    #-----[ Намери ]-----
    #
    <td class="row1" align="left"><span class="gensmall">{TOTAL_USERS_ONLINE} [ {L_WHOSONLINE_ADMIN} ] [ {L_WHOSONLINE_MOD} ]<br />{RECORD_USERS}<br />{LOGGED_IN_USER_LIST}</span></td>
    
    #
    #-----[ Замени с ]------------------------------------------
    #
    <td class="row1" align="left"><span class="gensmall">{TOTAL_USERS_ONLINE}<br />
    [ {L_WHOSONLINE_ADMIN} ] [ {L_WHOSONLINE_MOD} ] {WHOSONLINE_LEGEND}<br />
    {RECORD_USERS}<br />{LOGGED_IN_USER_LIST}</span></td>
    
    #
    #-----[ Отвори ]-----
    #
    templates/subSilver/admin/user_edit_body.tpl
    
    #
    #-----[ Намери ]-----
    #
    <tr>
    <td class="row1"><span class="gen">{L_SELECT_RANK}</span></td>
    <td class="row2"><select name="user_rank">{RANK_SELECT_BOX}</select></td>
    </tr>
    
    #
    #-----[ След това добави ]------------------------------------------
    #
    <tr>
    <td class="row1"><span class="gen">{L_WHOSONLINE_RANK}</span></td>
    <td class="row2">{WHOSONLINE_RANK}</td>
    </tr>
    
    #
    #-----[ Отвори ]-----
    #
    templates/subSilver/admin/group_edit_body.tpl
    
    #
    #-----[ Намери ]-----
    #
    <tr>
    <td class="row1" width="38%"><span class="gen">{L_GROUP_NAME}:</span></td>
    <td class="row2" width="62%">
    <input class="post" type="text" name="group_name" size="35" maxlength="40" value="{GROUP_NAME}" />
    </td>
    </tr>
    
    #
    #-----[ След това добави ]------------------------------------------
    #
    <tr>
    <td class="row1" width="38%"><span class="gen">{L_RANK_COLOR}:</span></td>
    <td class="row2">
    <select name="whosonline_rank" class="gensmall">
    <!-- BEGIN whosonline_rank -->
    <option {whosonline_rank.SELECT} value="{whosonline_rank.VALUE}" style="color:{whosonline_rank.STYLE}" >{whosonline_rank.NAME}</option>
    <!-- END whosonline_rank -->
    </select>
    </td>
    </tr>
    
    #
    #-----[ Отвори ]-----
    #
    templates/subSilver/admin/board_config_body.tpl
    
    #
    #-----[ Намери ]-----
    #
    <td class="row2"><input type="radio" name="prune_enable" value="1" {PRUNE_YES} /> {L_YES} <input type="radio" name="prune_enable" value="0" {PRUNE_NO} /> {L_NO}</td>
    </tr>
    
    #
    #-----[ След това добави ]------------------------------------------
    #
    <tr>
    <td class="row1">{L_ALLOW_GROUP_INDEX}</span></td>
    <td class="row2"><input type="radio" name="allow_group_index" value="1" {ALLOW_GROUP_INDEX_YES} /> {L_ENABLED} <input type="radio" name="allow_group_index" value="0" {ALLOW_GROUP_INDEX_NO} /> {L_DISABLED}</td>
    </tr>
    
    #
    #-----[ Запазете и затворете всички файлове ]------------------------------------------
    #
    # EoM

    Демо :

    Оставете коментар