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

#
#-----[ OPEN ]------------------------------------------
#
common.php

#
#-----[ FIND ]------------------------------------------
#
	$remove_warning = $remove_ban = $warnings = array();

	if ($db->sql_numrows($result))
	{
		while ($row = $db->sql_fetchrow($result))
		{
			switch ($row['warning_type'])
			{
				case WARNING_TYPE_WARNING:
					if ( !in_array($row['warning_user_id'], $remove_warning) )
					{
						$remove_warning[] = $row['warning_user_id'];
						$warnings[] = $row['warning_id'];
					}
				break;

				case WARNING_TYPE_BAN:
					$remove_ban[] = $row['warning_user_id'];
					$warnings[] = $row['warning_id'];
				break;
			}
   		}

  		if ( count($remove_warning) )
  		{
	   		$remove_warning_list = implode($remove_warning, ',');

			$sql = "UPDATE " . USERS_TABLE . " SET user_warnings = user_warnings - 1 WHERE user_id IN($remove_warning_list)";
			$db->sql_query($sql, BEGIN_TRANSACTION) or message_die(GENERAL_MESSAGE, 'Error updating user warnings', '', __LINE__, __FILE__, $sql);
		}

  		if ( count($remove_ban) )
  		{
	   		$remove_ban_list = implode($remove_ban, ',');

			$sql = "UPDATE " . USERS_TABLE . " SET user_banned = 0 WHERE user_id IN($remove_ban_list)";
			$db->sql_query($sql, BEGIN_TRANSACTION) or message_die(GENERAL_MESSAGE, 'Error updating user ban', '', __LINE__, __FILE__, $sql);
		}

   		$warnings_list = implode($warnings, ',');

		$sql = "UPDATE " . WARNINGS_TABLE . " SET warning_proceed = 1 WHERE warning_id IN($warnings_list)";
		$db->sql_query($sql, END_TRANSACTION) or message_die(GENERAL_MESSAGE, 'Error updating user warnings', '', __LINE__, __FILE__, $sql);
	}
	
#
#-----[ REPLACE WITH ]------------------------------------------
#
	$users_warning = $users_ban = $warnings_type_warning = $warnings_type_ban = array();

	if ($db->sql_numrows($result))
	{
		while ($row = $db->sql_fetchrow($result))
		{
			switch ($row['warning_type'])
			{
				case WARNING_TYPE_WARNING:
					if ( !in_array($row['warning_user_id'], $users_warning) )
					{
						$users_warning[] = $row['warning_user_id'];
						$warnings_type_warning[] = $row['warning_id'];
					}
				break;

				case WARNING_TYPE_BAN:
					$users_ban[] = $row['warning_user_id'];
					$warnings_type_ban[] = $row['warning_id'];
				break;
			}
   		}

  		if ( count($users_warning) )
  		{
	   		$users_warning_list = implode($users_warning, ',');
	   		$warnings_type_warning_list = implode($warnings_type_warning, ','); 

			$sql = "UPDATE " . USERS_TABLE . " u, " . WARNINGS_TABLE . " w SET u.user_warnings = u.user_warnings - 1, w.warning_proceed = 1 WHERE u.user_id IN($users_warning_list) AND w.warning_id IN($warnings_type_warning_list)";
			$db->sql_query($sql) or message_die(GENERAL_MESSAGE, 'Error updating user warnings', '', __LINE__, __FILE__, $sql);
		}
		
  		if ( count($users_ban) )
  		{
	   		$users_ban_list = implode($users_ban, ',');
	   		$warnings_type_ban_list = implode($warnings_type_ban, ','); 

			$sql = "UPDATE " . USERS_TABLE . " u, " . WARNINGS_TABLE . " w SET u.user_banned = 0, w.warning_proceed = 1 WHERE u.user_id IN($users_ban_list) AND w.warning_id IN($warnings_type_ban_list)";
			$db->sql_query($sql) or message_die(GENERAL_MESSAGE, 'Error updating user warnings', '', __LINE__, __FILE__, $sql);
		}
	}
	
#
#-----[ OPEN ]------------------------------------------
#
viewtopic.php

#
#-----[ FIND ]------------------------------------------
#
		foreach ($warnings_row[$postrow[$i]['post_id']] as $warning)
		{
			$warning_icon = ( $warning['warning_type'] == WARNING_TYPE_WARNING ) ? $images['user_warned_rank'] : $images['user_banned_rank'];
			$warning_icon = '<img src="' . $warning_icon . '" border="0" alt="">';
			$warning_text = htmlspecialchars($warning['warning_text']);
			$warning_poster = '<a class="gensmall" href="' . append_sid('profile.' . $phpEx . '?mode=viewprofile&amp;' . POST_USERS_URL . '=' . $warning['warning_poster_id']) . '">' . $warning['username'] . '</a>';
			
#
#-----[ REPLACE WITH ]------------------------------------------
#
		foreach ($warnings_row[$postrow[$i]['post_id']] as $warning_row)
		{
			$warning_icon = ( $warning_row['warning_type'] == WARNING_TYPE_WARNING ) ? $images['user_warned_rank'] : $images['user_banned_rank'];
			$warning_icon = '<img src="' . $warning_icon . '" border="0" alt="">';
			$warning_text = htmlspecialchars($warning_row['warning_text']);
			$warning_poster = '<a class="gensmall" href="' . append_sid('profile.' . $phpEx . '?mode=viewprofile&amp;' . POST_USERS_URL . '=' . $warning_row['warning_poster_id']) . '">' . $warning_row['username'] . '</a>';
			
# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM