############################################################## 
## MOD Title: 		Warnings Mod 1.0.4 to 1.0.5 update
## MOD Author:	 	Xpert < xpert@phpbbguru.net > http://www.phpbbguru.net 
## MOD Description: 	Warnings system for phpBB 
## MOD Version: 	1.0.0 
## 
## Installation Level: 	Easy 
## Installation Time: 	10 Minutes 
## Files To Edit (1): 	n/a
############################################################## 
## For Security Purposes, Please Check: http://www.phpbbguru.net/mods/ for the 
## latest version of this MOD. 
############################################################## 
## MOD History:
##
##   2007-04-29 - Version 1.0.0 
##      - Initial Release 
## 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
############################################################## 

#
#-----[ OPEN ]------------------------------------------
#
warnings.php

#
#-----[ FIND ]------------------------------------------
#
		if ( in_array($row['user_level'], array(ADMIN,MOD)) )
		{
			message_die(GENERAL_ERROR, 'No_warning_for_user');
		}
		
#
#-----[ AFTER, ADD ]------------------------------------------
#

		if ( $row['user_banned'] )
		{
			message_die(GENERAL_ERROR, 'Ban_received_for_this_post');
		}
		
#
#-----[ FIND ]------------------------------------------
#
				$row = $db->sql_fetchrow($result)  or message_die(GENERAL_ERROR, 'Could not get warning information');

				if ( $row['warning_poster_id'] != $userdata['user_id'] )
				{
					message_die(GENERAL_MESSAGE, 'Warning_received_for_this_post');
				}
				
#
#-----[ REPLACE WITH ]------------------------------------------
#
				$check_row = $db->sql_fetchrow($result)  or message_die(GENERAL_ERROR, 'Could not get warning information');

				if ( $check_row['warning_poster_id'] != $userdata['user_id'] )
				{
					message_die(GENERAL_MESSAGE, 'Warning_received_for_this_post');
				}

#
#-----[ FIND ]------------------------------------------
#
			$email_template = ( $warning_type == WARNING_TYPE_WARNING ) ? 'warnings_warning' : 'warnings_ban';
			$email_subject =  ( $warning_type == WARNING_TYPE_WARNING ) ? $lang['You_received_warning'] : $lang['You_received_ban'];

#
#-----[ REPLACE WITH ]------------------------------------------
#
			switch ( $warning_type )
			{
				case WARNING_TYPE_WARNING:
					$email_template = 'warnings_warning';
					$email_subject = $lang['You_received_warning'];
				break;
					
				case WARNING_TYPE_BAN:
					$email_template = 'warnings_ban';
					$email_subject = $lang['You_received_ban'];
				break;
			}
			
#
#-----[ FIND ]------------------------------------------
#
 			if ( ( ( $warning_time < 0 ) && ( $warning_time != WARNING_INFINITY ) ) || !in_array($warning_type, array(WARNING_TYPE_WARNING, WARNING_TYPE_BAN)) )
 			{
 				message_die(GENERAL_MESSAGE, 'Warnings_wrong_params');
 			}
 			
#
#-----[ AFTER, ADD ]------------------------------------------
#

			if ( $row['user_banned'] )
			{
				message_die(GENERAL_ERROR, 'Ban_received_for_this_post');
			}
			
#
#-----[ FIND ]------------------------------------------
#
				if ( $row['warning_type'] == WARNING_TYPE_WARNING )
				{
					$sql = "UPDATE " . USERS_TABLE . " SET user_warnings = user_warnings - 1, user_banned = 1 WHERE user_id = '$user_id'";
				}
				else
				{
					$sql = "UPDATE " . USERS_TABLE . " SET user_warnings = user_warnings + 1, user_banned = 0 WHERE user_id = '$user_id'";
				}

#
#-----[ REPLACE WITH ]------------------------------------------
#
				switch ( $row['warning_type'] )
				{
					case WARNING_TYPE_WARNING:
						$sql = "UPDATE " . USERS_TABLE . " SET user_warnings = user_warnings - 1 WHERE user_id = '$user_id'";
					break;
					
					case WARNING_TYPE_BAN:
						$sql = "UPDATE " . USERS_TABLE . " SET user_banned = 0 WHERE user_id = '$user_id'";
					break;
				}
				
				$db->sql_query($sql) or message_die(GENERAL_ERROR, 'Could not update user information', '', __LINE__, __FILE__, $sql);
				
				switch ( $warning_type )
				{
					case WARNING_TYPE_WARNING:
						$sql = "UPDATE " . USERS_TABLE . " SET user_warnings = user_warnings + 1 WHERE user_id = '$user_id'";
					break;
					
					case WARNING_TYPE_BAN:
						$sql = "UPDATE " . USERS_TABLE . " SET user_banned = 1 WHERE user_id = '$user_id'";
					break;
				}
				
#
#-----[ FIND ]------------------------------------------
#
				$email_subject =  ( $warning_type == WARNING_TYPE_WARNING ) ? $lang['You_received_warning'] : $lang['You_received_ban'];
				$email_change_text =  ( $warning_type == WARNING_TYPE_WARNING ) ? $lang['Ban_changed_to_warning'] : $lang['Warning_changed_to_ban'];

