############################################################## 
## MOD Title: 		Warnings Mod 1.0.5 to 1.0.6 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-06-03 - Version 1.0.0 
##      - Initial Release 
## 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
############################################################## 

#
#-----[ OPEN ]------------------------------------------
#
admin/admin_board.php

# 
#-----[ FIND ]------------------------------------------ 
# 
	if( isset($HTTP_POST_VARS['submit']) ) 
	{ 
		$message = $lang['Config_updated']
	
#
#-----[ BEFORE, ADD ]------------------------------------------
#
	// [begin] Warnings Mod 1.0.6
	if( isset($HTTP_POST_VARS['submit']) )
	{
		$sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_warnings >= " . $new['warnings_per_ban'];
		$result = $db->sql_query($sql) or message_die(GENERAL_MESSAGE, 'Error getting banned users', '', __LINE__, __FILE__, $sql);

		$users_list = array();

		if ($db->sql_numrows($result))
		{
			while ( $row = $db->sql_fetchrow($result) )
			{
				$users_list[] = $row['user_id'];
			}
			
			$sql = "DELETE FROM " . SESSIONS_TABLE . " WHERE session_user_id IN (" . implode(',', $users_list) . ")";
			$db->sql_query($sql) or message_die(GENERAL_ERROR, 'Could not update session information', '', __LINE__, __FILE__, $sql);
		}
	}
	// [end] Warnings Mod 1.0.6

#
#-----[ OPEN ]------------------------------------------
#
admin/admin_users.php

#
#-----[ FIND ]------------------------------------------
#
			$sql = "SELECT warning_id FROM " . WARNINGS_TABLE . " WHERE warning_userid = $user_id";

#
#-----[ IN-LINE FIND ]------------------------------------------
#
warning_userid

#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
warning_user_id

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

#
#-----[ FIND ]------------------------------------------
#
		if ( $row['user_warnings'] == $board_config['warnings_per_ban'] )
		
#
#-----[ IN-LINE FIND ]------------------------------------------
#
==

#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
>=

#
#-----[ 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 ]------------------------------------------
#
 			$sql = "SELECT w.*, wt.* FROM " .  WARNINGS_TABLE . " w, " . WARNINGS_TEXT_TABLE . " wt WHERE w.warning_user_id = '$user_id' AND wt.warning_id = w.warning_id ORDER BY w.warning_posted DESC LIMIT 1";
			$result = $db->sql_query($sql) or	message_die(GENERAL_ERROR, 'Could not check warning information', '', __LINE__, __FILE__, $sql);

			if ( $db->sql_numrows($result) )
			{
				$check_row = $db->sql_fetchrow($result) or message_die(GENERAL_MESSAGE, 'Error checking warning information');
				$check_time = ( $check_row['warning_expires'] != WARNING_INFINITY ) ? $check_row['warning_expires'] - $check_row['warning_posted'] : $check_row['warning_expires'];
				$check_text = stripslashes($warning_text);

				if (
					( $check_row['warning_type'] == $warning_type ) &&
					( $check_row['warning_post_id'] == $post_id ) &&
					( $check_row['warning_user_id'] == $user_id ) &&
					( $check_row['warning_poster_id'] == $userdata['user_id'] ) &&
					( $check_time == $warning_time ) &&
					( $check_row['warning_text'] == $check_text )
					)
					{
						message_die(GENERAL_MESSAGE, 'Warning_with_this_data_already_given');
					}
			}


#
#-----[ FIND ]------------------------------------------
#
			if ( ( $warning_type == WARNING_TYPE_WARNING && ($row['user_warnings'] + 1) == $board_config['warnings_per_ban'] ) || ( $warning_type == WARNING_TYPE_BAN ) )

#
#-----[ IN-LINE FIND ]------------------------------------------
#
==

#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
>=

#
#-----[ FIND ]------------------------------------------
#
			$email_warning_expires =
			
#
#-----[ AFTER, ADD ]------------------------------------------
#
			if ( $warning_type == WARNING_TYPE_WARNING && ($row['user_warnings'] + 1) < $board_config['warnings_per_ban'] )
			{
				$warnings_information = sprintf($lang['Total_warn'], $email_now_warnings, $board_config['warnings_per_ban']);
			}
			else
			{
				$warnings_information = '';
			}

#
#-----[ FIND ]------------------------------------------
#
				'WARNINGS' => $email_now_warnings,
				'TOTAL_WARN' => $board_config['warnings_per_ban'],
				
#
#-----[ REPLACE WITH ]------------------------------------------
#
				'WARNINGS_INFORMATION' => $warnings_information,

#
#-----[ FIND ]------------------------------------------
#
			if ( $warning_type == WARNING_TYPE_WARNING && ($row['user_warnings'] + 1) == $board_config['warnings_per_ban'] )

#
#-----[ IN-LINE FIND ]------------------------------------------
#
==

#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
>=

#
#-----[ FIND ]------------------------------------------
#
 				message_die(GENERAL_MESSAGE, 'Warnings_wrong_params');
 			}

			if ( $row['user_banned'] )
			{
				message_die(GENERAL_ERROR, 'Ban_received_for_this_post');
			}
			
#
#-----[ REPLACE WITH ]------------------------------------------
#
 				message_die(GENERAL_MESSAGE, 'Warnings_wrong_params');
 			}
 			
#
#-----[ OPEN ]------------------------------------------
#
language/lang_russian/lang_main.php

#
#-----[ FIND ]------------------------------------------
#
$lang['Warning_type_changed_21']

#
#-----[ AFTER, ADD ]------------------------------------------
#
$lang['Total_warn'] = '   %s ,    %s     . ';
$lang['Warning_with_this_data_already_given'] = '      ';

#
#-----[ OPEN ]------------------------------------------
#
language/lang_russian/email/warnings_warning.tpl

#
#-----[ FIND ]------------------------------------------
#
   {WARNINGS} ,    {TOTAL_WARN}     . 

#
#-----[ REPLACE WITH ]------------------------------------------
#
{WARNINGS_INFORMATION}

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

#
#-----[ FIND ]------------------------------------------
#
	if ( ( $userdata['user_warnings'] == $board_config['warnings_per_ban'] ) || $userdata['user_banned'] )

#
#-----[ IN-LINE FIND ]------------------------------------------
#
==

#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
>=

#
#-----[ OPEN ]------------------------------------------
#
viewtopic.php

#
#-----[ FIND ]------------------------------------------
#
		if ( ( $postrow[$i]['user_warnings'] == $board_config['warnings_per_ban'] ) || $postrow[$i]['user_banned'] )

#
#-----[ IN-LINE FIND ]------------------------------------------
#
==

#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
>=

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

#
#-----[ FIND ]------------------------------------------
#
	if ( ( $profiledata['user_warnings'] == $board_config['warnings_per_ban'] ) || $profiledata['user_banned'] )

#
#-----[ IN-LINE FIND ]------------------------------------------
#
==

#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
>=

#
#-----[ FIND ]------------------------------------------
#
	if ( ( $profiledata['user_warnings'] == $board_config['warnings_per_ban'] ) || 	$profiledata['user_banned'] )

#
#-----[ IN-LINE FIND ]------------------------------------------
#
==

#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
>=

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

#
#-----[ FIND ]------------------------------------------
#
define('WARNING_TYPE_WARNING', 1);

#
#-----[ BEFORE, ADD ]------------------------------------------
#
define('POST_WARNING_URL', 'w');

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