File "modifforum.php"

Full path: /home/argothem/www/memo/site/site/CoolForum_0.8.4_beta/CoolForum_0.8.4_beta/admin/modifforum.php
File size: 14.42 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                   *
//*                                                                               *
//*********************************************************************************

require("entete.php"); 
getlangage("adm_createforum");

$tpl->box['titlesection'] = $tpl->attlang("titlemodifforum");

// ######################### fonctions #########################
function getplace($cat,$forum,$position)
{
	global $sql,$tpl,$pos,$_PRE;
	$chaine = NULLSTR;
	
	$query = $sql->query("SELECT * FROM ".$_PRE."forums WHERE forumcat='$cat' ORDER BY forumorder");
	
	while($pos=mysql_fetch_array($query))
	{
		if($forum==$pos['forumid'])
			$chaine .= $tpl->gettemplate("adm_createforum","posactual");
		else
			$chaine .= $tpl->gettemplate("adm_createforum","posdest");
	}
	return($chaine);
}


function getplacemodo($forum,$position)
{
	global $sql,$tpl,$pos,$_PRE;
	$chaine = NULLSTR;
	
	$query=$sql->query("SELECT * FROM ".$_PRE."moderateur WHERE forumident='$forum' ORDER BY modoorder");
	
	while($pos=mysql_fetch_array($query))
	{
		if($position==$pos['modoorder'])
			$chaine .= $tpl->gettemplate("adm_createforum","posmodoactual");
		else
			$chaine .= $tpl->gettemplate("adm_createforum","posmododest");
	}
	return($chaine);

}
// #############################################################

if($_REQUEST['action']=="changepos")
{
	if($_GET['changeto']<$_GET['place'])
	{
		$query=$sql->query("UPDATE ".$_PRE."forums SET forumorder=forumorder+1 WHERE forumcat=".$_GET['cat']." AND forumorder>=".$_GET['changeto']." AND forumorder<=".$_GET['place']);
		$query=$sql->query("UPDATE ".$_PRE."forums SET forumorder=".$_GET['changeto']." WHERE forumid=".$_GET['forumid']);
	}
	elseif ($_GET['changeto']>$_GET['place'])
	{
		$query=$sql->query("UPDATE ".$_PRE."forums SET forumorder=forumorder-1 WHERE forumcat=".$_GET['cat']." AND forumorder<=".$_GET['changeto']." AND forumorder>=".$_GET['place']);
		$query=$sql->query("UPDATE ".$_PRE."forums SET forumorder=".$_GET['changeto']." WHERE forumid=".$_GET['forumid']);	
	}
	$_REQUEST['action'] = NULLSTR;
}

if($_REQUEST['action']=="changeposmodo")
{
	if($_GET['changeto']<$_GET['place'])
	{
		$query=$sql->query("UPDATE ".$_PRE."moderateur SET modoorder=modoorder+1 WHERE forumident='".$_GET['forumid']."' AND modoorder<".$_GET['place']." AND modoorder>=".$_GET['changeto']);
		$query=$sql->query("UPDATE ".$_PRE."moderateur SET modoorder=".$_GET['changeto']." WHERE forumident='".$_GET['forumid']."' AND idusermodo=".$_GET['modo']);
	}
	elseif ($_GET['changeto']>$_GET['place'])
	{
		$query=$sql->query("UPDATE ".$_PRE."moderateur SET modoorder=modoorder-1 WHERE forumident=".$_GET['forumid']." AND modoorder<=".$_GET['changeto']." AND modoorder>".$_GET['place']);
		$query=$sql->query("UPDATE ".$_PRE."moderateur SET modoorder=".$_GET['changeto']." WHERE forumident=".$_GET['forumid']." AND idusermodo=".$_GET['modo']);	
	}
	$_REQUEST['id']=$_GET['forumid'];
	unset($_GET['forumid']);
	$_REQUEST['action']="modify";
}

