<?php
/** 
* @package	uForum 
* @file		warns.php
* @version	$Id$ 
* @copyright	2007-2010 (c) PioDer <pioder@wp.pl>
* @link    		http://www.pioder.pl/
* @license	see LICENSE.txt
**/
define('IN_uF', true);
//include files
require('./config.php');
require('./includes/constants.php');
require('./includes/db.php');
require('./includes/errors.php');
//connect to database
DataBase::db_connect();
require('./includes/sessions.php');
require('./includes/classes/class_user.php');
require('./common.php');
require('./includes/misc_functions.php');
require('./includes/classes/class_topic.php');
require('./includes/classes/class_posting.php');
require('./includes/classes/class_forum.php');
require('./includes/classes/secure.php');
require('./lngs/'.DefaultLang().'/main.php');
$start = TimeGeneration();
SessDelInvalid();	
SessRegister();
SessDeleteOld();
foreach ($_POST as $name => $value)
{
	if ($forum_config['use_censorlist'])
	{
		$_POST[$name] = Secure::UseCensorlist($value);
	}
}
if (!$forum_config['allow_warns'])
{ 
	message_forum($lng['warns_disabled'],'index.php');
}

$default_skin = ViewSkinName();

switch(trim($_GET['mode']))
{
	case 'add':
	{
		$uid = intval($_GET['id']);
		if (User::RankAdminMod($_SESSION['uid'])=='0')
		{
			message_forum($lng['is_no_mod'],'warns.php?mode=view&amp;id='.$uid);
		}
		$msg ='./skins/'.$default_skin.'/blank.tpl';
		if ((isset($_POST['textedit'])) and (isset($_POST['value'])))
		{
			if (($_POST['textedit'] !="" ) and (strlen($_POST['textedit'])>10))
			{
				if ((strpos($_POST['value'],'+')!==false) or (strpos($_POST['value'],'-')!==false))
				{
					if ($_POST['value'] == '+')
					{
			    			if (User::UserInformation($_GET['id'],'rank')>0)
			    			{
				        		message_forum($lng['cannot_add_warn_am'],'warns.php?mode=view&amp;id='.$_GET['id']);
						}
			  		}
					$_POST['textedit'] = Secure::TagsReplace($_POST['textedit']);
					User::UserAddWarn($_GET['id'],$_POST['value'] ,addslashes(strip_tags($_POST['textedit'])));
					$stop = TimeGeneration();
					message_forum($lng['warn_is_added'],'warns.php?mode=view&amp;id='.$_GET['id']);
				}
				else
				{
					$message =  $lng['werror_1'];
					$msg = './skins/'.$default_skin.'/post_error_body.tpl';
				}
			}
			else
			{
				$message =  $lng['perror_1'];
				$msg = './skins/'.$default_skin.'/post_error_body.tpl';
			}
		}	
		else
		{
			$_POST['textedit']='';
			$_POST['value']='';
		}
		$nick_name = User::UserInformation($_GET['id'],'nick');
		if($nick_name=='')
		{
			message_forum($lng['no_user'],'index.php');
		}
		//add skin variables
		$skin = array(
		'f_id'=>$_GET['id'],
		'smiles'=>Post::SmilesShow(),
		'action'=>'warns.php?mode=add&amp;id='.$_GET['id'],
		//labels
		'lsmiles'=>$lng['smiles'],
		'lmsg'=>$lng['motive'],
		'ladd'=>$lng['add'],
		'ldelete'=>$lng['delete'],
		'lsave'=>$lng['save'],
		'lvalue'=>$lng['value'],
		'lreset'=>$lng['reset'],
		'lwarn'=>$lng['warn'],
		'lall_warns'=>$lng['all_warns'],
		'queries'=>ShowQueries($start, TimeGeneration())
		);
		$skin = array_push_assoc($skin, GenerateHeader($lng['add_warn'].': '.$nick_name,'<a href="warns.php?mode=add&amp;id='.$uid.'" class="navigator">'.$lng['add_warn'].': '.$nick_name));
		if(User::UserInformation($_SESSION['uid'],'rank')=='2')
		{
			$skin['pa_link']='<a href="admin/index.php" class="fsmall"><b>'.$lng['pa_link'].'</b></a>';
		}
		else
		{
			$skin['pa_link']='';
		}
		require('./skins/'.$default_skin.'/overall_header.tpl');
		require('./skins/'.$default_skin.'/warns_add_body.tpl');
		require('./skins/'.$default_skin.'/overall_footer.tpl');
		break;
	}
	case 'view':
	{
		$uid = $_GET['id'];
		$sql = "SELECT `u_id`, `nick` FROM `".USERS_TABLE."` WHERE `u_id`='$uid'";
		$query = DataBase::sql_query($sql,GENERAL,'Could not obtain user information');
		$user = DataBase::fetch($query);
		if ($user['u_id']=='')
		{
    			message_forum($lng['no_user'],'index.php');
		}
		//add skin variables
		$skin = array(
		'lvalue' => $lng['value'],
		'lmotive' => $lng['motive']
		);
		$skin = array_push_assoc($skin, GenerateHeader($lng['show_warns'].': '.$user['nick'], '<a href="warns.php?mode=view&amp;id='.$uid.'" class="navigator">'.$lng['show_warns'].': '.$user['nick']));
		require('./skins/'.$default_skin.'/overall_header.tpl');
		require('./skins/'.$default_skin.'/warns_view_body.tpl');
		$sql = "SELECT * FROM `".WARNINGS_TABLE."` WHERE `u_id`='$uid'";
		$query = DataBase::sql_query($sql,GENERAL,'Could not obtain user warns information');
		$result = DataBase::num_rows($query);
		$warns_count = 0;
		while($item = DataBase::fetch($query))
		{
			$skin = array(
			'value'=>$item['value'],
			'motive'=>$item['motive']
			);
			require('./skins/'.$default_skin.'/warns_view_item_body.tpl');
			$warns_count = ($item['value']=='+') ? $warns_count + 1 : $warns_count -1;
		}
		$stop = TimeGeneration();
		$skin = array(
		'lall_warns'=>$lng['all_warns'],
		'all_warns'=>($warns_count>0) ? '<span class="fstandard" style="color: "red"><b>'.($warns_count*10).'%</b></span>' : '<span class="fstandard" style="color: green"><b>'.$warns_count.'%</b></span>',
		'queries'=>ShowQueries($start, $stop)
		);
		$user_rank = ($_SESSION['uid']>0) ? RANK : 0;
		if ($user_rank>0)
		{
			$skin['add']='<td width="128"><a href="warns.php?mode=add&amp;id='.$uid.'" class="fstandard"><b><u>'.$lng['add_warn'].'</u></b></a></td>';
		}
		else
		{
			$skin['add']='';
		}
		if ($result>0)
		{
			$skin['no_elements']='';
		}
		else
		{
			$skin['no_elements']='<tr><td width="'.TABLES_WIDTH.'" colspan="2" class="fitem"><p class="fstandard" align="center">'.$lng['no_elements'].'!</p></td></tr>';
		}  
		require('./skins/'.$default_skin.'/warns_view_end_body.tpl');
		require('./skins/'.$default_skin.'/overall_footer.tpl');
		break;
	}
	default:
	{
		$stop = TimeGeneration();
		message_forum($lng['invalidmode'],'index.php');
		break;
	}
}
?>