File "profile_pm.php"

Full path: /home/argothem/www/memo/site/site/CoolForum_0.8.4_beta/CoolForum_0.8.4_beta/profile_pm.php
File size: 11.82 KB
MIME-type: text/x-php
Charset: 8 bit

<?
//*********************************************************************************
//*                                                                               *
//*                  CoolForum v.0.8 Beta : Forum de discussion                   *
//*              Copyright 2001-2002 SORIANO Denis alias Cool Coyote             *
//*                                                                               *
//*                                                                               *
//*       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.                  *
//*                                                                               *
//*       This program is distributed in the hope that it will be useful,         *
//*       but WITHOUT ANY WARRANTY; without even the implied warranty of          *
//*       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           *
//*       GNU General Public License for more details.                            *
//*                                                                               *
//*       You should have received a copy of the GNU General Public License       *
//*       along with this program; if not, write to the Free Software             *
//*	      Foundation, Inc., 59 Temple Place - Suite 330,                          *
//*	      Boston, MA  02111-1307, USA.                                            *
//*                                                                               *
//*                                                                               *
//*       Forum Cr par SORIANO Denis (Cool Coyote)                              *
//*       contact : coyote@coolcoyote.net                                         *
//*       site web et tlchargement : http://www.coolforum.net                   *
//*                                                                               *
//*********************************************************************************

if(!ereg('profile.php',$_SERVER['PHP_SELF']))
{
	header('location: profile.php');
	exit;
}

getlangage("profile_pm");

// ###### Navigation ######
$tpl->treenavs=$tpl->gettemplate("treenav","treeprofil");
$cache.=$tpl->gettemplate("treenav","hierarchy");

if($_REQUEST['action']=="delmsg")
{
	$total=count($_REQUEST['del']);
	if($total==0)
		$tpl->box['infomsg']=$tpl->attlang("ifnopmtodel");
	else
	{
		$ok=true;
		for($i=0;$i<$total;$i++)
		{
			$transfert=each($_REQUEST['del']);
			$query=$sql->query("DELETE FROM ".$_PRE."privatemsg WHERE id='".$transfert[1]."' AND iddest='".$_USER['userid']."'");
			if(!$query)
				$ok=false;
		}
	
		if($ok)
			$tpl->box['infomsg']=$tpl->attlang("ifpmdeleted");
		else
			$tpl->box['infomsg']=$tpl->attlang("ifpmnotdel");
	}
	updatepmstats($_USER['userid']);
	
	$tpl->box['profilcontent']=$tpl->gettemplate("profil_pm","infobox");	
	$tpl->box['profilcontent'].=getjsredirect("profile.php?p=pm",3000);
}

if($_REQUEST['action']=="delallmsg")
{
	$query = $sql->query("DELETE FROM ".$_PRE."privatemsg WHERE iddest='".$_USER['userid']."'");
	
	if($query)	$tpl->box['infomsg']=$tpl->attlang("ifpmdeleted");
	else		$tpl->box['infomsg']=$tpl->attlang("ifpmnotdel");
	
	updatepmstats($_USER['userid']);
	
	$tpl->box['profilcontent']=$tpl->gettemplate("profil_pm","infobox");	
	$tpl->box['profilcontent'].=getjsredirect("profile.php?p=pm",3000);
}


if($_REQUEST['action']=="readmsg")
{
	$Id = intval($_REQUEST['id']);
	
	$query		=	$sql->query("SELECT * FROM ".$_PRE."privatemsg WHERE id='$Id'");
	$tpl->tmp	=	mysql_fetch_array($query);
	if($tpl->tmp['iddest']!= $_USER['userid'])
		geterror("notyours");
	
	$query		=	$sql->query("UPDATE ".$_PRE."privatemsg SET vu=1 WHERE id='$Id'");
	updatepmstats($_USER['userid']);
	
	$tpl->tmp['sujet']	=	getformatrecup($tpl->tmp['sujet']);
	$tpl->tmp['date']	=	getlocaltime($tpl->tmp['date']);
	$tpl->tmp['msg']	=	getformatrecup($tpl->tmp['msg']);

	if($tpl->tmp['smiles']=="Y")
	{
		$table_smileys=getloadsmileys();
		$tpl->tmp['msg']=getreturnsmilies($tpl->tmp['msg']);
	}

	if($tpl->tmp['bbcode']=="Y")
	{
		InitBBcode();
		$tpl->tmp['msg']=getreturnbbcode($tpl->tmp['msg']);
	}
	
	$tpl->box['profilcontent']=$tpl->gettemplate("profil_pm","readpmbox");
	 
}

