File "editpost.php"
Full path: /home/argothem/www/memo/site/site/CoolForum_0.8.4_beta/CoolForum_0.8.4_beta/editpost.php
File size: 16.15 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("secret/connect.php");
require("admin/functions.php");
if(isset($_REQUEST['posterid'])) $posterid = intval($_REQUEST['posterid']);
else $posterid = 0;
if(isset($_REQUEST['parent'])) $parent = intval($_REQUEST['parent']);
else $parent = 0;
if(isset($_REQUEST['post'])) $post = intval($_REQUEST['post']);
else $post = 0;
if(isset($_REQUEST['forumid'])) $forumid = intval($_REQUEST['forumid']);
else $forumid = 0;
if(isset($_REQUEST['addpostit'])) $addpostit = intval($_REQUEST['addpostit']);
else $addpostit = 0;
if(isset($_REQUEST['p'])) $p = intval($_REQUEST['p']);
else $p = 0;
$tpl->box['boxconnected'] = NULLSTR;
$tpl->box['afferrormodo'] = NULLSTR;
$tpl->box['javascript'] = NULLSTR;
$tpl->box['treenav'] = NULLSTR;
$error = NULLSTR;
// #### dfinition du lieu ###
$SessLieu = 'TOP';
$SessForum = $forumid;
$SessTopic = $post;
//////////////////////////////
require("entete.php");
if (empty($_REQUEST['post']) || empty($_REQUEST['forumid']))
geterror("novalidlink");
function isicon($icone,$i)
{
global $EditForum,$Icon_Select;
if($EditForum['iconpost']==$icone) $Icon_Select[$i]=" CHECKED";
else $Icon_Select[$i]="";
}
getlangage("editpost");
$canedit = getrightedit($post,$_REQUEST['forumid']);
$table_smileys = getloadsmileys();
if(!$canedit)
{
$tpl->box['msg'] = $tpl->attlang("cantedit");
$tpl->box['editcontent'] = $tpl->gettemplate("editpost","msgbox");
$tpl->box['editcontent'] .= getjsredirect($_SERVER['HTTP_REFERER'],3000);
}
else
{
// ---------------------------------
// Bannissement d'un membre
// ---------------------------------
if($_REQUEST['action']=="banmember" && $_MODORIGHTS[3])
{
$query = $sql->query("SELECT userstatus FROM ".$_PRE."user WHERE userid='$posterid'");
list($ToBanStatus) = mysql_fetch_array($query);
if($_MODORIGHTS[3] && $ToBanStatus < $_USER['userstatus'])
{
$query = $sql->query("UPDATE ".$_PRE."user SET userstatus=-userstatus WHERE userid='$posterid'");
$query = $sql->query("SELECT ".$_PRE."user.userid,".$_PRE."user.login,".$_PRE."user.usermail,".$_PRE."userplus.mailorig FROM ".$_PRE."user LEFT JOIN ".$_PRE."userplus ON ".$_PRE."userplus.idplus=".$_PRE."user.userid WHERE userid='$posterid'");
$j = mysql_fetch_array($query);
$query = $sql->query("INSERT INTO ".$_PRE."banlist (userid,login,mail1,mail2) VALUES ('".$j['userid']."','".$j['login']."','".$j['usermail']."','".$j['mailorig']."')");
}
else
{
$tpl->box['msgerrormodo'] = $tpl->attlang('modocantban');
$tpl->box['afferrormodo'] = $tpl->gettemplate('editpost','afferrormodo');
}
}
// ---------------------------------
// Suppresion des messages
// ---------------------------------
if($_REQUEST['action']=="delete" && $_MODORIGHTS[2])
{
if($_POST['IsTopic']=="Y")
{
$query = $sql->query("SELECT poll FROM ".$_PRE."topics WHERE idtopic='$parent'");
list($id_poll) = mysql_fetch_array($query);
if($id_poll > 0)
$query = $sql->query("DELETE FROM ".$_PRE."poll WHERE id=".$id_poll);
$query = $sql->query("DELETE FROM ".$_PRE."posts WHERE parent='$parent'");
$query = $sql->query("DELETE FROM ".$_PRE."topics WHERE idtopic='$parent'");
updatenbtopics();
}
else
{
$query = $sql->query("DELETE FROM ".$_PRE."posts WHERE idpost='$post'");
updatetopiclastposter($parent);
}
updateforumlastposter($forumid);
updatenbposts();
if($_POST['IsTopic']=="Y") $tpl->box['msg']=$tpl->attlang("deltopicok");
else $tpl->box['msg']=$tpl->attlang("delmsgok");
$tpl->box['editcontent'] = $tpl->gettemplate("editpost","msgbox");
$tpl->box['editcontent'].= getjsredirect("list.php?forumid=".$forumid,3000);
}
// ---------------------------------
// Scinder les messages
// ---------------------------------
if($_REQUEST['action']=="split" && $_MODORIGHTS[8])
{
$testchain=preg_replace("/([\s]{1,})/","",$_POST['sujet']);
if(strlen($testchain)==0)
$error=$tpl->attlang("nosujetwhensplit");
if(strlen($error)==0)
{
$sql->query("INSERT INTO ".$_PRE."topics (idforum,sujet,date,icone,idmembre,pseudo) SELECT idforum,'".$_POST['sujet']."',date,icone,idmembre,pseudo FROM ".$_PRE."posts WHERE idpost='".$post."'");
$id=mysql_insert_id();
$sql->query("UPDATE ".$_PRE."posts SET parent='".$id."' WHERE parent='".$_REQUEST['parent']."' && idpost>='".$post."'");
$sql->query("UPDATE ".$_PRE."posts SET sujet='".$_POST['sujet']."' WHERE idpost='".$post."'");
updatetopiclastposter($id);
updatetopiclastposter($_REQUEST['parent']);
updateforumlastposter($_REQUEST['forumid']);
$tpl->box['msg']=$tpl->attlang("splitok");
$tpl->box['editcontent']=$tpl->gettemplate("editpost","msgbox");
$tpl->box['editcontent'].=getjsredirect("list.php?forumid=".$_REQUEST['forumid'],3000);
}
}
// ---------------------------------
// Gestion des post-it
// ---------------------------------
if($_REQUEST['action']=="addpostit" && $_MODORIGHTS[7])
$query = $sql->query("UPDATE ".$_PRE."topics SET postit='$addpostit' WHERE idtopic='$parent'");
// ---------------------------------
// Close/Open topic
// ---------------------------------
if($_REQUEST['action']=="closetopic" && $_MODORIGHTS[4])
{
if($_POST['opentopic']=="N") $opentopic = "N";
else $opentopic = "Y";
$query = $sql->query("UPDATE ".$_PRE."topics SET opentopic='$opentopic' WHERE idtopic='$parent'");
}
// ---------------------------------
// Changer de forum
// ---------------------------------
if($_REQUEST['action']=="changeforum" && $_MODORIGHTS[6] && $_POST['forumdest']>0)
{
$forumdest = intval($_POST['forumdest']);
$query = $sql->query("UPDATE ".$_PRE."topics SET idforum='$forumdest' WHERE idtopic='$parent'");
$query = $sql->query("UPDATE ".$_PRE."posts SET idforum='$forumdest' WHERE parent='$parent'");
updateforumlastposter($forumid);
updateforumlastposter($forumdest);
$tpl->box['msg'] = $tpl->attlang("topicmoved");
$tpl->box['editcontent'] = $tpl->gettemplate("editpost","msgbox");
$tpl->box['editcontent'] .= getjsredirect("list.php?forumid=".$forumdest,3000);
}
// ---------------------------------
// Edition du message
// ---------------------------------
if($_REQUEST['action']=="update")
{
$error="";
// **** test du sujet ****
if($_POST['IsTopic']=="Y")
{
$testchain=preg_replace("/([\s]{1,})/","",$_POST['sujet']);
if(strlen($testchain)==0)
$error=$tpl->attlang("badsujet");
}
// **** test et formattage du message ****
$testchain=preg_replace("/([\s]{1,})/","",$_POST['msg']);
if(strlen($testchain)==0)
$error=$tpl->attlang("badmsg");
// **** si tout est ok on formatte et on enregistre tout ****
if(strlen($error)==0)
{
$sujet = getformatmsg($_POST['sujet'],false); // formattage du sujet
if($_USER['wysiwyg']=="Y")
{
$msg = convert_html_to_bbcode($_POST['msg']);
$msg = getformatmsghtml($msg);
}
else
$msg = getformatmsg($_POST['msg']); // formattage du message
$msg = test_max_length($msg,$_PERMFORUM['MaxChar']);
$sujet = test_max_length($sujet,$_FORUMCFG['limittopiclength']);
// **** traitement de l'icne ****
if(!ereg("^icon([0-9]{1,2})$",$_POST['icon'])) $icon = "icon1";
else $icon = $_POST['icon'];
$bbita1="";
$bbita2="";
if($_POST['bbcode'] == "non") $nobb = "N"; // test si bbcode actif ou non
else
{
$nobb = "Y";
$bbita1 = "[ita]";
$bbita2 = "[/ita]";
}
if($_POST['smilecode'] == "non") $smiles = "N"; // active ou non smileys
else $smiles = "Y";
if($_FORUMCFG['viewmsgedit']=="Y")
{
$DateEdit = gmstrftime("%d/%m/%Y %H:%M",time()+(3600*($_FORUMCFG['defaulttimezone']+intval(date("I")))));
$LoginEdit = addslashes($_USER['username']);
$msg .= $tpl->gettemplate("editpost","editline");
}
if($_POST['IsTopic']=="Y")
$query=$sql->query("UPDATE ".$_PRE."topics SET sujet='$sujet',icone='$icon' WHERE idtopic='$parent'");
$query=$sql->query("UPDATE ".$_PRE."posts SET sujet='$sujet',
msg='$msg',
icone='$icon',
smiles='$smiles',
bbcode='$nobb'
WHERE idpost='$post'");
if ($query) $tpl->box['editcontent']=$tpl->gettemplate("editpost","editok");
else $tpl->box['editcontent']=$tpl->gettemplate("editpost","editnok");
$tpl->box['editcontent'].=getjsredirect("detail.php?forumid=".$forumid."&id=".$parent."&p=".$p."#".$post,3000);
}
}
if(!isset($tpl->box['editcontent']))
$_REQUEST['action'] = NULLSTR;
if(empty($_REQUEST['action']))
{
$tpl->box['affoptions'] = NULLSTR;
$tpl->box['smilechecked'] = NULLSTR;
$tpl->box['bbcodechecked'] = NULLSTR;
$tpl->box['mailnotify'] = NULLSTR;
$tpl->box['sondage'] = NULLSTR;
if(!isset($_REQUEST['p'])) $p = 1;
else $p = $_REQUEST['p'];
getlangage("writebox");
$tpl->box['editcontent']="";
$query=$sql->query("SELECT ".$_PRE."posts.idpost AS idpost,
".$_PRE."posts.sujet AS sujet,
".$_PRE."posts.date AS datepost,
".$_PRE."posts.parent AS parent,
".$_PRE."posts.msg AS msgpost,
".$_PRE."posts.icone AS iconpost,
".$_PRE."posts.idmembre AS posterid,
".$_PRE."posts.pseudo AS pseudo,
".$_PRE."posts.smiles,
".$_PRE."posts.bbcode AS afbbcode,
".$_PRE."user.*
FROM ".$_PRE."posts
LEFT JOIN ".$_PRE."user ON ".$_PRE."posts.idmembre=".$_PRE."user.userid
WHERE idpost='".$post."'");
$EditForum=mysql_fetch_array($query);
if(isset($error) && strlen($error)>0)
{
$EditForum['sujet'] = getrecupforform($_POST['sujet']);
$EditForum['msg'] = getrecupforform($_POST['msg']);
$EditForum['icon'] = $_POST['icon'];
$EditForum['smiles'] = $_POST['smilecode'];
$EditForum['afbbcode'] = $_POST['bbcode'];
$tpl->box['error'] = $tpl->gettemplate("editpost","errorbox");
}
else
$tpl->box['error'] = NULLSTR;
// **** on vrifie si le message est un sujet ****
$query=$sql->query("SELECT idpost,sujet FROM ".$_PRE."posts WHERE parent='".$EditForum['parent']."' ORDER BY date LIMIT 0,1");
list($TopicPost,$TopicSujet)=mysql_fetch_array($query);
// Barre de Navigation
$TopicSujet=getformatrecup($TopicSujet);
$ForumInfo=getforumname($_REQUEST['forumid']);
$ForumInfo['cattitle']=getformatrecup($ForumInfo['cattitle']);
$ForumInfo['forumtitle']=getformatrecup($ForumInfo['forumtitle']);
$tpl->treenavs=$tpl->gettemplate("treenav","treeeditpost");
$tpl->box['treenav']=$tpl->gettemplate("treenav","hierarchy");
if($TopicPost==$EditForum['idpost']) $IsTopic="Y";
else $IsTopic="N";
// **** on rcupre les infos sur le sujet ****
$query=$sql->query("SELECT opentopic,postit FROM ".$_PRE."topics WHERE idtopic='".$EditForum['parent']."'");
list($OpenTopic,$PostIt)=mysql_fetch_array($query);
$LimiteLength = $_PERMFORUM[$forumid]['MaxChar'];
if($LimiteLength > 0)
$tpl->box['limitmsgdef'] = $LimiteLength;
else
$tpl->box['limitmsgdef'] = $tpl->attlang("unlimited");
// **** Peut-on ouvrir/fermer le sujet? ****
if($IsTopic=="Y" && $_MODORIGHTS[4])
{
if($OpenTopic=="N")
{
$tpl->box['titleopclo']=$tpl->attlang("toopclotopic");
$tpl->box['opclotovalid']="Y";
}
else
{
$tpl->box['titleopclo']=$tpl->attlang("tocpclotopic");
$tpl->box['opclotovalid']="N";
}
$tpl->box['affoptions'].=$tpl->gettemplate("editpost","opclotopic");
}
// **** Peut-on pingler le sujet? ****
if($IsTopic=="Y" && $_MODORIGHTS[7])
{
if($PostIt=="0")
{
$tpl->box['postit']=$tpl->attlang("postitn");
$tpl->box['addpostit']="1";
}
else
{
$tpl->box['postit']=$tpl->attlang("postito");
$tpl->box['addpostit']="0";
}
$tpl->box['affoptions'].=$tpl->gettemplate("editpost","postittopic");
}
// **** Peut-on supprimer le message/sujet? ****
if($_MODORIGHTS[2])
{
if($IsTopic=="Y")
{
$tpl->box['titledeltopic']=$tpl->attlang("deltopic");
$tpl->box['cmdeltopic']=$tpl->attlang("cmdeltopic");
}
else
{
$tpl->box['titledeltopic']=$tpl->attlang("delpost");
$tpl->box['cmdeltopic']=$tpl->attlang("cmdelpost");
}
$tpl->box['affoptions'].=$tpl->gettemplate("editpost","deltopic");
}
// **** Peut-on scinder le sujet ? ****
if($IsTopic<>"Y" && $_MODORIGHTS[8])
$tpl->box['affoptions'].=$tpl->gettemplate("editpost","splittopic");
// **** Peut-on bannir le membre? ****
if($_MODORIGHTS[3] && $EditForum['posterid']>0)
{
$searchban=$sql->query("SELECT userid FROM ".$_PRE."banlist WHERE userid='".$EditForum['posterid']."'");
$isbanned=mysql_numrows($searchban);
if($isbanned==1) $tpl->box['affoptions'].=$tpl->gettemplate("editpost","banned");
else $tpl->box['affoptions'].=$tpl->gettemplate("editpost","banboxok");
}
// **** Peut-on dplacer le sujet ****
if($IsTopic=="Y" && $_MODORIGHTS[6])
getjumpforum("editpost");
else
$tpl->box['forumjump'] = NULLSTR;
if($_GENERAL[19] || $_GENERAL[20])
$tpl->box['editcontent'].=$tpl->gettemplate("editpost","optionsstruct");
// **** Edition du message ****
$EditForum['pseudo']=getformatrecup($EditForum['pseudo']);
$EditForum['sujet']=getformatrecup($EditForum['sujet']);
for($i=1;$i<17;$i++)
isicon("icon".$i,$i);
if($_USER['wysiwyg'] == "Y")
$tpl->box['quotemsg']=htmlentities(getformatrecup($EditForum['msgpost']));
else
$tpl->box['quotemsg']=getformatrecup($EditForum['msgpost']);
if($EditForum['smiles']=="N")
$tpl->box['smilechecked']=" checked";
if($EditForum['afbbcode']=="N")
$tpl->box['bbcodechecked']=" checked";
if($_USER['wysiwyg'] == "Y")
$tpl->box['javascript']=$tpl->gettemplate("writebox_wysiwyg","wysiwygjs");
else
$tpl->box['javascript']=$tpl->gettemplate("entete","getjscompter");
$tpl->box['writebox']=affwritebox();
$tpl->box['editcontent'].=$tpl->gettemplate("editpost","editmsgbox");
}
}
$cache.=$tpl->gettemplate("editpost","pagestruct");
$tps = number_format(get_microtime() - $tps_start,4);
$cache.=$tpl->gettemplate("baspage","endhtml");
$tpl->output($cache);
?>