Добавяне на цвят към ранга
Автор: 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Демо :