if($_REQUEST['action']=="addmodo")
{
	$identuser			=	intval($_GET['identuser']);
	$id					=	intval($_GET['id']);
	$query				=	$sql->query("SELECT login FROM ".$_PRE."user WHERE userid = $identuser");
	
	list($username)	=	mysql_fetch_array($query);
	$username			=	getformatdbtodb($username);
	
	$query				=	$sql->query("SELECT * FROM ".$_PRE."moderateur WHERE forumident = $id");
	$modoorder			=	mysql_numrows($query)+1;
	
	$query				=$sql->query("INSERT INTO ".$_PRE."moderateur (forumident,idusermodo,modologin,modoorder,modorights) VALUES ($id,$identuser,'$username','$modoorder',215)");
	$_REQUEST['action']="modify";
}

if($_REQUEST['action']=="updatemodo")
{
	$Modorights = get_intfromright($_POST['modorights']);
	
	$query=$sql->query("UPDATE ".$_PRE."moderateur SET modorights = $Modorights WHERE forumident='".$_REQUEST['id']."' AND idusermodo=".$_REQUEST['identuser']);
	$_REQUEST['action']="modify";
}

if($_REQUEST['action']=="editmodo")
{
	$Modorights = array(false, false, false, false, false, false, false, false, false);
	$Check = array(NULLSTR, NULLSTR, NULLSTR, NULLSTR, NULLSTR, NULLSTR, NULLSTR, NULLSTR, NULLSTR);
	
	$query=$sql->query("SELECT * FROM ".$_PRE."moderateur WHERE forumident='".$_REQUEST['id']."' AND idusermodo=".$_REQUEST['identuser']);
	$Modo=mysql_fetch_array($query);
	
	$Modo['modologin']=getformatrecup($Modo['modologin']);
	
	$Modorights = get_rightfromint($Modorights,$Modo['modorights']);
	$Check = array_map("Return_Checked",$Modorights);

	$tpl->box['admcontent']=$tpl->gettemplate("adm_createforum","modoeditpage");
	
}

if($_REQUEST['action']=="delmodo")
{
	$query=$sql->query("SELECT modoorder from ".$_PRE."moderateur WHERE forumident='".$_POST['id']."' AND idusermodo=".$_POST['identuser']);
	list($modoorder)=mysql_fetch_array($query);
	
	$query=$sql->query("DELETE FROM ".$_PRE."moderateur WHERE forumident='".$_POST['id']."' AND idusermodo='".$_POST['identuser']."'");
	$query=$sql->query("UPDATE ".$_PRE."moderateur SET modoorder=modoorder-1 WHERE forumident='".$_POST['id']."' AND modoorder>='$modoorder'");
	
	$_REQUEST['action']="modify";
}

if($_REQUEST['action']=="save")
{
	$id			=	intval($_POST['id']);	
	
	// ##### Gestion si l'on change de catgorie #####
	$query	=	$sql->query("SELECT forumcat,forumorder FROM ".$_PRE."forums WHERE forumid=$id");
	$j	=	mysql_fetch_array($query);
	
	if($j['forumcat']!=$_POST['cat'])
	{
		$query		=	$sql->query("SELECT forumorder FROM ".$_PRE."forums WHERE forumcat=".$_POST['cat']);
		$nb		=	mysql_numrows($query);
		$order		=	$nb+1;
		$query		=	$sql->query("UPDATE ".$_PRE."forums SET forumorder=forumorder-1 WHERE forumcat='".$j['forumcat']."' AND forumorder>'".$j['forumorder']."'");
	}
	else
		$order		=	$j['forumorder'];

	// ##### Gestion des variables #####	
	$forumname				=	getformatmsg($_POST['forumname']);
	$forumcoment			=	getformatmsg($_POST['forumcoment']);
	
	$query					=	$sql->query("SELECT id_group FROM ".$_PRE."groups ORDER BY id_group");
	while($Group			=	mysql_fetch_array($query))
	{
		$Id_Group			=	$Group['id_group'];
		if(isset($_POST['droits'][$Id_Group]))
			$IntDroitFor 	= 	get_intfromright($_POST['droits'][$Id_Group]);
		else
			$IntDroitFor	=	0;
			
		if(isset($_POST['MaxChar'][$Id_Group]))
			$MaxChar		=	intval($_POST['MaxChar'][$Id_Group]);
		else
			$MaxChar		=	0;
			
		$query_group		=	$sql->query("REPLACE INTO ".$_PRE."groups_perm (id_group, id_forum, droits, MaxChar) VALUES ('$Id_Group', '$id', '$IntDroitFor', '$MaxChar')");
	}
	
	$query=$sql->query("UPDATE ".$_PRE."forums SET forumcat='".$_POST['cat']."',forumtitle='$forumname',forumcomment='$forumcoment',forumorder='$order', openforum='".$_POST['openorclose']."' WHERE forumid=".$_POST['id']);

	$_REQUEST['action'] = NULLSTR;
}