#
#-----[ REPLACE WITH ]------------------------------------------
#

				switch ( $warning_type )
				{
					case WARNING_TYPE_WARNING:
						$email_subject = $lang['You_received_warning'];
						$email_change_text = $lang['Ban_changed_to_warning'];
					break;

					case WARNING_TYPE_BAN:
						$email_subject = $lang['You_received_ban'];
						$email_change_text = $lang['Warning_changed_to_ban'];
					break;
				}
				
				$lang_key = 'Warning_type_changed_' . $row['warning_type'] . $warning_type;
				$email_change_text = $lang[$lang_key];
				
#
#-----[ FIND ]------------------------------------------
#
					if ( $row['warning_type'] == WARNING_TYPE_WARNING )
					{
						$sql = "UPDATE " . USERS_TABLE . " SET user_warnings = user_warnings - 1 WHERE user_id = '" . $row['warning_user_id'] . "'";
					}
					else
					{
						$sql = "UPDATE " . USERS_TABLE . " SET user_banned = 0 WHERE user_id = '" . $row['warning_user_id'] . "'";
					}
					
#
#-----[ REPLACE WITH ]------------------------------------------
#
					switch ( $row['warning_type'] )
					{
						case WARNING_TYPE_WARNING:
							$sql = "UPDATE " . USERS_TABLE . " SET user_warnings = user_warnings - 1 WHERE user_id = '" . $row['warning_user_id'] . "'";
						break;
					
						case WARNING_TYPE_BAN:
							$sql = "UPDATE " . USERS_TABLE . " SET user_banned = 0 WHERE user_id = '" . $row['warning_user_id'] . "'";
						break;
					}
					
#
#-----[ OPEN ]------------------------------------------
#
admin/admin_users.php

#
#-----[ FIND ]------------------------------------------
#
			$sql = "DELETE FROM " . SESSIONS_KEYS_TABLE . "
				WHERE user_id = $user_id";
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete auto-login keys for this user', '', __LINE__, __FILE__, $sql);
			}
			
#
#-----[ AFTER, ADD ]------------------------------------------
#

			// [begin] Warnings Mod 1.0.5
			$sql = "SELECT warning_id FROM " . WARNINGS_TABLE . " WHERE warning_userid = $user_id";
			$result = $db->sql_query($sql) or message_die(GENERAL_ERROR, 'Could not select all users private messages', '', __LINE__, __FILE__, $sql);

			while ( $row_warnings = $db->sql_fetchrow($result) )
			{
				$mark_list[] = $row_warnings['warning_id'];
			}
			
			if ( count($mark_list) )
			{
				$delete_sql_id = implode(', ', $mark_list);
				
				$delete_sql = "DELETE FROM " . WARNINGS_TABLE . " WHERE warning_id IN ($delete_sql_id)";
				$db->sql_query($delete_sql) or message_die(GENERAL_ERROR, 'Could not delete warnings info', '', __LINE__, __FILE__, $delete_sql);

				$delete_text_sql = "DELETE FROM " . WARNINGS_TEXT_TABLE . " WHERE warning_id IN ($delete_sql_id)";
				$db->sql_query($delete_text_sql) or message_die(GENERAL_ERROR, 'Could not delete warnings text', '', __LINE__, __FILE__, $delete_text_sql);
			}
			// [end] Warnings Mod 1.0.5

#
#-----[ OPEN ]------------------------------------------
#
includes/usercp_viewprofile.php

#
#-----[ FIND ]------------------------------------------
#
		$rank_image =  '<br />' . '<img src="' . $images['user_banned_rank'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" />';

#
#-----[ REPLACE WITH ]------------------------------------------
#
		$rank_image =  '<img src="' . $images['user_banned_rank'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" />';

#
#-----[ FIND ]------------------------------------------
#
		$rank_image = '<br />' . str_repeat($rank_image, $profiledata['user_warnings']);
	}
		
#
#-----[ REPLACE WITH ]------------------------------------------
#
		$rank_image = str_repeat($rank_image, $profiledata['user_warnings']);
	}
	$rank_image .= '<br />'; 

#
#-----[ FIND ]------------------------------------------
#
		$warning_icon = ( $row['warning_type'] == WARNING_TYPE_WARNING ) ? $images['user_warned_rank'] : $images['user_banned_rank'];

#
#-----[ REPLACE WITH ]------------------------------------------
#
			switch ( $row['warning_type'] )
			{
				case WARNING_TYPE_WARNING:
					$warning_icon = $images['user_warned_rank'];
				break;
					
				case WARNING_TYPE_BAN:
					$warning_icon = $images['user_banned_rank'];
				break;
			}
			
#
#-----[ OPEN ]------------------------------------------
#
language/lang_russian/lang_main.php

#
#-----[ FIND ]------------------------------------------
#
$lang['Warning_received_for_this_post'] = '      ';


#
#-----[ AFTER, ADD ]------------------------------------------
#
$lang['Ban_received_for_this_post'] = '      ';

#
#-----[ FIND ]------------------------------------------
#
$lang['Warning_changed_to_ban'] = '    ';
$lang['Ban_changed_to_warning'] = '    ';

#
#-----[ REPLACE WITH ]------------------------------------------
#
$lang['Warning_type_changed_12'] = '    ';
$lang['Warning_type_changed_21'] = '    ';

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM
