Usch, det låter inte bra Holger. Här är filen iaf:
Kod: Markera allt
<?php
/***************************************************************************
* admin_ranks.php
* -------------------
* begin : Thursday, Jul 12, 2001
* copyright : (C) 2001 The phpBB Group
* email : support@phpbb.com
*
* $Id: admin_ranks.php,v 1.13.2.3 2002/11/28 00:11:39 psotfx Exp $
*
***************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
if( !empty($setmodules) )
{
$file = basename(__FILE__);
$module['Users']['Ranks'] = $file;
return;
}
define('IN_PHPBB', 1);
//
// Let's set the root dir for phpBB
//
$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);
if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
{
$mode = (isset($HTTP_GET_VARS['mode'])) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];
$mode = htmlspecialchars($mode);
}
else
{
//
// These could be entered via a form button
//
if( isset($HTTP_POST_VARS['rank_add']) )
{
$mode = "rank_add";
}
else if( isset($HTTP_POST_VARS['rank_save']) )
{
$mode = "rank_save";
}
else if( isset($HTTP_POST_VARS['rankset_add']) )
{
$mode = "rankset_add";
}
else if( isset($HTTP_POST_VARS['rankset_save']) )
{
$mode = "rankset_save";
}
else if( isset($HTTP_POST_VARS['update_ranks_apply']) )
{
$mode = "update_ranks_apply";
}
else if( isset($HTTP_POST_VARS['update_rankset_apply']) )
{
$mode = "update_rankset_apply";
}
else
{
$mode = "";
}
}
$groups = array();
$sql = "SELECT group_id, group_name
FROM " . GROUPS_TABLE . "
WHERE group_single_user <> " . TRUE;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain group data", "", __LINE__, __FILE__, $sql);
}
while ( $groupsrow = $db->sql_fetchrow($result) )
{
$groups[$groupsrow['group_id']] = $groupsrow['group_name'];
}
$templates = array();
$sql = "SELECT themes_id, template_name
FROM " . THEMES_TABLE;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain template data", "", __LINE__, __FILE__, $sql);
}
while ( $templatesrow = $db->sql_fetchrow($result) )
{
$templates[$templatesrow['themes_id']] = $templatesrow['template_name'];
}
// Restrict mode input to valid options
$mode = ( in_array($mode, array('add', 'edit', 'save', 'delete')) ) ? $mode : '';
if( $mode != "" )
{
if( $mode == "rank_edit" || $mode == "rank_add" )
{
//
// They want to add a new rank, show the form.
//
$rank_id = ( isset($HTTP_GET_VARS['id']) ) ? intval($HTTP_GET_VARS['id']) : 0;
$s_hidden_fields = "";
if( $mode == "rank_edit" )
{
if( empty($rank_id) )
{
message_die(GENERAL_MESSAGE, $lang['Must_select_rank']);
}
$sql = "SELECT * FROM " . RANKS_TABLE . "
WHERE rank_id = $rank_id";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Couldn't obtain rank data", "", __LINE__, __FILE__, $sql);
}
$rank_info = $db->sql_fetchrow($result);
$s_hidden_fields .= '<input type="hidden" name="id" value="' . $rank_id . '" />';
} else {
$rank_info['rank_special'] = 0;
$rank_info['rankset_id'] = RANKSET_DEFAULT;
}
$s_hidden_fields .= '<input type="hidden" name="mode" value="rank_save" />';
$rank_is_special = ( $rank_info['rank_special'] ) ? "checked=\"checked\"" : "";
$rank_is_not_special = ( !$rank_info['rank_special'] ) ? "checked=\"checked\"" : "";
$template->set_filenames(array(
"body" => "admin/ranks_edit_body.tpl")
);
$sql = "SELECT rankset_id, rankset_title
FROM " . RANKS_SETS_TABLE . "
ORDER BY rankset_hidden ASC";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Couldn't obtain prefix data", "", __LINE__, __FILE__, $sql);
}
$rankset_select = '<select name="rankset_id" style="width:95%;">';
while ( $row = $db->sql_fetchrow($result) )
{
$selected = ( $rank_info['rankset_id'] == $row['rankset_id'] ) ? ' selected="selected"' : '';
$rankset_select .= '<option value="' . $row['rankset_id'] . '"'. $selected . '>' . stripslashes($row['rankset_title']) . '</option>';
}
$rankset_select .= '</select>';
$template->assign_vars(array(
"RANK" => $rank_info['rank_title'],
"SPECIAL_RANK" => $rank_is_special,
"NOT_SPECIAL_RANK" => $rank_is_not_special,
"MINIMUM" => ( $rank_is_special ) ? "" : $rank_info['rank_min'],
"IMAGE" => ( $rank_info['rank_image'] != "" ) ? $rank_info['rank_image'] : "",
"IMAGE_DISPLAY" => ( $rank_info['rank_image'] != "" ) ? '<img src="../' . $rank_info['rank_image'] . '" />' : "",
"RANKSET_SELECT" => $rankset_select,
"L_RANKS_TITLE" => $lang['Ranks_title'],
"L_RANKS_TEXT" => $lang['Ranks_explain'],
"L_RANK_TITLE" => $lang['Rank_title'],
"L_RANK_SPECIAL" => $lang['Rank_special'],
"L_RANK_MINIMUM" => $lang['Rank_minimum'],
"L_RANK_IMAGE" => $lang['Rank_image'],
"L_RANK_IMAGE_EXPLAIN" => $lang['Rank_image_explain'],
"L_RANKSET" => $lang['Rankset'],
"L_SUBMIT" => $lang['Submit'],
"L_RESET" => $lang['Reset'],
"L_YES" => $lang['Yes'],
"L_NO" => $lang['No'],
"S_RANK_ACTION" => append_sid("admin_ranks.$phpEx"),
"S_HIDDEN_FIELDS" => $s_hidden_fields)
);
}
else if( $mode == "rank_save" )
{
//
// Ok, they sent us our info, let's update it.
//
$rank_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : 0;
$rank_title = ( isset($HTTP_POST_VARS['title']) ) ? trim($HTTP_POST_VARS['title']) : "";
$special_rank = ( $HTTP_POST_VARS['special_rank'] == 1 ) ? TRUE : 0;
$min_posts = ( isset($HTTP_POST_VARS['min_posts']) ) ? intval($HTTP_POST_VARS['min_posts']) : -1;
$rank_image = ( (isset($HTTP_POST_VARS['rank_image'])) ) ? trim($HTTP_POST_VARS['rank_image']) : "";
$rankset_id = ( isset($HTTP_POST_VARS['rankset_id']) ) ? intval($HTTP_POST_VARS['rankset_id']) : RANKSET_DEFAULT;
if( $rank_title == "" )
{
message_die(GENERAL_MESSAGE, $lang['Must_select_rank']);
}
if( $special_rank == 1 )
{
$max_posts = -1;
$min_posts = -1;
}
//
// The rank image has to be a jpg, gif or png
//
if($rank_image != "")
{
if ( !preg_match("/(\.gif|\.png|\.jpg)$/is", $rank_image))
{
$rank_image = "";
}
}
if ($rank_id)
{
if (!$special_rank)
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_rank = 0
WHERE user_rank = $rank_id";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, $lang['No_update_ranks'], "", __LINE__, __FILE__, $sql);
}
}
$sql = "UPDATE " . RANKS_TABLE . "
SET rank_title = '" . str_replace("\'", "''", $rank_title) . "', rank_special = $special_rank, rank_min = $min_posts, rank_image = '" . str_replace("\'", "''", $rank_image) . "', rankset_id = $rankset_id
WHERE rank_id = $rank_id";
$message = $lang['Rank_updated'];
}
else
{
$sql = "INSERT INTO " . RANKS_TABLE . " (rank_title, rank_special, rank_min, rank_image, rankset_id)
VALUES ('" . str_replace("\'", "''", $rank_title) . "', $special_rank, $min_posts, '" . str_replace("\'", "''", $rank_image) . "', $rankset_id)";
$message = $lang['Rank_added'];
}
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't update/insert into ranks table", "", __LINE__, __FILE__, $sql);
}
$message .= "<br /><br />" . sprintf($lang['Click_return_rankadmin'], "<a href=\"" . append_sid("admin_ranks.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
message_die(GENERAL_MESSAGE, $message);
}
else if( $mode == "rank_delete" )
{
//
// Ok, they want to delete their rank
//
if( isset($HTTP_POST_VARS['id']) || isset($HTTP_GET_VARS['id']) )
{
$rank_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : intval($HTTP_GET_VARS['id']);
}
else
{
$rank_id = 0;
}
$confirm = isset($HTTP_POST_VARS['confirm']);
if( $rank_id && $confirm )
{
$sql = "DELETE FROM " . RANKS_TABLE . "
WHERE rank_id = $rank_id";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't delete rank data", "", __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . RANKS_CONFIG_TABLE . "
WHERE rank_id = $rank_id";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't delete rank config data", "", __LINE__, __FILE__, $sql);
}
$sql = "UPDATE " . USERS_TABLE . "
SET user_rank = 0
WHERE user_rank = $rank_id";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, $lang['No_update_ranks'], "", __LINE__, __FILE__, $sql);
}
$message = $lang['Rank_removed'] . "<br /><br />" . sprintf($lang['Click_return_rankadmin'], "<a href=\"" . append_sid("admin_ranks.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
message_die(GENERAL_MESSAGE, $message);
}
else
{
message_die(GENERAL_MESSAGE, $lang['Must_select_rank']);
}
}
else if( $mode == "rankset_edit" || $mode == "rankset_add" )
{
//
// They want to add a new rank set, show the form.
//
$rankset_id = ( isset($HTTP_GET_VARS['id']) ) ? intval($HTTP_GET_VARS['id']) : 0;
$s_hidden_fields = "";
if( $mode == "rankset_edit" )
{
if( empty($rankset_id) )
{
message_die(GENERAL_MESSAGE, $lang['No_assigned_rank_set']);
}
$sql = "SELECT * FROM " . RANKS_SETS_TABLE . "
WHERE rankset_id = $rankset_id";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Couldn't obtain rank set data", "", __LINE__, __FILE__, $sql);
}
$rankset_info = $db->sql_fetchrow($result);
$s_hidden_fields .= '<input type="hidden" name="id" value="' . $rankset_id . '" />';
}
else
{
$rankset_info['rankset_hidden'] = 0;
}
$s_hidden_fields .= '<input type="hidden" name="mode" value="rankset_save" />';
$rankset_is_hidden = ( $rankset_info['rankset_hidden'] ) ? "checked=\"checked\"" : "";
$rankset_is_not_hidden = ( !$rankset_info['rankset_hidden'] ) ? "checked=\"checked\"" : "";
$template->set_filenames(array(
"body" => "admin/ranksets_edit_body.tpl")
);
$template->assign_vars(array(
"RANKSET" => $rankset_info['rankset_title'],
"DESC" => $rankset_info['rankset_desc'],
"HIDDEN_RANKSET" => $rankset_is_hidden,
"NOT_HIDDEN_RANKSET" => $rankset_is_not_hidden,
"L_RANKSET_TITLE" => $lang['Rankset_title'],
"L_RANKSET_TEXT" => $lang['Rankset_explain'],
"L_RANKSET" => $lang['Rankset'],
"L_RANKSET_DESC" => $lang['Rankset_desc'],
"L_RANKSET_HIDDEN" => $lang['Rankset_hidden'],
"L_RANKSET_HIDDEN_EXPLAIN" => $lang['Public_rank_sets_explain'],
"L_SUBMIT" => $lang['Submit'],
"L_RESET" => $lang['Reset'],
"L_YES" => $lang['Yes'],
"L_NO" => $lang['No'],
"S_RANK_ACTION" => append_sid("admin_ranks.$phpEx"),
"S_HIDDEN_FIELDS" => $s_hidden_fields)
);
}
else if( $mode == "rankset_save" )
{
//
// Ok, they sent us our info, let's update it.
//
$rankset_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : 0;
$title = ( isset($HTTP_POST_VARS['title']) ) ? trim($HTTP_POST_VARS['title']) : "";
$desc = ( isset($HTTP_POST_VARS['desc']) ) ? trim($HTTP_POST_VARS['desc']) : "";
$hidden = ( $HTTP_POST_VARS['hidden'] == 1 ) ? TRUE : 0;
if( $title == "" )
{
message_die(GENERAL_MESSAGE, $lang['Must_select_rank_set']);
}
if ($rankset_id)
{
$sql = "UPDATE " . RANKS_SETS_TABLE . "
SET `rankset_title` = '" . str_replace("\'", "''", $title) . "', `rankset_desc` = '" . str_replace("\'", "''", $desc) . "', `rankset_hidden` = $hidden
WHERE rankset_id = $rankset_id";
$message = $lang['Rankset_updated'];
}
else
{
$sql = "INSERT INTO " . RANKS_SETS_TABLE . " (`rankset_title`, `rankset_desc`, `rankset_hidden`)
VALUES ('" . str_replace("\'", "''", $title) . "', '" . str_replace("\'", "''", $desc) . "', $hidden)";
$message = $lang['Rankset_added'];
}
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't update/insert into rank sets table", "", __LINE__, __FILE__, $sql);
}
$message .= "<br /><br />" . sprintf($lang['Click_return_rankadmin'], "<a href=\"" . append_sid("admin_ranks.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
message_die(GENERAL_MESSAGE, $message);
}
else if( $mode == "rankset_delete" )
{
//
// Ok, they want to delete their rank set
//
if( isset($HTTP_POST_VARS['id']) || isset($HTTP_GET_VARS['id']) )
{
$rankset_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : intval($HTTP_GET_VARS['id']);
}
else
{
$rankset_id = 0;
}
if ( $rankset_id == RANKSET_DEFAULT )
{
message_die(GENERAL_MESSAGE, $lang['Delete_default_rankset'] . "<br /><br />" . sprintf($lang['Click_return_rankadmin'], "<a href=\"" . append_sid("admin_ranks.$phpEx") . "\">", "</a>"));
}
if( $rankset_id )
{
$sql = "DELETE FROM " . RANKS_SETS_TABLE . "
WHERE rankset_id = $rankset_id";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't delete rank set data", "", __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . RANKS_CONFIG_TABLE . "
WHERE rankset_id = $rankset_id";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't delete rank config data", "", __LINE__, __FILE__, $sql);
}
$sql = "UPDATE " . RANKS_TABLE . "
SET rankset_id = ".RANKSET_DEFAULT."
WHERE rankset_id = $rankset_id";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't delete rank set data", "", __LINE__, __FILE__, $sql);
}
$message = $lang['Rankset_removed'] . "<br /><br />" . sprintf($lang['Click_return_rankadmin'], "<a href=\"" . append_sid("admin_ranks.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
message_die(GENERAL_MESSAGE, $message);
}
else
{
message_die(GENERAL_MESSAGE, $lang['Must_select_rank']);
}
}
else if( $mode == "update_ranks_apply" || $mode == "update_rankset_apply" )
{
$cfg_tmp = explode(',', strip_tags($HTTP_POST_VARS['cfg_apply_to']));
$cfg_mode = $cfg_tmp[0];
$cfg_mode_id = $cfg_tmp[1];
if ( $mode == 'update_ranks_apply' )
{
$user_rank_field = 'user_rank';
$cfg_id_field = 'rank_id';
$cfg_id_value = intval($HTTP_POST_VARS['cfg_rank']);
$message_added = $lang['Rank_cfg_added'];
$message_updated = $lang['Rank_cfg_updated'];
$message_error = $lang['Rank_cfg_error'];
if ( !$cfg_id_value )
{
message_die(GENERAL_MESSAGE, $lang['Must_select_rank'] . "<br /><br />" . sprintf($lang['Click_return_rankadmin'], "<a href=\"" . append_sid("admin_ranks.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>"));
}
} elseif ( $mode == 'update_rankset_apply' ) {
$user_rank_field = 'user_rankset_id';
$cfg_id_field = 'rankset_id';
$cfg_id_value = intval($HTTP_POST_VARS['cfg_rankset']);
$message_added = $lang['Rankset_cfg_added'];
$message_updated = $lang['Rankset_cfg_updated'];
$message_error = $lang['Rankset_cfg_error'];
}
$sql = "SELECT config_id, $cfg_id_field
FROM " . RANKS_CONFIG_TABLE . "
WHERE cfg_mode = " . $cfg_tmp[0] . "
AND cfg_mode_id = " . $cfg_tmp[1] . "
LIMIT 1";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain rank config data", "", __LINE__, __FILE__, $sql);
}
if ( $row = $db->sql_fetchrow($result) )
{
if ( $row[$cfg_id_field] == $cfg_id_value )
{
message_die(GENERAL_MESSAGE, $message_error . "<br /><br />" . sprintf($lang['Click_return_rankadmin'], "<a href=\"" . append_sid("admin_ranks.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>"));
} else {
$sql = "UPDATE " . RANKS_CONFIG_TABLE . "
SET cfg_mode = $cfg_mode, cfg_mode_id = $cfg_mode_id, $cfg_id_field = $cfg_id_value
WHERE config_id = " . $row['config_id'];
$message = $message_updated;
}
} else {
$sql = "INSERT INTO " . RANKS_CONFIG_TABLE . " (cfg_mode, cfg_mode_id, $cfg_id_field)
VALUES ($cfg_mode, $cfg_mode_id, $cfg_id_value)";
$message = $message_added;
}
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't update/insert rule into ranks table", "", __LINE__, __FILE__, $sql);
}
if ( $cfg_mode != RANK_CFG_BIRTHDAY )
{
$update_users_sql = '';
switch ( $cfg_mode )
{
case RANK_CFG_ADMIN: $sql = "SELECT user_id
FROM " . USERS_TABLE . "
WHERE user_level = " . ADMIN . ";";
break;
case RANK_CFG_MOD: $sql = "SELECT user_id
FROM " . USERS_TABLE . "
WHERE user_level = " . MOD . ";";
break;
case RANK_CFG_BAN: $sql = "SELECT DISTINCT ban_userid AS 'user_id'
FROM " . BANLIST_TABLE . ";";
break;
case RANK_CFG_GROUP: $sql = "SELECT DISTINCT user_id
FROM " . USER_GROUP_TABLE . "
WHERE group_id = $cfg_mode_id;";
break;
case RANK_CFG_GENDER: $sql = "SELECT user_id
FROM " . USERS_TABLE . "
WHERE user_gender = $cfg_mode_id;";
break;
case RANK_CFG_TEMPLATE: $sql = "SELECT user_id
FROM " . USERS_TABLE . "
WHERE user_style = $cfg_mode_id;";
break;
}
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain user update data", "", __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
$update_users_sql .= ( ( $update_users_sql != '' ) ? ', ' : '' ) . intval($row['user_id']);
}
if ( $update_users_sql )
{
$sql = "UPDATE " . USERS_TABLE . "
SET $user_rank_field = $cfg_id_value
WHERE user_id IN ($update_users_sql)";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't update user table", "", __LINE__, __FILE__, $sql);
}
}
}
$message .= "<br /><br />" . sprintf($lang['Click_return_rankadmin'], "<a href=\"" . append_sid("admin_ranks.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
message_die(GENERAL_MESSAGE, $message);
}
else if( $mode == "delete_rank_apply" || $mode == "delete_rankset_apply" )
{
$config_id = intval($HTTP_GET_VARS['id']);
$sql = "SELECT cfg_mode, cfg_mode_id
FROM " . RANKS_CONFIG_TABLE . "
WHERE config_id = $config_id
LIMIT 1";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain rank config data", "", __LINE__, __FILE__, $sql);
}
if ( $row = $db->sql_fetchrow($result) )
{
$cfg_mode = intval($row['cfg_mode']);
$cfg_mode_id = intval($row['cfg_mode_id']);
$update_users_sql = '';
switch ( $cfg_mode )
{
case RANK_CFG_ADMIN: $sql = "SELECT user_id
FROM " . USERS_TABLE . "
WHERE user_level = " . ADMIN . ";";
$user_rank_field = 'user_rank';
$cfg_id_value = 0;
break;
case RANK_CFG_MOD: $sql = "SELECT user_id
FROM " . USERS_TABLE . "
WHERE user_level = " . MOD . ";";
$user_rank_field = 'user_rank';
$cfg_id_value = 0;
break;
case RANK_CFG_BAN: $sql = "SELECT DISTINCT ban_userid AS 'user_id'
FROM " . BANLIST_TABLE . ";";
$user_rank_field = 'user_rank';
$cfg_id_value = 0;
break;
case RANK_CFG_GROUP: $sql = "SELECT DISTINCT user_id
FROM " . USER_GROUP_TABLE . "
WHERE group_id = $cfg_mode_id;";
$user_rank_field = 'user_rankset_id';
$cfg_id_value = RANKSET_DEFAULT;
break;
case RANK_CFG_GENDER: $sql = "SELECT user_id
FROM " . USERS_TABLE . "
WHERE user_gender = $cfg_mode_id;";
$user_rank_field = 'user_rankset_id';
$cfg_id_value = RANKSET_DEFAULT;
break;
case RANK_CFG_TEMPLATE: $sql = "SELECT user_id
FROM " . USERS_TABLE . "
WHERE user_style = $cfg_mode_id;";
$user_rank_field = 'user_rankset_id';
$cfg_id_value = RANKSET_DEFAULT;
break;
}
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain user update data", "", __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
$update_users_sql .= ( ( $update_users_sql != '' ) ? ', ' : '' ) . intval($row['user_id']);
}
if ( $update_users_sql )
{
$sql = "UPDATE " . USERS_TABLE . "
SET $user_rank_field = $cfg_id_value
WHERE user_id IN ($update_users_sql)";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't update user table", "", __LINE__, __FILE__, $sql);
}
}
$sql = "DELETE FROM " . RANKS_CONFIG_TABLE . "
WHERE config_id = $config_id";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't delete rule from ranks table", "", __LINE__, __FILE__, $sql);
}
} else {
message_die(GENERAL_MESSAGE, $lang['Rank_cfg_unknown'] . "<br /><br />" . sprintf($lang['Click_return_rankadmin'], "<a href=\"" . append_sid("admin_ranks.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>"));
}
$message = ( $mode == "delete_ranks_apply" ) ? $lang['Rank_cfg_deleted'] : $lang['Rankset_cfg_deleted'];
$message .= "<br /><br />" . sprintf($lang['Click_return_rankadmin'], "<a href=\"" . append_sid("admin_ranks.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
message_die(GENERAL_MESSAGE, $message);
}
else
{
//
// They didn't feel like giving us any information. Oh, too bad, we'll just display the
// list then...
//
$template->set_filenames(array(
"body" => "admin/ranks_list_body.tpl")
);
$sql = "SELECT rank_id, rank_title
FROM " . RANKS_TABLE . "
WHERE rank_special = " . TRUE . "
ORDER BY rank_title";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain ranks list', '', __LINE__, __FILE__, $sql);
}
if ( $db->sql_numrows($result) >= 1 )
{
$cfg_ranks_select = '<select name="cfg_rank">';
while ( $row = $db->sql_fetchrow($result) )
{
$cfg_ranks_select .= '<option value="' . $row['rank_id'] . '">' . $row['rank_title'] . '</option>';
}
$cfg_ranks_select .= "</select>";
} else {
$cfg_ranks_select .= '<input type="hidden" name="cfg_rank" value="0">' . $lang['No_ranks'] . '';
}
$cfg_ranks_apply_to_select .= '<select name="cfg_apply_to">';
$cfg_ranks_apply_to_select .= '<option value="' . RANK_CFG_ADMIN . ',' . TRUE . '">' . $lang['Administrators'] . '</option>';
$cfg_ranks_apply_to_select .= '<option value="' . RANK_CFG_MOD . ',' . TRUE . '">' . $lang['Moderators'] . '</option>';
if ( isset($userdata['user_birthday']) )
{
$cfg_ranks_apply_to_select .= '<option value="' . RANK_CFG_BIRTHDAY . ',' . TRUE . '">' . $lang['Rank_cfg_birthday'] . '</option>';
}
$cfg_ranks_apply_to_select .= '<option value="' . RANK_CFG_BAN . ',' . TRUE . '">' . $lang['Rank_cfg_ban'] . '</option>';
$cfg_ranks_apply_to_select .= '</select>';
$sql = "SELECT rankset_id, rankset_title
FROM " . RANKS_SETS_TABLE . "
ORDER BY rankset_title";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain rank sets list', '', __LINE__, __FILE__, $sql);
}
$cfg_rankset_select = '<select name="cfg_rankset">';
while ( $row = $db->sql_fetchrow($result) )
{
$cfg_rankset_select .= '<option value="' . $row['rankset_id'] . '">' . $row['rankset_title'] . '</option>';
}
$cfg_rankset_select .= "</select>";
$cfg_rankset_apply_to_select .= '<select name="cfg_apply_to">';
reset($groups);
while ( current($groups) )
{
$cfg_rankset_apply_to_select .= '<option value="' . RANK_CFG_GROUP . ',' . key($groups) . '">' . $lang['Rank_cfg_group'] . ': ' . current($groups) . '</option>';
next($groups);
}
if ( isset($userdata['user_gender']) )
{
$cfg_rankset_apply_to_select .= '<option value="' . RANK_CFG_GENDER . ',0">' . $lang['Gender'] . ': ' . $lang['No_gender_specify'] . '</option>';
$cfg_rankset_apply_to_select .= '<option value="' . RANK_CFG_GENDER . ',1">' . $lang['Gender'] . ': ' . $lang['Male'] . '</option>';
$cfg_rankset_apply_to_select .= '<option value="' . RANK_CFG_GENDER . ',2">' . $lang['Gender'] . ': ' . $lang['Female'] . '</option>';
}
reset($templates);
while ( current($templates) )
{
$cfg_rankset_apply_to_select .= '<option value="' . RANK_CFG_TEMPLATE . ',' . key($templates) . '">' . $lang['Template'] . ': ' . current($templates) . '</option>';
next($templates);
}
$cfg_rankset_apply_to_select .= '</select>';
$template->assign_vars(array(
"L_RANKS_TITLE" => $lang['Ranks_title'],
"L_RANKS_TEXT" => $lang['Ranks_explain'],
"L_RANK" => $lang['Rank_title'],
"L_RANK_MINIMUM" => $lang['Rank_minimum'],
"L_SPECIAL_RANK" => $lang['Rank_special'],
"L_RANKS_CFG_TEXT" => sprintf($lang['Ranks_update_explain'], isset($userdata['user_birthday']) ? $lang['Birthday_is_installed'] : $lang['Birthday_not_installed']),
"L_RANKSET_CFG_TEXT" => sprintf($lang['Rankset_update_explain'], isset($userdata['user_gender']) ? $lang['Gender_is_installed'] : $lang['Gender_not_installed']),
"L_APPLY_TO" => $lang['Apply_to'],
"L_APPLY" => $lang['Apply'],
"CFG_RANKS_SELECT" => $cfg_ranks_select,
"CFG_RANKS_APPLY_TO_SELECT" => $cfg_ranks_apply_to_select,
"CFG_RANKSETS_SELECT" => $cfg_rankset_select,
"CFG_RANKSETS_APPLY_TO_SELECT" => $cfg_rankset_apply_to_select,
"L_RANKSET_TITLE" => $lang['Rankset_title'],
"L_RANKSET_TEXT" => $lang['Rankset_explain'],
"L_RANKSET" => $lang['Rankset'],
"L_RANKSET_DESC" => $lang['Rankset_desc'],
"L_RANKSET_HIDDEN" => $lang['Rankset_hidden'],
"L_EDIT" => $lang['Edit'],
"L_DELETE" => $lang['Delete'],
"L_ADD_RANK" => $lang['Add_new_rank'],
"L_ADD_RANKSET" => $lang['Add_new_rank_set'],
"L_ACTION" => $lang['Action'],
"S_RANKS_ACTION" => append_sid("admin_ranks.$phpEx"))
);
$sql = "SELECT r.*, rs.rankset_title AS 'rankset'
FROM " . RANKS_TABLE . " r, " . RANKS_SETS_TABLE . " rs
WHERE r.rankset_id = rs.rankset_id
ORDER BY r.rank_min ASC, r.rank_special ASC";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain ranks data", "", __LINE__, __FILE__, $sql);
}
$rank_count = $db->sql_numrows($result);
$rank_rows = $db->sql_fetchrowset($result);
for($i = 0; $i < $rank_count; $i++)
{
$rank = $rank_rows[$i]['rank_title'];
$special_rank = $rank_rows[$i]['rank_special'];
$rank_id = $rank_rows[$i]['rank_id'];
$rank_min = $rank_rows[$i]['rank_min'];
$rankset = $rank_rows[$i]['rankset'];
if( $special_rank == 1 )
{
$rank_min = $rank_max = "-";
$rankset = "-";
}
$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
$rank_is_special = ( $special_rank ) ? $lang['Yes'] : $lang['No'];
$template->assign_block_vars("ranks", array(
"ROW_COLOR" => "#" . $row_color,
"ROW_CLASS" => $row_class,
"RANK" => $rank,
"SPECIAL_RANK" => $rank_is_special,
"RANK_MIN" => $rank_min,
"RANKSET" => $rankset,
"U_RANK_EDIT" => append_sid("admin_ranks.$phpEx?mode=rank_edit&id=$rank_id"),
"U_RANK_DELETE" => append_sid("admin_ranks.$phpEx?mode=rank_delete&id=$rank_id"))
);
}
$sql = "SELECT rc.*, r.rank_title
FROM " . RANKS_CONFIG_TABLE . " rc, " . RANKS_TABLE . " r
WHERE rc.rank_id <> 0
AND rc.rank_id = r.rank_id
ORDER BY rc.cfg_mode ASC, rc.cfg_mode_id ASC";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain ranks data", "", __LINE__, __FILE__, $sql);
}
$config_count = $db->sql_numrows($result);
$config_row = $db->sql_fetchrowset($result);
for($i = 0; $i < $config_count; $i++)
{
switch ( $config_row[$i]['cfg_mode'] )
{
case RANK_CFG_ADMIN: $cfg_rank_apply_to = $lang['Administrators']; break;
case RANK_CFG_MOD: $cfg_rank_apply_to = $lang['Moderators']; break;
case RANK_CFG_BAN: $cfg_rank_apply_to = $lang['Rank_cfg_ban']; break;
case RANK_CFG_BIRTHDAY: $cfg_rank_apply_to = $lang['Rank_cfg_birthday']; break;
}
$config_id = $config_row[$i]['config_id'];
$row_color = ( !($i % 2) ) ? $theme['td_color2'] : $theme['td_color1'];
$row_class = ( !($i % 2) ) ? $theme['td_class2'] : $theme['td_class1'];
$template->assign_block_vars("update_ranks", array(
"ROW_COLOR" => "#" . $row_color,
"ROW_CLASS" => $row_class,
"CFG_RANK_TITLE" => $config_row[$i]['rank_title'],
"CFG_RANK_RANK" => $cfg_rank_apply_to,
"CFG_RANK_DELETE" => append_sid("admin_ranks.$phpEx?mode=delete_rank_apply&id=$config_id"))
);
}
$sql = "SELECT * FROM " . RANKS_SETS_TABLE . "
ORDER BY rankset_hidden ASC, rankset_title ASC";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain rank sets data", "", __LINE__, __FILE__, $sql);
}
$rank_set_count = $db->sql_numrows($result);
$rank_set_rows = $db->sql_fetchrowset($result);
for($i = 0; $i < $rank_set_count; $i++)
{
$rankset_id = $rank_set_rows[$i]['rankset_id'];
$rank = $rank_set_rows[$i]['rankset_title'];
$desc = str_replace("\n", "<br />", $rank_set_rows[$i]['rankset_desc']);
$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
$hidden = ( $rank_set_rows[$i]['rankset_hidden'] ) ? $lang['Yes'] : $lang['No'];
$template->assign_block_vars("rank_sets", array(
"ROW_COLOR" => "#" . $row_color,
"ROW_CLASS" => $row_class,
"RANKSET" => $rank,
"RANKSET_DESC" => $desc,
"HIDDEN_RANKSET" => $hidden,
"U_RANKSET_EDIT" => append_sid("admin_ranks.$phpEx?mode=rankset_edit&id=$rankset_id"),
"U_RANKSET_DELETE" => append_sid("admin_ranks.$phpEx?mode=rankset_delete&id=$rankset_id"))
);
}
$sql = "SELECT rc.*, rs.rankset_title
FROM " . RANKS_CONFIG_TABLE . " rc, " . RANKS_SETS_TABLE . " rs
WHERE rc.rankset_id <> 0
AND rc.rankset_id = rs.rankset_id
ORDER BY rc.cfg_mode ASC, rc.cfg_mode_id ASC";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain rank sets data", "", __LINE__, __FILE__, $sql);
}
$config_count = $db->sql_numrows($result);
$config_row = $db->sql_fetchrowset($result);
for($i = 0; $i < $config_count; $i++)
{
switch ( $config_row[$i]['cfg_mode'] )
{
case RANK_CFG_GROUP: $cfg_rankset_apply_to = $lang['Rank_cfg_group'] . ': ' . $groups[$config_row[$i]['cfg_mode_id']]; break;
case RANK_CFG_GENDER:
$cfg_rankset_apply_to = $lang['Gender'] . ': ';
switch ( $config_row[$i]['cfg_mode_id'] )
{
case 0: $cfg_rankset_apply_to .= $lang['No_gender_specify'] ; break;
case 1: $cfg_rankset_apply_to .= $lang['Male'] ; break;
case 2: $cfg_rankset_apply_to .= $lang['Female'] ; break;
}
break;
case RANK_CFG_TEMPLATE: $cfg_rankset_apply_to = $lang['Template'] . ': ' . $templates[$config_row[$i]['cfg_mode_id']]; break;
}
$config_id = $config_row[$i]['config_id'];
$row_color = ( !($i % 2) ) ? $theme['td_color2'] : $theme['td_color1'];
$row_class = ( !($i % 2) ) ? $theme['td_class2'] : $theme['td_class1'];
$template->assign_block_vars("update_rankset", array(
"ROW_COLOR" => "#" . $row_color,
"ROW_CLASS" => $row_class,
"CFG_RANKSET_TITLE" => $config_row[$i]['rankset_title'],
"CFG_RANKSET_APPLY_TO" => $cfg_rankset_apply_to,
"CFG_RANKSET_DELETE" => append_sid("admin_ranks.$phpEx?mode=delete_rankset_apply&id=$config_id"))
);
}
}
}
else
{
//
// Show the default page
//
$template->set_filenames(array(
"body" => "admin/ranks_list_body.tpl")
);
$sql = "SELECT rank_id, rank_title
FROM " . RANKS_TABLE . "
WHERE rank_special = " . TRUE . "
ORDER BY rank_title";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain ranks list', '', __LINE__, __FILE__, $sql);
}
if ( $db->sql_numrows($result) >= 1 )
{
$cfg_ranks_select = '<select name="cfg_rank">';
while ( $row = $db->sql_fetchrow($result) )
{
$cfg_ranks_select .= '<option value="' . $row['rank_id'] . '">' . $row['rank_title'] . '</option>';
}
$cfg_ranks_select .= "</select>";
} else {
$cfg_ranks_select .= '<input type="hidden" name="cfg_rank" value="0">' . $lang['No_ranks'] . '';
}
$cfg_ranks_apply_to_select .= '<select name="cfg_apply_to">';
$cfg_ranks_apply_to_select .= '<option value="' . RANK_CFG_ADMIN . ',' . TRUE . '">' . $lang['Administrators'] . '</option>';
$cfg_ranks_apply_to_select .= '<option value="' . RANK_CFG_MOD . ',' . TRUE . '">' . $lang['Moderators'] . '</option>';
if ( isset($userdata['user_birthday']) )
{
$cfg_ranks_apply_to_select .= '<option value="' . RANK_CFG_BIRTHDAY . ',' . TRUE . '">' . $lang['Rank_cfg_birthday'] . '</option>';
}
$cfg_ranks_apply_to_select .= '<option value="' . RANK_CFG_BAN . ',' . TRUE . '">' . $lang['Rank_cfg_ban'] . '</option>';
$cfg_ranks_apply_to_select .= '</select>';
$sql = "SELECT rankset_id, rankset_title
FROM " . RANKS_SETS_TABLE . "
ORDER BY rankset_title";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain rank sets list', '', __LINE__, __FILE__, $sql);
}
$cfg_rankset_select = '<select name="cfg_rankset">';
while ( $row = $db->sql_fetchrow($result) )
{
$cfg_rankset_select .= '<option value="' . $row['rankset_id'] . '">' . $row['rankset_title'] . '</option>';
}
$cfg_rankset_select .= "</select>";
$cfg_rankset_apply_to_select .= '<select name="cfg_apply_to">';
reset($groups);
while ( current($groups) )
{
$cfg_rankset_apply_to_select .= '<option value="' . RANK_CFG_GROUP . ',' . key($groups) . '">' . $lang['Rank_cfg_group'] . ': ' . current($groups) . '</option>';
next($groups);
}
if ( isset($userdata['user_gender']) )
{
$cfg_rankset_apply_to_select .= '<option value="' . RANK_CFG_GENDER . ',0">' . $lang['Gender'] . ': ' . $lang['No_gender_specify'] . '</option>';
$cfg_rankset_apply_to_select .= '<option value="' . RANK_CFG_GENDER . ',1">' . $lang['Gender'] . ': ' . $lang['Male'] . '</option>';
$cfg_rankset_apply_to_select .= '<option value="' . RANK_CFG_GENDER . ',2">' . $lang['Gender'] . ': ' . $lang['Female'] . '</option>';
}
reset($templates);
while ( current($templates) )
{
$cfg_rankset_apply_to_select .= '<option value="' . RANK_CFG_TEMPLATE . ',' . key($templates) . '">' . $lang['Template'] . ': ' . current($templates) . '</option>';
next($templates);
}
$cfg_rankset_apply_to_select .= '</select>';
$template->assign_vars(array(
"L_RANKS_TITLE" => $lang['Ranks_title'],
"L_RANKS_TEXT" => $lang['Ranks_explain'],
"L_RANK" => $lang['Rank_title'],
"L_RANK_MINIMUM" => $lang['Rank_minimum'],
"L_SPECIAL_RANK" => $lang['Rank_special'],
"L_RANKS_CFG_TEXT" => sprintf($lang['Ranks_update_explain'], isset($userdata['user_birthday']) ? $lang['Birthday_is_installed'] : $lang['Birthday_not_installed']),
"L_RANKSET_CFG_TEXT" => sprintf($lang['Rankset_update_explain'], isset($userdata['user_gender']) ? $lang['Gender_is_installed'] : $lang['Gender_not_installed']),
"L_APPLY_TO" => $lang['Apply_to'],
"L_APPLY" => $lang['Apply'],
"CFG_RANKS_SELECT" => $cfg_ranks_select,
"CFG_RANKS_APPLY_TO_SELECT" => $cfg_ranks_apply_to_select,
"CFG_RANKSETS_SELECT" => $cfg_rankset_select,
"CFG_RANKSETS_APPLY_TO_SELECT" => $cfg_rankset_apply_to_select,
"L_RANKSET_TITLE" => $lang['Rankset_title'],
"L_RANKSET_TEXT" => $lang['Rankset_explain'],
"L_RANKSET" => $lang['Rankset'],
"L_RANKSET_DESC" => $lang['Rankset_desc'],
"L_RANKSET_HIDDEN" => $lang['Rankset_hidden'],
"L_EDIT" => $lang['Edit'],
"L_DELETE" => $lang['Delete'],
"L_ADD_RANK" => $lang['Add_new_rank'],
"L_ADD_RANKSET" => $lang['Add_new_rank_set'],
"L_ACTION" => $lang['Action'],
"S_RANKS_ACTION" => append_sid("admin_ranks.$phpEx"))
);
$sql = "SELECT r.*, rs.rankset_title AS 'rankset'
FROM " . RANKS_TABLE . " r, " . RANKS_SETS_TABLE . " rs
WHERE r.rankset_id = rs.rankset_id
ORDER BY r.rank_min ASC, r.rank_special ASC";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain ranks data", "", __LINE__, __FILE__, $sql);
}
$rank_count = $db->sql_numrows($result);
$rank_rows = $db->sql_fetchrowset($result);
for($i = 0; $i < $rank_count; $i++)
{
$rank = $rank_rows[$i]['rank_title'];
$special_rank = $rank_rows[$i]['rank_special'];
$rank_id = $rank_rows[$i]['rank_id'];
$rank_min = $rank_rows[$i]['rank_min'];
$rankset = $rank_rows[$i]['rankset'];
if( $special_rank == 1 )
{
$rank_min = $rank_max = "-";
$rankset = "-";
}
$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
$rank_is_special = ( $special_rank ) ? $lang['Yes'] : $lang['No'];
$template->assign_block_vars("ranks", array(
"ROW_COLOR" => "#" . $row_color,
"ROW_CLASS" => $row_class,
"RANK" => $rank,
"SPECIAL_RANK" => $rank_is_special,
"RANK_MIN" => $rank_min,
"RANKSET" => $rankset,
"U_RANK_EDIT" => append_sid("admin_ranks.$phpEx?mode=rank_edit&id=$rank_id"),
"U_RANK_DELETE" => append_sid("admin_ranks.$phpEx?mode=rank_delete&id=$rank_id"))
);
}
$sql = "SELECT rc.*, r.rank_title
FROM " . RANKS_CONFIG_TABLE . " rc, " . RANKS_TABLE . " r
WHERE rc.rank_id <> 0
AND rc.rank_id = r.rank_id
ORDER BY rc.cfg_mode ASC, rc.cfg_mode_id ASC";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain ranks data", "", __LINE__, __FILE__, $sql);
}
$config_count = $db->sql_numrows($result);
$config_row = $db->sql_fetchrowset($result);
for($i = 0; $i < $config_count; $i++)
{
switch ( $config_row[$i]['cfg_mode'] )
{
case RANK_CFG_ADMIN: $cfg_rank_apply_to = $lang['Administrators']; break;
case RANK_CFG_MOD: $cfg_rank_apply_to = $lang['Moderators']; break;
case RANK_CFG_BAN: $cfg_rank_apply_to = $lang['Rank_cfg_ban']; break;
case RANK_CFG_BIRTHDAY: $cfg_rank_apply_to = $lang['Rank_cfg_birthday']; break;
}
$config_id = $config_row[$i]['config_id'];
$row_color = ( !($i % 2) ) ? $theme['td_color2'] : $theme['td_color1'];
$row_class = ( !($i % 2) ) ? $theme['td_class2'] : $theme['td_class1'];
$template->assign_block_vars("update_ranks", array(
"ROW_COLOR" => "#" . $row_color,
"ROW_CLASS" => $row_class,
"CFG_RANK_TITLE" => $config_row[$i]['rank_title'],
"CFG_RANK_RANK" => $cfg_rank_apply_to,
"CFG_RANK_DELETE" => append_sid("admin_ranks.$phpEx?mode=delete_rank_apply&id=$config_id"))
);
}
$sql = "SELECT * FROM " . RANKS_SETS_TABLE . "
ORDER BY rankset_hidden ASC, rankset_title ASC";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain rank sets data", "", __LINE__, __FILE__, $sql);
}
$rank_set_count = $db->sql_numrows($result);
$rank_set_rows = $db->sql_fetchrowset($result);
for($i = 0; $i < $rank_set_count; $i++)
{
$rankset_id = $rank_set_rows[$i]['rankset_id'];
$rank = $rank_set_rows[$i]['rankset_title'];
$desc = str_replace("\n", "<br />", $rank_set_rows[$i]['rankset_desc']);
$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
$hidden = ( $rank_set_rows[$i]['rankset_hidden'] ) ? $lang['Yes'] : $lang['No'];
$template->assign_block_vars("rank_sets", array(
"ROW_COLOR" => "#" . $row_color,
"ROW_CLASS" => $row_class,
"RANKSET" => $rank,
"RANKSET_DESC" => $desc,
"HIDDEN_RANKSET" => $hidden,
"U_RANKSET_EDIT" => append_sid("admin_ranks.$phpEx?mode=rankset_edit&id=$rankset_id"),
"U_RANKSET_DELETE" => append_sid("admin_ranks.$phpEx?mode=rankset_delete&id=$rankset_id"))
);
}
$sql = "SELECT rc.*, rs.rankset_title
FROM " . RANKS_CONFIG_TABLE . " rc, " . RANKS_SETS_TABLE . " rs
WHERE rc.rankset_id <> 0
AND rc.rankset_id = rs.rankset_id
ORDER BY rc.cfg_mode ASC, rc.cfg_mode_id ASC";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain rank sets data", "", __LINE__, __FILE__, $sql);
}
$config_count = $db->sql_numrows($result);
$config_row = $db->sql_fetchrowset($result);
for($i = 0; $i < $config_count; $i++)
{
switch ( $config_row[$i]['cfg_mode'] )
{
case RANK_CFG_GROUP: $cfg_rankset_apply_to = $lang['Rank_cfg_group'] . ': ' . $groups[$config_row[$i]['cfg_mode_id']]; break;
case RANK_CFG_GENDER:
$cfg_rankset_apply_to = $lang['Gender'] . ': ';
switch ( $config_row[$i]['cfg_mode_id'] )
{
case 0: $cfg_rankset_apply_to .= $lang['No_gender_specify'] ; break;
case 1: $cfg_rankset_apply_to .= $lang['Male'] ; break;
case 2: $cfg_rankset_apply_to .= $lang['Female'] ; break;
}
break;
case RANK_CFG_TEMPLATE: $cfg_rankset_apply_to = $lang['Template'] . ': ' . $templates[$config_row[$i]['cfg_mode_id']]; break;
}
$config_id = $config_row[$i]['config_id'];
$row_color = ( !($i % 2) ) ? $theme['td_color2'] : $theme['td_color1'];
$row_class = ( !($i % 2) ) ? $theme['td_class2'] : $theme['td_class1'];
$template->assign_block_vars("update_rankset", array(
"ROW_COLOR" => "#" . $row_color,
"ROW_CLASS" => $row_class,
"CFG_RANKSET_TITLE" => $config_row[$i]['rankset_title'],
"CFG_RANKSET_APPLY_TO" => $cfg_rankset_apply_to,
"CFG_RANKSET_DELETE" => append_sid("admin_ranks.$phpEx?mode=delete_rankset_apply&id=$config_id"))
);
}
}
$template->pparse("body");
include('./page_footer_admin.'.$phpEx);
?>