if($_REQUEST['action']=="modify")
{
	$tpl->box['IsSaved'] = NULLSTR;
	$id		=	intval($_REQUEST['id']);
	
	$query		=	$sql->query("SELECT * FROM ".$_PRE."forums WHERE forumid=$id");
	$InfosForum	=	mysql_fetch_array($query);
	
	$InfosForum['forumtitle'] = getformatrecup($InfosForum['forumtitle']);
	$InfosForum['forumcomment'] = getformatrecup($InfosForum['forumcomment']);
	
	// #### Le forum est-il ouvert? ####
	$OpenForum	= 	array(0 => "",1 => "");
	
	if($InfosForum['openforum']=='Y')	$OpenForum[0] = " SELECTED";
	else					$OpenForum[1] = " SELECTED";
				
	// #### Slection catgories ####
	$query		=	$sql->query("SELECT catid,cattitle FROM ".$_PRE."categorie ORDER BY catid");
	$nbcat		=	mysql_numrows($query);
	
	if($nbcat==0)
		$tpl->box['admcontent']=$tpl->gettemplate("adm_createforum","nocat");
	else
	{
		// #### Catgorie parente ####
		
		$tpl->box['catlist']	=	"";
		while($Cats=mysql_fetch_array($query))
		{
			$Selected	=	"";
			if($Cats['catid']==$InfosForum['forumcat'])
				$Selected	=	" SELECTED";
				
			$Cats['cattitle']	=	getformatrecup($Cats['cattitle']);
			$tpl->box['catlist']	.=	$tpl->gettemplate("adm_createforum","selectcat");
		}
		
		
		$tpl->box['pagedest']		=	"modifforum.php";
		
		//////////////////////////////////
		
		$FPerm				=	array();
		$query				=	$sql->query("SELECT * FROM ".$_PRE."groups_perm WHERE id_forum=$id ORDER BY id_group");
		while($j = mysql_fetch_array($query))
		{
			$FPerm[$j['id_group']]['droits'] 	= $j['droits'];
			$FPerm[$j['id_group']]['MaxChar'] = $j['MaxChar'];		
		}
		
		$tpl->box['listedroits'] 		= 	"";
		$query 				= 	$sql->query("SELECT * FROM ".$_PRE."groups ORDER BY id_group");
		$NbGroups			= 	mysql_numrows($query);
		$i				=	1;
		
		while($Grp = mysql_fetch_array($query))
		{
			$Selected		=	array(NULLSTR, NULLSTR, NULLSTR, NULLSTR, NULLSTR, NULLSTR, NULLSTR);
			if(!isset($FPerm[$Grp['id_group']]['droits']))		$FPerm[$Grp['id_group']]['droits'] 		= 0;
			if(!isset($FPerm[$Grp['id_group']]['MaxChar']))		$FPerm[$Grp['id_group']]['MaxChar'] 	= $FPerm[$Grp['parent']]['MaxChar'];
			
			$Selected 		= 	get_rightfromint($Selected, $FPerm[$Grp['id_group']]['droits']);
			
			$AffRights		=	array_map("Return_Checked",$Selected);
			$DefMaxChar		=	$FPerm[$Grp['id_group']]['MaxChar'];			
			
			if($Grp['id_group']==1)
				$tpl->box['listedroits'] .= 	$tpl->gettemplate("adm_createforum","ligne_droits_guests");
			else
				$tpl->box['listedroits'] .= 	$tpl->gettemplate("adm_createforum","ligne_droits");
			$i++;
		}		
		
		//////////////////////////////////
		
		$tpl->box['admcontent']=$tpl->gettemplate("adm_createforum","formulaire");
		
		
		// #### partie modrateurs ####
		
		$tpl->box['mododispolist'] = "";
		
		$query		=	$sql->query("SELECT id_group FROM ".$_PRE."groups WHERE (Droits_generaux BETWEEN 524288 AND 1048575) OR (Droits_generaux BETWEEN 1572863 AND 2097151)");
		
		if(mysql_numrows($query)>0)
		{
			$TabLstGrp	=	array();
			while($j = mysql_fetch_array($query))
				$TabLstGrp[] = $j['id_group'];
			
			$LstGrp 	= 	"'".implode("','",$TabLstGrp)."'";
			
			$query		=	$sql->query("SELECT ".$_PRE."user.userid,".$_PRE."user.login,".$_PRE."moderateur.* FROM ".$_PRE."user LEFT JOIN ".$_PRE."moderateur ON ".$_PRE."user.userid=".$_PRE."moderateur.idusermodo AND ".$_PRE."moderateur.forumident='".$_REQUEST['id']."' WHERE ".$_PRE."moderateur.idusermodo IS NULL AND ".$_PRE."user.userstatus IN ($LstGrp)");
			$nb		=	mysql_numrows($query);
			
			if($nb==0)
				$tpl->box['mododispolist'] = $tpl->attlang("ernomododispo");
			else
			{
				while($ModoDispo = mysql_fetch_array($query))
				{
					$ModoDispo['login'] 		= 	getformatrecup($ModoDispo['login'],false);
					$tpl->box['mododispolist'] 	.= 	$tpl->gettemplate("adm_createforum","modotochoose");
				}			
			}
			
			$query		=	$sql->query("SELECT * FROM ".$_PRE."moderateur WHERE forumident='".$_REQUEST['id']."' ORDER BY modoorder");
			$nb		=	mysql_numrows($query);
			
			if($nb==0)
				$tpl->box['modoselectlist'] 	= 	$tpl->attlang("ernomodoselect");
			else
			{
				$tpl->box['lgnemodo'] 		= 	"";
				while($ModoSelect = mysql_fetch_array($query))
				{
					$tpl->box['modoorder'] 		= 	"";
					
					$ModoSelect['modologin'] 	= 	getformatrecup($ModoSelect['modologin'],false);
					$tpl->box['modoorder'] 		= 	getplacemodo($_REQUEST['id'],$ModoSelect['modoorder']);
					$tpl->box['lgnemodo'] 		.= 	$tpl->gettemplate("adm_createforum","lgnemodo");
				}
				$tpl->box['modoselectlist'] 		= 	$tpl->gettemplate("adm_createforum","tblemodolist");
			}
		}
		
		$tpl->box['admcontent'].=$tpl->gettemplate("adm_createforum","modolist");
	}
}