if($_REQUEST['action']=="sendmsg")
{
	$error="";

	//**** test du sujet ****
	$testchain=preg_replace("/([\s]{1,})/","",$_POST['sujet']);
	if(strlen($testchain)==0)
		$error=$tpl->attlang("errorsujet");

	//**** test du message ****		
	$testchain=preg_replace("/([\s]{1,})/","",$_POST['msg']);
	if(strlen($testchain)==0)
		$error=$tpl->attlang("errormsg");
	
	//**** test du destinataire ****
	$testdest=intval($_POST['dest']);
	if($testdest < 1)
		$error=$tpl->attlang("errordest");
		
	if(strlen($error)==0)
	{
		//**** formattage des donnes ****		
		$date	=	time();
		$dest	=	intval($_POST['dest']);
		$sujet	=	getformatmsg($_POST['sujet'],false);
		
		if($_USER['wysiwyg']=="Y")
		{
			$msg		=	convert_html_to_bbcode($_POST['msg']);
			$msg		=	getformatmsghtml($msg);
		}
		else
			$msg	=	getformatmsg($_POST['msg']);

		$msg		=	test_max_length($msg,$_USER['Max_Pm']);
		$sujet		=	test_max_length($sujet,$_FORUMCFG['limittopiclength']);
		
		if(isset($_POST['smilecode']) && $_POST['smilecode']=="non")	$smiles	=	"N";
			else			$smiles	=	"Y";	
	
		if(isset($_POST['bbcode']) && $_POST['bbcode']=="non")	$nobb	=	"N";
			else			$nobb	=	"Y";
	
		$username = getformatdbtodb($_USER['username']);

		$query = $sql->query("INSERT INTO ".$_PRE."privatemsg (iddest,idexp,date,pseudo,sujet,msg,smiles,bbcode) VALUES ('$dest','".$_USER['userid']."','$date','$username','$sujet','$msg','$smiles','$nobb')");
		updatepmstats($dest);
			
		if($query)
		{
			if($_FORUMCFG['mailnotify']=="Y")
			{
				$quest = $sql->query("SELECT usermail, notifypm FROM ".$_PRE."user WHERE userid='$dest'");
				$zz=mysql_fetch_array($quest);
				if($zz['notifypm']=="Y")
				{
					$forumname	=	$_FORUMCFG['mailforumname'];
					$username	=	formatstrformail($_USER['username']);
					
					if(get_magic_quotes_gpc() == 1)
						$sujet	=	stripslashes($_POST['sujet']);
					
					eval("\$subject = ".$tpl->attlang("mailsujet").";");
					eval("\$mesg = ".$tpl->attlang("mailmsg").";");
					
					@sendmail($zz['usermail'],$subject,$mesg);
				}
			}	
			$tpl->box['infomsg']	=	$tpl->attlang("msgsent");
		}
		else
			$tpl->box['infomsg']	=	$tpl->attlang("msgnotsent");
		
		$tpl->box['profilcontent']	=	$tpl->gettemplate("profil_pm","infobox");
		$tpl->box['profilcontent']       .=	getjsredirect("profile.php?p=pm",3000);
	}
	else
	{
		$tpl->box['errorbox']	=	$tpl->gettemplate("profil_pm","errorbox");
		$pm=$_POST;
		$_REQUEST['action']	=	"writemsg";
	}
	
}
if($_REQUEST['action']=="writemsg")
{
	getlangage("writebox");

	$tpl->box['smilechecked'] 			=		NULLSTR;
	$tpl->box['bbcodechecked'] 			=		NULLSTR;
	$tpl->box['mailnotify'] 			=		NULLSTR;
	$tpl->box['sondage'] 				=		NULLSTR;
	$tpl->box['errorbox'] 				=		NULLSTR;

	$table_smileys						=		getloadsmileys();
	$posteurpseudo						=		getformatrecup($_USER['username']);
	
	if(isset($_POST['idpm']))
	{
		$idpm							=		intval($_POST['idpm']);
		$getpm							=		$sql->query("SELECT * FROM ".$_PRE."privatemsg WHERE id='$idpm'");
		$pm								=		mysql_fetch_array($getpm);
		
		//**** formattage du sujet ****
		$prefixsujet					=		$tpl->attlang("prefsujet");
		$tpl->box['subject']			=		"";
		
		if(substr($pm['sujet'],0,strlen($prefixsujet))!=$prefixsujet)
			$tpl->box['subject']		.=		$prefixsujet;
			
		$tpl->box['subject']			.=		getformatrecup($pm['sujet']);
		
		//**** formattage du message ****
		$pm['msg']						=		preg_replace("/\[quote\](.*?)\[\/quote\]/si","",$pm['msg']);
		$tpl->box['quotemsg']			=		"[quote]".getformatrecup($pm['msg'])."[/quote]";
	}
	elseif(!empty($pm) && count($pm)>0)
	{
		$tpl->box['subject']			=		getrecupforform($pm['sujet']);
		$tpl->box['quotemsg']			=		getrecupforform($pm['msg']);
	}
	else
		$tpl->box['subject']			=		"";
	
	$LimiteLength 						= 		$_USER['Max_Pm'];

	if($LimiteLength > 0)
		$tpl->box['limitmsgdef']		=		$LimiteLength;
	else
		$tpl->box['limitmsgdef']		=		$tpl->attlang("unlimited");
	//$tpl->box['profilcontent']	=	$tpl->gettemplate("javascript","compter");
	
	//**** slection des pseudos ****
	if(isset($_GET['pseudosearch']) && strlen($_GET['pseudosearch'])>0)
	{
		$pseudosearch	=	getformatmsg($_GET['pseudosearch'],false);
		$query		=	$sql->query("SELECT userid,login FROM ".$_PRE."user WHERE login LIKE \"%$pseudosearch%\" AND userstatus > 0 ORDER BY login");
	}
	else
		$query		=	$sql->query("SELECT userid,login FROM ".$_PRE."user WHERE userstatus > 0 ORDER BY login");
	
	if(mysql_numrows($query)>0)
	{
		$tpl->box['loginlist']="";
		while($j=mysql_fetch_array($query))
		{
			$selected="";
			if((isset($pm['idexp']) && $pm['idexp']==$j['userid']) || (isset($_GET['idexp']) && $_GET['idexp']==$j['userid']) || (isset($_POST['dest']) && $_POST['dest']==$j['userid']))
				$selected=" SELECTED";
			$j['login'] = getformatrecup($j['login']); 
			$tpl->box['loginlist'].=$tpl->gettemplate("profil_pm","loginoption");
		}
		$tpl->box['loginform']=$tpl->gettemplate("profil_pm","loginselect");
	}
	else
		$tpl->box['loginform']=$tpl->attlang("usernotfound");
	
	//$tpl->box['limitmsgdef'] = $_USER['Grp_Pm'];	

	if($_USER['wysiwyg'] == "Y")
		$tpl->box['javascript']=$tpl->gettemplate("writebox_wysiwyg","wysiwygjs");
	else
		$tpl->box['javascript']=$tpl->gettemplate("entete","getjscompter");
			
	$tpl->box['boxwritepage']=affwritebox("N");
	
	$tpl->box['profilcontent']=$tpl->gettemplate("profil_pm","sendmessagebox");
}

