File "groups.php"
Full path: /home/argothem/www/memo/site/site/CoolForum_0.8.4_beta/CoolForum_0.8.4_beta/admin/groups.php
File size: 14.14 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_groups");
if($_REQUEST['action'] == "confdelgrp")
{
$id = intval($_POST['id']);
$idgroup = intval($_POST['idgroup']);
$query = $sql->query("DELETE FROM ".$_PRE."groups WHERE id_group=$id");
$query = $sql->query("DELETE FROM ".$_PRE."groups_perm WHERE id_group=$id");
$query = $sql->query("UPDATE ".$_PRE."user SET userstatus=$idgroup WHERE userstatus=$id");
// penser virer les couleurs si on les intgre dans les skins
$_REQUEST['action'] = NULLSTR;
}
if($_REQUEST['action'] == "delgrp")
{
$id = intval($_GET['id']);
$query = $sql->query("SELECT parent FROM ".$_PRE."groups WHERE id_group=$id");
if(mysql_numrows($query)>0 && $id>4)
{
list($parent) = mysql_fetch_array($query);
$tpl->box['lignedelgrp'] = "";
$query = $sql->query("SELECT id_group, Nom_group FROM ".$_PRE."groups ORDER BY id_group");
while($Grps = mysql_fetch_array($query))
{
$Grps['Nom_group'] = getformatrecup($Grps['Nom_group']);
$selected = "";
if($parent == $Grps['id_group'])
$selected = " SELECTED";
$tpl->box['lignedelgrp'] .= $tpl->gettemplate("adm_groups","lignedelgrp");
}
}
$tpl->box['admcontent'] = $tpl->gettemplate("adm_groups","delgrp");
}
if($_REQUEST['action'] == "savedfor")
{
$id = intval($_POST['id']);
$query = $sql->query("SELECT forumid FROM ".$_PRE."forums ORDER BY forumid");
if(mysql_numrows($query) > 0)
{
while($For = mysql_fetch_array($query))
{
$ForumId = $For['forumid'];
if(isset($_POST['droits'][$ForumId]))
$IntDroitFor = get_intfromright($_POST['droits'][$ForumId]);
else
$IntDroitFor = 0;
if(isset($_POST['MaxChar'][$ForumId]))
$MaxChar = intval($_POST['MaxChar'][$ForumId]);
else
$MaxChar = 0;
$query_group = $sql->query("REPLACE INTO ".$_PRE."groups_perm (id_group, id_forum, droits, MaxChar) VALUES ('$id', '$ForumId', '$IntDroitFor', '$MaxChar')");
}
}
$_REQUEST['action'] = NULLSTR;
}
if($_REQUEST['action'] == "dfor")
{
$id = intval($_REQUEST['id']);
$i = 0;
// ######################################################################
// #### Affichage des catgories et forums pour slection des droits ####
$query = $sql->query("SELECT * FROM ".$_PRE."categorie ORDER BY catorder");
$nb = mysql_numrows($query);
$tpl->box['listedroits'] = "";
if ($nb==0)
$tpl->box['catforum'] .= $tpl->gettemplate("adm_groups","nocatfound");
else
{
$TabForum = array();
$sqlforums = $sql->query("SELECT ".$_PRE."forums.forumid,
".$_PRE."forums.forumcat,
".$_PRE."forums.forumtitle,
".$_PRE."groups_perm.droits,
".$_PRE."groups_perm.MaxChar
FROM ".$_PRE."forums LEFT JOIN ".$_PRE."groups_perm ON ".$_PRE."groups_perm.id_group='$id' AND ".$_PRE."groups_perm.id_forum = ".$_PRE."forums.forumid
ORDER BY ".$_PRE."forums.forumcat,".$_PRE."forums.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'])
{
$Selected = array(NULLSTR, NULLSTR, NULLSTR, NULLSTR, NULLSTR, NULLSTR, NULLSTR);
$MyForum = $TabForum[$cpt];
$Selected = get_rightfromint($Selected, $MyForum['droits']);
if($error)
{
if(count($_POST['droits'][$MyForum['forumid']])>0)
$AffRights = array_map("Return_Checked",$_POST['droits'][$MyForum['forumid']]);
$DefMaxChar = $_POST['MaxChar'][$MyForum['forumid']];
}
else
{
$AffRights = array_map("Return_Checked",$Selected);
$DefMaxChar = $MyForum['MaxChar'];
}
$MyForum['forumtitle'] = getformatrecup($MyForum['forumtitle']);
$i++;
if($id==1)
$forumlist .= $tpl->gettemplate("adm_groups","ligne_droits_guests");
else
$forumlist .= $tpl->gettemplate("adm_groups","ligne_droits");
}
if(strlen($forumlist)>0)
{
$Cats['cattitle'] = getformatrecup($Cats['cattitle']);
$tpl->box['listedroits'] .= $tpl->gettemplate("adm_groups","lignecat");
$tpl->box['listedroits'] .= $forumlist;
}
}
}
$tpl->box['admcontent'] = $tpl->gettemplate("adm_groups","edit_forumdroits");
}
if($_REQUEST['action'] == "savenewgroup")
{
$error = false;
$testchain = preg_replace("/([\s]{1,})/","",$_POST['Grp_Name']);
$Droits_gen = array_map("return_int",$_POST['Droits_gen']);
if(strlen($testchain)>0)
{
$parentgroup = intval($_POST['parentgroup']);
$Grp_Name = getformatmsg($_POST['Grp_Name']);
if(isset($_POST['ShowSelected']) && is_array($_POST['ShowSelected']) && count($_POST['ShowSelected']) > 0)
$IntDroitGen = get_intfromright($_POST['ShowSelected']);
else
$IntDroitGen = 0;
$query = $sql->query("INSERT INTO ".$_PRE."groups (parent, Nom_group, Droits_generaux, Max_Pm, Max_Cit, Max_Sign, Max_Desc) VALUES ('$parentgroup', '$Grp_Name', '$IntDroitGen', '".$Droits_gen['Max_Pm']."', '".$Droits_gen['Max_Cit']."', '".$Droits_gen['Max_Sign']."', '".$Droits_gen['Max_Desc']."')");
$IdNewGroup = mysql_insert_id();
if(isset($_POST['droits']) && is_array($_POST['droits']) && count($_POST['droits']) > 0)
foreach($_POST['droits'] as $key => $value)
{
$IntDroitFor = get_intfromright($value);
$MaxChar = intval($_POST['MaxChar'][$key]);
$query = $sql->query("INSERT INTO ".$_PRE."groups_perm (id_group, id_forum, droits, MaxChar) VALUES ('$IdNewGroup', '$key', '$IntDroitFor', '$MaxChar')");
}
$parentgroupcolor = 'grp'.$parentgroup;
$query = $sql->query("SELECT id, valeur FROM ".$_PRE."skins WHERE propriete = '$parentgroupcolor'");
while(list($idskin,$colorgroup) = mysql_fetch_array($query))
{
$newgroup = 'grp'.$IdNewGroup;
$saveskin = $sql->query("INSERT INTO ".$_PRE."skins (id,propriete,valeur) VALUES ($idskin,'$newgroup','$colorgroup')");
}
$_REQUEST['action'] = NULLSTR;
}
else
{
$error = true;
$_REQUEST['action'] = "newgroup";
}
}
if($_REQUEST['action'] == "newgroup")
{
$tpl->box['errormsg'] = NULLSTR;
$parentgroup = intval($_POST['parentgroup']);
$Droits = array( false, false, false, false,
false, false, false, false,
false, false, false, false,
false, false, false, false,
false, false, false, false, false);
$ShowSelected = array();
if($error)
{
$Grp_Name = getrecupforform($_POST['Grp_Name']);
if(count($_POST['ShowSelected'])>0)
$ShowSelected = array_map("Return_Checked",$_POST['ShowSelected']);
$tpl->box['errormsg'] = $tpl->gettemplate("adm_groups","errormsg");
}
else
{
//$id = intval($_REQUEST['id']);
$query = $sql->query("SELECT * FROM ".$_PRE."groups WHERE id_group='$parentgroup'");
$Droits_gen = mysql_fetch_array($query);
if($Droits_gen['Droits_generaux'] > 0)
{
$Droits = get_rightfromint($Droits, $Droits_gen['Droits_generaux']);
$ShowSelected = array_map("Return_Checked",$Droits);
}
}
$tpl->box['defdroits_gen_limit'] = $tpl->gettemplate("adm_groups","defdroits_gen_limit");
$tpl->box['defdroits_gen_autho'] = $tpl->gettemplate("adm_groups","defdroits_gen_autho");
$tpl->box['droitsgen'] = $tpl->gettemplate("adm_groups","defdroits_gen");
// ######################################################################
// #### Affichage des catgories et forums pour slection des droits ####
$query = $sql->query("SELECT * FROM ".$_PRE."categorie ORDER BY catorder");
$nb = mysql_numrows($query);
$tpl->box['listedroits'] = "";
if ($nb==0)
$tpl->box['catforum'] .= $tpl->gettemplate("adm_groups","nocatfound");
else
{
$TabForum = array();
$sqlforums = $sql->query("SELECT ".$_PRE."forums.forumid,
".$_PRE."forums.forumcat,
".$_PRE."forums.forumtitle,
".$_PRE."groups_perm.droits,
".$_PRE."groups_perm.MaxChar
FROM ".$_PRE."forums LEFT JOIN ".$_PRE."groups_perm ON ".$_PRE."groups_perm.id_group='$parentgroup' AND ".$_PRE."groups_perm.id_forum = ".$_PRE."forums.forumid
ORDER BY ".$_PRE."forums.forumcat,".$_PRE."forums.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'])
{
$Selected = array(NULLSTR, NULLSTR, NULLSTR, NULLSTR, NULLSTR, NULLSTR, NULLSTR);
$MyForum = $TabForum[$cpt];
$Selected = get_rightfromint($Selected, $MyForum['droits']);
if($error)
{
if(count($_POST['droits'][$MyForum['forumid']])>0)
$AffRights = array_map("Return_Checked",$_POST['droits'][$MyForum['forumid']]);
$DefMaxChar = $_POST['MaxChar'][$MyForum['forumid']];
}
else
{
$AffRights = array_map("Return_Checked",$Selected);
$DefMaxChar = $MyForum['MaxChar'];
}
$MyForum['forumtitle'] = getformatrecup($MyForum['forumtitle']);
$i = $cpt + 1;
$forumlist .= $tpl->gettemplate("adm_groups","ligne_droits");
}
if(strlen($forumlist)>0)
{
$Cats['cattitle']=getformatrecup($Cats['cattitle']);
$tpl->box['listedroits'] .= $tpl->gettemplate("adm_groups","lignecat");
$tpl->box['listedroits'] .= $forumlist;
}
}
}
$tpl->box['admcontent'] = $tpl->gettemplate("adm_groups","addgroup");
}
if($_REQUEST['action'] == "savedgen")
{
$id = intval($_POST['id']);
$Droits_gen['Max_Cit'] = intval($_POST['Droits_gen']['Max_Cit']);
$Droits_gen['Max_Sign'] = intval($_POST['Droits_gen']['Max_Sign']);
$Droits_gen['Max_Pm'] = intval($_POST['Droits_gen']['Max_Pm']);
$Droits_gen['Max_Desc'] = intval($_POST['Droits_gen']['Max_Desc']);
if(count($_POST['ShowSelected'])>0)
$Int_Rights = get_intfromright($_POST['ShowSelected']);
else
$Int_Rights = 0;
$query = $sql->query("UPDATE ".$_PRE."groups SET Droits_generaux = $Int_Rights, Max_Pm = ".$Droits_gen['Max_Pm']." , Max_Cit = ".$Droits_gen['Max_Cit'].", Max_Sign = ".$Droits_gen['Max_Sign'].", Max_Desc = ".$Droits_gen['Max_Desc']." WHERE id_group = $id");
$_REQUEST['action'] = NULLSTR;
}
if($_REQUEST['action'] == "dgen")
{
$tpl->box['defdroits_gen_limit'] = NULLSTR;
$tpl->box['defdroits_gen_autho'] = NULLSTR;
$Droits = array( false, false, false, false,
false, false, false, false,
false, false, false, false,
false, false, false, false,
false, false, false, false, false);
$ShowSelected = array();
$id = intval($_REQUEST['id']);
$query = $sql->query("SELECT * FROM ".$_PRE."groups WHERE id_group=$id");
$Droits_gen = mysql_fetch_array($query);
if($Droits_gen['Droits_generaux'] > 0)
{
$Droits = get_rightfromint($Droits, $Droits_gen['Droits_generaux']);
foreach($Droits as $key => $value)
{
if($value)
$ShowSelected[$key] = " CHECKED";
else
$ShowSelected[$key] = "";
}
}
if($id>1)
{
$tpl->box['defdroits_gen_limit'] = $tpl->gettemplate("adm_groups","defdroits_gen_limit");
$tpl->box['defdroits_gen_autho'] = $tpl->gettemplate("adm_groups","defdroits_gen_autho");
}
$tpl->box['defdroits_gen'] = $tpl->gettemplate("adm_groups","defdroits_gen");
$tpl->box['admcontent'] = $tpl->gettemplate("adm_groups","formdroits_gen");
}
if(empty($_REQUEST['action']))
{
$tpl->box['ligne_group'] = "";
$tpl->box['grpselect'] = "";
$query = $sql->query("SELECT id_group, Nom_group FROM ".$_PRE."groups ORDER BY id_group");
while(list($id_group,$Nom_group) = mysql_fetch_array($query))
{
if($id_group > 4) $tpl->box['linkdelete'] = $tpl->gettemplate("adm_groups","linkdelete");
else $tpl->box['linkdelete'] = "";
$tpl->box['ligne_group'] .= $tpl->gettemplate("adm_groups","ligne_group");
if($id_group<5)
$tpl->box['grpselect'] .= $tpl->gettemplate("adm_groups","grpselect");
}
$tpl->box['admcontent'] = $tpl->gettemplate("adm_groups","list_groups");
}
$cache.=$tpl->gettemplate("adm_groups","content");
require("bas.php");
?>