if(empty($_REQUEST['action']))
{
	$query = $sql->query("SELECT * FROM ".$_PRE."categorie ORDER BY catorder");
	$nb=mysql_numrows($query);
	
	$tpl->box['catforum']="";
	if ($nb==0)
		$tpl->box['catforum'].=$tpl->gettemplate("adm_createforum","nocatfound");
	else
	{
		$TabForum=array();
		
		$sqlforums = $sql->query("SELECT * FROM ".$_PRE."forums ORDER BY forumcat,forumorder");
		$nbforums=mysql_numrows($sqlforums);
		
		if($nbforums>0)
			while($TabForum[]=mysql_fetch_array($sqlforums));
	
		while($Cats=mysql_fetch_array($query))
		{
			$forumlist="";

			for($cpt=0;$cpt<count($TabForum);$cpt++)
				if($TabForum[$cpt]['forumcat']==$Cats['catid'])
				{
					//rcupration des infos
					$MyForum = $TabForum[$cpt];
					$MyForum['forumtitle'] = getformatrecup($MyForum['forumtitle']);
					$MyForum['position'] = getplace($Cats['catid'],$MyForum['forumid'],$MyForum['forumorder']);
					
					$forumlist .= $tpl->gettemplate("adm_createforum","ligneforum");
				}		
			
			if(strlen($forumlist)>0)
			{
				$Cats['cattitle']=getformatrecup($Cats['cattitle']);
								
				$tpl->box['catforum'].=$tpl->gettemplate("adm_createforum","lignecat");
				$tpl->box['catforum'].=$forumlist;
			}
		}
	}	
	
	$tpl->box['admcontent']=$tpl->gettemplate("adm_createforum","forumlist");
}

$cache.=$tpl->gettemplate("adm_createforum","content");
require("bas.php");
?>