Problem med uppdateringen till .20

Detta är ett arkiv för phpBB2 Support, Diskussion, MODar, Stilar och översättningar. Den tillhandahålls endast för referensändamål.

Moderatorer: Moderatorgrupp, Supportgrupp

Joakim
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 319
Blev medlem: 2003-10-19 18:26
Svar: 0

Problem med uppdateringen till .20

Inlägg av Joakim »

I filen admin_ranks har jag svårt att hitta en sak som ska ändras i uppdateringen. Ändringen ska vara i texten som börjar ungefär så här:

Kod: Markera allt

else 
      { 
         message_die(GENERAL_MESSAGE, $lang['Must_select_rank']); 
      } 
   } 
   else 
   { 
      // 
      // They didn't feel like giving us any information. Oh, too bad, we'll just display the 
      // list then... 
men min kod ser ut så här:

Kod: Markera allt

} 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... 
      // 
Vad ska jag göra ? Vågar inte ladda upp de andra filerna förrän denna är klar...

Finns det ingen update_to_latest.php eller liknande till denna förresten ? Eller uppdateringen sköter sig själv ?!
Feel the Force !
windsurf.se
Användarens profilbild
PazZze
Support
Support
Inlägg: 1028
Blev medlem: 2004-05-10 11:19
Svar: 0

Inlägg av PazZze »

hm, du har moddar va? typ ngn rank mod?

update_to_latest.php hittar du i någon download från phpbb.com så det är bara att ladda hem och testa :)
Joel PazZze Martinsson - phpBB Sverige Support
Joakim
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 319
Blev medlem: 2003-10-19 18:26
Svar: 0

Inlägg av Joakim »

Jag har extended ranks system och custom title installerat. Hur gör jag ? Ska jag skippa denna filen bara eller !??

http://www.phpbbhacks.com/download/3163

http://www.phpbbhacks.com/download/1178
Feel the Force !
windsurf.se
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6574
Blev medlem: 2004-06-09 09:32
Svar: 1

Inlägg av Holger »

Ja du Joakim,

det där blir svårt att lösa!
Lägg upp HELA din admin_ranks.php här.

Du får nog modda om filen efter uppdateringen till 2.0.20

Filen update_to_latest.php finns med i alla paket som du kan ladda hem från phpbb.com
Holger Gremminger
Ingen support via PM!
Joakim
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 319
Blev medlem: 2003-10-19 18:26
Svar: 0

Inlägg av Joakim »

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);

?>
Feel the Force !
windsurf.se
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6574
Blev medlem: 2004-06-09 09:32
Svar: 1

Inlägg av Holger »

Tyvärr, koden har dragits isär på tok för långt. :cry:

Använd moddarna baklänges, plocka alltså bort dem och kör sedan uppdateringen, installera därefter moddarna igen ... :cry:
Holger Gremminger
Ingen support via PM!
Joakim
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 319
Blev medlem: 2003-10-19 18:26
Svar: 0

Inlägg av Joakim »

Vad jag kan se så är min admin_ranks en som ingår i den här extended ranks-modden. Den är tydligen premodded och då kan jag ju inte se vad jag ska göra för att ändra den....
Feel the Force !
windsurf.se
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6574
Blev medlem: 2004-06-09 09:32
Svar: 1

Inlägg av Holger »

Hoppa då över den biten först ...
Holger Gremminger
Ingen support via PM!
Joakim
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 319
Blev medlem: 2003-10-19 18:26
Svar: 0

Inlägg av Joakim »

Laddat upp filerna och forumet verkar fungera än så länge. Däremot får jag detta i navigeringen till kontrollpanelen:

Kod: Markera allt

Parse error: parse error, unexpected T_ELSE in D:\InetPub\windsurf.se\forum\admin\admin_words.php on line 117
Så här ser det ut runt 117, där den utvalda är den som börjar med else if....:

Kod: Markera allt