if($_REQUEST['action']=="sendpmbymail" && $_FORUMCFG['sendpmbymail']=="Y" && $_FORUMCFG['usemails']=="Y")
{
	$query		= $sql->query("SELECT usermail FROM ".$_PRE."user WHERE userid='".$_USER['userid']."'");
	list($usermail)	= mysql_fetch_array($query);

	$forumname	=	formatstrformail(stripslashes(recupDBforMail($_FORUMCFG['forumname'])));
			
	$query = $sql->query("SELECT * FROM ".$_PRE."privatemsg WHERE iddest='".$_USER['userid']."'");
	
	$ok = true;
	while($Pm=mysql_fetch_array($query))
	{
		$Pm['sujet']	= formatstrformail(recupDBforMail($Pm['sujet']));
		$Pm['msg']	= strip_tags(formatstrformail(recupDBforMail($Pm['msg'])));
		$Pm['pseudo']	= formatstrformail(recupDBforMail($Pm['pseudo']));
		$Pm['date']	= getlocaltime($Pm['date']);
		
		eval("\$subject = ".$tpl->attlang("archivemailsujet").";");
		eval("\$mesg = ".$tpl->attlang("archivemailmsg").";");
		
		if(!@sendmail($usermail,$subject,$mesg))
			$ok = false;
	}
	
	if($ok==true)	$tpl->box['infomsg']=$tpl->attlang("mailsent");
	else		$tpl->box['infomsg']=$tpl->attlang("mailnotsent");
	
	$tpl->box['profilcontent']=$tpl->gettemplate("profil_pm","infobox");	
	$tpl->box['profilcontent'].=getjsredirect("profile.php?p=pm",3000);
}

if(empty($_REQUEST['action']))
{
	if($_USER['nbpmvu']==0)
		$tpl->box['nbnewpm']=$tpl->attlang("nonewpm");
	elseif($_USER['nbpmvu']==1)
		$tpl->box['nbnewpm']=$tpl->attlang("onenewpm");
	else
		eval("\$tpl->box['nbnewpm']=\"".$tpl->attlang("multinewpm")."\";");
	
	$sql=mysql_query("SELECT * FROM ".$_PRE."privatemsg WHERE iddest=".$_USER['userid']." ORDER BY date DESC");
	$nb=mysql_numrows($sql);
	
	if($nb==0)
		$tpl->box['pmcontent']=$tpl->gettemplate("profil_pm","nonewpm");
	else
	{
		$tpl->box['pmcontent']="";
		while($Respm=mysql_fetch_array($sql))
		{
			if($Respm['vu']==0)
				$Respm['imgpm']="nonlu";
			elseif($Respm['vu']==1)
				$Respm['imgpm']="lu";
			$Respm['date']=getlocaltime($Respm['date']);
			$Respm['sujet']=getformatrecup($Respm['sujet']);
			$tpl->box['pmcontent'].=$tpl->gettemplate("profil_pm","viewpms");
		}	
	}
	
	if($_FORUMCFG['sendpmbymail']=="Y" && $_FORUMCFG['usemails']=="Y")
		$tpl->box['sendpmbymail']=$tpl->gettemplate("profil_pm","sendpmbymail");
	
	$tpl->box['profilcontent']=$tpl->gettemplate("profil_pm","interfaceaccueil");
}
?>