$template->pparse("body");

		include('./page_footer_admin.'.$phpEx);
	}
	else if( $mode == "save" )
	{
		$word_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : 0;
Feel the Force !
windsurf.se
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6574
Blev medlem: 2004-06-09 09:32
Svar: 1

Inlägg av Holger »

Lägg upp hela filen här ...
Holger Gremminger
Ingen support via PM!
Joakim
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 319
Blev medlem: 2003-10-19 18:26
Svar: 0

Inlägg av Joakim »

Kod: Markera allt

<?php
/***************************************************************************
 *                              admin_words.php
 *                            -------------------
 *   begin                : Thursday, Jul 12, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: admin_words.php,v 1.10.2.3 2004/03/25 15:57:20 acydburn 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['General']['Word_Censor'] = $file;
	return;
}

define('IN_PHPBB', 1);
//
// Load default header
//
$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['add']) )
	{
		$mode = "add";
	}
	else if( isset($HTTP_POST_VARS['save']) )
	{
		$mode = "save";
	}
	else
	{
		$mode = "";
	}
}

// Restrict mode input to valid options 
$mode = ( in_array($mode, array('add', 'edit', 'save', 'delete')) ) ? $mode : ''; 

	{
		$word_id = ( isset($HTTP_GET_VARS['id']) ) ? intval($HTTP_GET_VARS['id']) : 0;

		$template->set_filenames(array(
			"body" => "admin/words_edit_body.tpl")
		);

		$word_info = array('word' => '', 'replacement' => ''); 
		$s_hidden_fields = '';

		if( $mode == "edit" )
		{
			if( $word_id )
			{
				$sql = "SELECT * 
					FROM " . WORDS_TABLE . " 
					WHERE word_id = $word_id";
				if(!$result = $db->sql_query($sql))
				{
					message_die(GENERAL_ERROR, "Could not query words table", "Error", __LINE__, __FILE__, $sql);
				}

				$word_info = $db->sql_fetchrow($result);
				$s_hidden_fields .= '<input type="hidden" name="id" value="' . $word_id . '" />';
			}
			else
			{
				message_die(GENERAL_MESSAGE, $lang['No_word_selected']);
			}
		}

		$template->assign_vars(array(
			"WORD" => $word_info['word'],
			"REPLACEMENT" => $word_info['replacement'],

			"L_WORDS_TITLE" => $lang['Words_title'],
			"L_WORDS_TEXT" => $lang['Words_explain'],
			"L_WORD_CENSOR" => $lang['Edit_word_censor'],
			"L_WORD" => $lang['Word'],
			"L_REPLACEMENT" => $lang['Replacement'],
			"L_SUBMIT" => $lang['Submit'],

			"S_WORDS_ACTION" => append_sid("admin_words.$phpEx"),
			"S_HIDDEN_FIELDS" => $s_hidden_fields)
		);

		$template->pparse("body");

		include('./page_footer_admin.'.$phpEx);
	}
	else if( $mode == "save" )
	{
		$word_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : 0;
		$word = ( isset($HTTP_POST_VARS['word']) ) ? trim($HTTP_POST_VARS['word']) : "";
		$replacement = ( isset($HTTP_POST_VARS['replacement']) ) ? trim($HTTP_POST_VARS['replacement']) : "";

		if($word == "" || $replacement == "")
		{
			message_die(GENERAL_MESSAGE, $lang['Must_enter_word']);
		}

		if( $word_id )
		{
			$sql = "UPDATE " . WORDS_TABLE . " 
				SET word = '" . str_replace("\'", "''", $word) . "', replacement = '" . str_replace("\'", "''", $replacement) . "' 
				WHERE word_id = $word_id";
			$message = $lang['Word_updated'];
		}
		else
		{
			$sql = "INSERT INTO " . WORDS_TABLE . " (word, replacement) 
				VALUES ('" . str_replace("\'", "''", $word) . "', '" . str_replace("\'", "''", $replacement) . "')";
			$message = $lang['Word_added'];
		}

		if(!$result = $db->sql_query($sql))
		{
			message_die(GENERAL_ERROR, "Could not insert data into words table", $lang['Error'], __LINE__, __FILE__, $sql);
		}

		$message .= "<br /><br />" . sprintf($lang['Click_return_wordadmin'], "<a href=\"" . append_sid("admin_words.$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" )
	{
		if( isset($HTTP_POST_VARS['id']) ||  isset($HTTP_GET_VARS['id']) )
		{
			$word_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id'];
			$word_id = intval($word_id);
		}
		else
		{
			$word_id = 0;
		}

		$confirm = isset($HTTP_POST_VARS['confirm']); 

      if( $word_id && $confirm ) 
      { 
         $sql = "DELETE FROM " . WORDS_TABLE . " 
            WHERE word_id = $word_id";

			if(!$result = $db->sql_query($sql))
			{
				message_die(GENERAL_ERROR, "Could not remove data from words table", $lang['Error'], __LINE__, __FILE__, $sql);
			}

			$message = $lang['Word_removed'] . "<br /><br />" . sprintf($lang['Click_return_wordadmin'], "<a href=\"" . append_sid("admin_words.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

			message_die(GENERAL_MESSAGE, $message);
		}
		      elseif( $word_id && !$confirm) 
      { 
         // Present the confirmation screen to the user 
         $template->set_filenames(array( 
            'body' => 'admin/confirm_body.tpl') 
         ); 

         $hidden_fields = '<input type="hidden" name="mode" value="delete" /><input type="hidden" name="id" value="' . $word_id . '" />'; 

         $template->assign_vars(array( 
            'MESSAGE_TITLE' => $lang['Confirm'], 
            'MESSAGE_TEXT' => $lang['Confirm_delete_word'], 

            'L_YES' => $lang['Yes'], 
            'L_NO' => $lang['No'], 

            'S_CONFIRM_ACTION' => append_sid("admin_words.$phpEx"), 
            'S_HIDDEN_FIELDS' => $hidden_fields) 
         ); 
      } 
		else
		{
			message_die(GENERAL_MESSAGE, $lang['No_word_selected']);
		}
	}
}
else
{
	$template->set_filenames(array(
		"body" => "admin/words_list_body.tpl")
	);

	$sql = "SELECT * 
		FROM " . WORDS_TABLE . " 
		ORDER BY word";
	if( !$result = $db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, "Could not query words table", $lang['Error'], __LINE__, __FILE__, $sql);
	}

	$word_rows = $db->sql_fetchrowset($result);
	$db->sql_freeresult($result); 
	$word_count = count($word_rows);

	$template->assign_vars(array(
		"L_WORDS_TITLE" => $lang['Words_title'],
		"L_WORDS_TEXT" => $lang['Words_explain'],
		"L_WORD" => $lang['Word'],
		"L_REPLACEMENT" => $lang['Replacement'],
		"L_EDIT" => $lang['Edit'],
		"L_DELETE" => $lang['Delete'],
		"L_ADD_WORD" => $lang['Add_new_word'],
		"L_ACTION" => $lang['Action'],

		"S_WORDS_ACTION" => append_sid("admin_words.$phpEx"),
		"S_HIDDEN_FIELDS" => '')
	);

	for($i = 0; $i < $word_count; $i++)
	{
		$word = $word_rows[$i]['word'];
		$replacement = $word_rows[$i]['replacement'];
		$word_id = $word_rows[$i]['word_id'];

		$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
		$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

		$template->assign_block_vars("words", array(
			"ROW_COLOR" => "#" . $row_color,
			"ROW_CLASS" => $row_class,
			"WORD" => $word,
			"REPLACEMENT" => $replacement,

			"U_WORD_EDIT" => append_sid("admin_words.$phpEx?mode=edit&id=$word_id"),
			"U_WORD_DELETE" => append_sid("admin_words.$phpEx?mode=delete&id=$word_id"))
		);
	}
}

$template->pparse("body");

include('./page_footer_admin.'.$phpEx);

?>
Feel the Force !
windsurf.se
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6574
Blev medlem: 2004-06-09 09:32
Svar: 1

Inlägg av Holger »

Allt är rätt, mysko!
Lägg upp filen ur din backup, om den fortfarande funkar så provar du att modda om den ...
Holger Gremminger
Ingen support via PM!
Joakim
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 319
Blev medlem: 2003-10-19 18:26
Svar: 0

Inlägg av Joakim »

Den gamle filen fungerar...

Edit: Gjort om alla ändringar och nu verkar iaf det fungera. Tack återigen Holger ! :D
Feel the Force !
windsurf.se
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6574
Blev medlem: 2004-06-09 09:32
Svar: 1

Inlägg av Holger »

Kanon! :-D
Holger Gremminger
Ingen support via PM!
Skriv svar

Vilka är online

Användare som besöker denna kategori: 2 och 0 gäster