$maxtime AND fid=".$forum; $res=&db_query($sql,$link); $sql = "UPDATE ".$GLOBALS['DBprefix']."LastVisit SET lv_markcount=lv_markcount+1 WHERE lv_markall>$maxtime AND fid=".$newforum; $res=&db_query($sql,$link); } } $sql = "UPDATE ".$GLOBALS['DBprefix']."Topic SET $sqldata WHERE t_id=$topic"; $res =&db_query($sql,$link); if ($plid=&getvar("pl_id")) { if (getvar("enddate")) $enddate=time()+getvar("enddate")*24*60*60; else $enddate=0; $sql = "UPDATE ".$GLOBALS['DBprefix']."Poll SET pl_title=\"".getvar("pl_title")."\", pl_enddate=\"$enddate\" WHERE pl_id=\"$plid\""; $res =&db_query($sql,$link); $pv = $_POST['pv_text']; foreach ($pv as $pv_id=>$pv_text) { if ($pv_id>0 && $pv_text=="") { $sql = "DELETE FROM ".$GLOBALS['DBprefix']."Vote WHERE pvid=\"".db_slashes($pv_id)."\""; $res =&db_query($sql,$link); $sql = "DELETE FROM ".$GLOBALS['DBprefix']."PollVariant WHERE pv_id=\"".db_slashes($pv_id)."\""; $res =&db_query($sql,$link); } elseif ($pv_id>0 && $pv_text) { $sql = "UPDATE ".$GLOBALS['DBprefix']."PollVariant SET pv_text=\"".db_slashes($pv_text)."\" WHERE pv_id=\"".db_slashes($pv_id)."\""; $res =&db_query($sql,$link); } elseif ($pv_id<0 && $pv_text) { $sql = "INSERT INTO ".$GLOBALS['DBprefix']."PollVariant (pv_id,pv_plid,pv_text) VALUES(0,\"$plid\",\"".db_slashes($pv_text)."\")"; $res =&db_query($sql,$link); } } } if ($mode==1) forum_resync($newforum); if ($mode!=0) forum_resync($forum); topic_message(MSG_mod_saved,1); } elseif ($mode==2) { delete_topic($GLOBALS['topic']); $GLOBALS['refpage']=$GLOBALS['opt_url'].'/'.build_url($GLOBALS['inforum']); forum_resync($forum); message(MSG_mod_topic_deleted,1); } elseif ($mode==3) { $topic=$GLOBALS['topic']; if (!getvar("t_title")) error(MSG_e_t_empty); $newforum=&getvar("newforum"); $sql = "SELECT f_id FROM ".$GLOBALS['DBprefix']."Forum f LEFT JOIN ".$GLOBALS['DBprefix']."UserAccess ua ". "ON (ua.uid=".$GLOBALS['inuserid']." AND ua.fid=f_id) WHERE f_ltopic<=COALESCE(ua_level,".$GLOBALS['inuserbasic'].") AND f_id=\"$newforum\""; $res =&db_query($sql,$link); if (db_num_rows($res)==0) error(MSG_e_mod_notopicrights); unset($_POST['t_id']); unset($_POST['t_link']); $sqldata=build_sql_all("t_"); $sqldata.=", t_fid=\"".$newforum."\""; $sql = "INSERT INTO ".$GLOBALS['DBprefix']."Topic SET $sqldata"; $res=&db_query($sql,$link); $tid = db_insert_id($res); $sql = "SELECT p_uid,COUNT(p_id) AS ucount FROM ".$GLOBALS['DBprefix']."Post WHERE p_tid=\"$topic\" GROUP BY p_uid"; $res =&db_query($sql,$link); while ($udata=db_fetch_row($res)) { $copydif[$udata[0]]=$udata[1]; } $sql = "INSERT INTO ".$GLOBALS['DBprefix']."Post (p_tid,p_text,p__modcomment,p__time,p__edittime, p_signature,p__smiles,p__bcode,p__html,p_attach,p_uid,p_uname,p__ip,p_title) ". "SELECT \"$tid\",p_text,p__modcomment,p__time,p__edittime, p_signature,p__smiles,p__bcode,p__html,p_attach,p_uid,p_uname,p__ip,p_title ". "FROM ".$GLOBALS['DBprefix']."Post WHERE p_tid=\"$topic\""; $res=&db_query($sql,$link); user_summ($copydif,$fid); topic_resync($tid); forum_resync($newforum); topic_message(MSG_mod_copied,1); } } function clear_forum() { if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate']) error(MSG_e_mod_norights); clear_form(); } function do_clear_forum() { check_post(); if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate']) error(MSG_e_mod_norights); $link =$GLOBALS['link']; $forum = $GLOBALS['forum']; $sql = "SELECT t_id FROM ".$GLOBALS['DBprefix']."Topic t, ".$GLOBALS['DBprefix']."Post p1, ".$GLOBALS['DBprefix']."Post p2 ". "WHERE t.t_fid=\"$forum\" AND p1.p_id=t.t__lastpostid AND p2.p_id=t__startpostid"; if ($days=&getvar("days")) { $days = $GLOBALS['curtime']-($days*24*60*60); $sql.=" AND p1.p__time<$days"; } if ($count=&getvar("count")) { $sql.=" AND t.t__pcount<=$count"; } if ($title=&getvar("title")) { $sql.=" AND t.t_title LIKE \"%$title%\""; } if ($user=&getvar("user")) { $sql.=" AND p2.p_uname LIKE \"$user\""; } if (!$days && !$count && !$title && !$user) error(MSG_e_mod_noparams); $res =&db_query($sql,$link); while ($tdata=&db_fetch_array($res)) delete_topic($tdata['t_id']); forum_resync($forum); $msg = format_word($number,MSG_t1,MSG_t2,MSG_t3)." ".MSG_mod_deleted; $GLOBALS['refpage']=$GLOBALS['opt_url'].'/'.build_url($GLOBALS['inforum']); message($msg,1); } function split_topic() { if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate'] && !check_selfmod()) error(MSG_e_mod_norights); global $link; $uid=$GLOBALS['inuserid']; $flist=build_forum_select("f_ltopic",$GLOBALS['inforum']['f_tpid'],"(1=1)"); $start=&getvar("st"); $pcount=$GLOBALS['intopic']['t__pcount']; if (!isset($_GET['st']) && $pcount>$GLOBALS['inuser']['u_mperpage']) { $start=$pcount-$GLOBALS['inuser']['u_mperpage']; } if (!$start) $start="0"; if ($start!="all") $limit = " LIMIT $start,".$pcount; $pages=&build_pages($pcount,$start,$GLOBALS['inuser']['u_mperpage'],"index.php?m=moderate&a=split_topic&t=".$GLOBALS['topic']."&o=$sort"); $sql = "SELECT * FROM ".$GLOBALS['DBprefix']."Post WHERE p_tid=".$GLOBALS['topic'].' ORDER BY p__time '.$limit; $res =&db_query($sql,$link); mod_split_start($flist,$pages); while ($pdata=&db_fetch_array($res)) { mod_split_entry($pdata); } mod_split_end(); } function do_split_topic() { check_post(); if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate'] && !check_selfmod()) error(MSG_e_mod_norights); global $link; $tid=&getvar('tid'); if ($tid) { if ($tid==$GLOBALS['topic']) error(MSG_e_mod_sametopic); $sql = "SELECT f_id FROM ".$GLOBALS['DBprefix']."Topic, ".$GLOBALS['DBprefix']."Forum ". "LEFT JOIN ".$GLOBALS['DBprefix']."UserAccess ON (uid=".$GLOBALS['inuserid']." AND fid=f_id) ". "WHERE t_id=\"$tid\" AND t_fid=f_id AND f_ltopic<=COALESCE(ua_level,".$GLOBALS['inuserlevel'].")"; $res=&db_query($sql,$link); if (db_num_rows($res)==0) error(MSG_e_mod_noforumsplit); list($fid)=db_fetch_row($res); db_free_result($res); } else $fid=&getvar('newforum'); $forum=$GLOBALS['forum']; if (isset($_POST['move']) || $_POST['copy']) { $sql = "SELECT COUNT(*) FROM ".$GLOBALS['DBprefix']."Post WHERE p_tid=".$GLOBALS['topic']." AND p_uid!=2"; $res =&db_query($sql,$link); list($pcount)=db_fetch_row($res); if ($pcount==1) error(MSG_e_mod_singlepost); if (!$tid) { if (!getvar("t_title")) error(MSG_e_t_empty); check_topic($fid); $sql = "INSERT INTO ".$GLOBALS['DBprefix']."Topic SET t_fid=\"$fid\", t_title=\"".getvar("t_title")."\", t_descr=\"".getvar("t_descr")."\""; foreach ($GLOBALS['intopic'] as $key=>$value) { if (substr($key,2,0)=="t_" && $key!="t_title" && $key!="t_descr") $sql.=", $key=\"".db_slashes($value)."\""; } $res =&db_query($sql,$link); $tid = db_insert_id($res); } } $posts=$_POST['pid']; foreach ($posts as $pid=>$value) { if ($_POST['move'][$pid]) { if ($sqldata1) $sqldata1.=" OR "; $sqldata1.="p_id=".db_slashes($pid); } if ($_POST['delete'][$pid]) { if ($sqldata2) $sqldata2.=" OR "; $sqldata2.="p_id=".db_slashes($pid); } if ($_POST['copy'][$pid]) { if ($sqldata3) $sqldata3.=" OR "; $sqldata3.="p_id=".db_slashes($pid); } } if ($sqldata1) { $sql = "SELECT p_uid,COUNT(p_id) AS ucount FROM ".$GLOBALS['DBprefix']."Post WHERE $sqldata1 GROUP BY p_uid"; $res =&db_query($sql,$link); while ($udata=db_fetch_row($res)) { $movedif[$udata[0]]=$udata[1]; } if (getvar('putlink')) { if (getvar('tid')) { $sql = "SELECT t_title FROM ".$GLOBALS['DBprefix']."Topic WHERE t_id=\"$tid\""; $res=&db_query($sql,$link); list($t_title)=db_fetch_row($res); db_free_result($res); } else $t_title=&getvar("t_title"); $text1 = MSG_t_msgsplitted1." \\\"".$t_title."\\\""; $text2 = MSG_t_msgsplitted2." \\\"".db_slashes($GLOBALS['intopic']['t_title'])."\\\""; $sql = "INSERT INTO ".$GLOBALS['DBprefix']."Post SET p_uid=2, p_uname=\"System\", p__time=".$GLOBALS['curtime'].", p_tid=".$GLOBALS['topic'].", p_text=\"$text1\", p__html=1"; $res =&db_query($sql,$link); $sql = "INSERT INTO ".$GLOBALS['DBprefix']."Post SET p_uid=2, p_uname=\"System\", p__time=".$GLOBALS['curtime'].", p_tid=".$tid.", p_text=\"$text2\", p__html=1"; $res =&db_query($sql,$link); } $sql = "UPDATE ".$GLOBALS['DBprefix']."Post SET p_tid=\"$tid\" WHERE $sqldata1"; $res =&db_query($sql,$link); $movecount = db_affected_rows($res); user_substr($movedif,$forum); user_summ($movedif,$fid); } if ($sqldata2) { $sql = "SELECT p_uid,COUNT(p_id) AS ucount FROM ".$GLOBALS['DBprefix']."Post WHERE $sqldata2 GROUP BY p_uid"; $res =&db_query($sql,$link); while ($udata=db_fetch_row($res)) { $deldif[$udata[0]]=$udata[1]; } $sql = "SELECT p_attach FROM ".$GLOBALS['DBprefix']."Post WHERE $sqldata2"; $res =&db_query($sql,$link); if (db_num_rows($res)>0) { while ($pdata=db_fetch_row($res)) { if ($sqldata4) $sqldata4.=" OR "; $sqldata4.="file_id=".$pdata[0]; } $sql = "DELETE FROM ".$GLOBALS['DBprefix']."File WHERE $sqldata4"; $res =&db_query($sql,$link); } $sql = "DELETE FROM ".$GLOBALS['DBprefix']."Post WHERE $sqldata2"; $res =&db_query($sql,$link); $delcount=db_affected_rows($res); user_substr($deldif,$forum); } if ($sqldata3) { $sql = "SELECT p_uid,COUNT(p_id) AS ucount FROM ".$GLOBALS['DBprefix']."Post WHERE $sqldata3 GROUP BY p_uid"; $res =&db_query($sql,$link); while ($udata=db_fetch_row($res)) { $copydif[$udata[0]]=$udata[1]; } $copycount=count($copydif); $sql = "INSERT INTO ".$GLOBALS['DBprefix']."Post (p_tid,p_text,p__modcomment,p__time,p__edittime, p_signature,p__smiles,p__bcode,p__html,p_attach,p_uid,p_uname,p__ip,p_title) ". "SELECT \"$tid\",p_text,p__modcomment,p__time,p__edittime, p_signature,p__smiles,p__bcode,p__html,p_attach,p_uid,p_uname,p__ip,p_title ". "FROM ".$GLOBALS['DBprefix']."Post WHERE ($sqldata3)"; $res=&db_query($sql,$link); user_summ($copydif,$fid); } topic_resync($GLOBALS['topic']); if ($tid) topic_resync($tid); forum_resync($forum); if ($sqldata1 && $fid!=$forum) forum_resync($fid); $msg=format_word($movecount,MSG_p1,MSG_p2,MSG_p3)." ".MSG_mod_moved.", ". format_word($delcount,MSG_p1,MSG_p2,MSG_p3)." ".MSG_mod_deleted.', '. format_word($copycount,MSG_p1,MSG_p2,MSG_p3)." ".MSG_mod_pcopied; topic_message($msg,1); } function mod_forum() { if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate']) error(MSG_e_mod_norights); global $link; $forum=$GLOBALS['forum']; $sql = "SELECT * FROM ".$GLOBALS['DBprefix']."Topic WHERE t_fid=\"$forum\" ORDER BY t__lastpostid DESC"; $res =&db_query($sql,$link); $flist = build_forum_select("f_ltopic",0,"f_id!=$forum"); mod_forum_start($flist); while ($tdata=&db_fetch_array($res)) { mod_forum_entry($tdata); } mod_forum_end(); } function do_mod_forum() { check_post(); if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate']) error(MSG_e_mod_norights); global $link; if (count($_POST['move'])>0) check_topic($newforum=getvar("newforum")); $topics = $_POST['topics']; $forum=$GLOBALS['forum']; foreach ($topics as $tid=>$value) { if ($_POST['delete'][$tid]) { delete_topic($tid); } else { if ($_POST['sticky'][$tid]) { if ($sqldata1) $sqldata1.=" OR "; $sqldata1.="t_id=".db_slashes($tid); } else { if ($sqldata2) $sqldata2.=" OR "; $sqldata2.="t_id=".db_slashes($tid); } if ($_POST['stickypost'][$tid]) { if ($sqldata3) $sqldata3.=" OR "; $sqldata3.="t_id=".db_slashes($tid); } else { if ($sqldata4) $sqldata4.=" OR "; $sqldata4.="t_id=".db_slashes($tid); } if ($_POST['status'][$tid]) { if ($sqldata5) $sqldata5.=" OR "; $sqldata5.="t_id=".db_slashes($tid); } else { if ($sqldata6) $sqldata6.=" OR "; $sqldata6.="t_id=".db_slashes($tid); } if ($_POST['rate'][$tid]) { if ($sqldata7) $sqldata7.=" OR "; $sqldata7.="t_id=".db_slashes($tid); } else { if ($sqldata8) $sqldata8.=" OR "; $sqldata8.="t_id=".db_slashes($tid); } if ($_POST['move'][$tid]) { if ($sqldata9) $sqldata9.=" OR "; $sqldata9.="t_id=".db_slashes($tid); if ($sqldata10) $sqldata10.=" OR "; $sqldata10.="p_tid=".db_slashes($tid); } } } if ($sqldata1) { $sql="UPDATE ".$GLOBALS['DBprefix']."Topic SET t__sticky=1 WHERE t_fid=\"$forum\" AND ($sqldata1)"; $res =&db_query($sql,$link); } if ($sqldata2) { $sql="UPDATE ".$GLOBALS['DBprefix']."Topic SET t__sticky=0 WHERE t_fid=\"$forum\" AND ($sqldata2)"; $res =&db_query($sql,$link); } if ($sqldata3) { $sql="UPDATE ".$GLOBALS['DBprefix']."Topic SET t__stickypost=1 WHERE t_fid=\"$forum\" AND ($sqldata3)"; $res =&db_query($sql,$link); } if ($sqldata4) { $sql="UPDATE ".$GLOBALS['DBprefix']."Topic SET t__stickypost=0 WHERE t_fid=\"$forum\" AND ($sqldata4)"; $res =&db_query($sql,$link); } if ($sqldata5) { $sql="UPDATE ".$GLOBALS['DBprefix']."Topic SET t__status=1 WHERE t_fid=\"$forum\" AND ($sqldata5)"; $res =&db_query($sql,$link); } if ($sqldata6) { $sql="UPDATE ".$GLOBALS['DBprefix']."Topic SET t__status=0 WHERE t_fid=\"$forum\" AND ($sqldata6)"; $res =&db_query($sql,$link); } if ($sqldata7) { $sql="UPDATE ".$GLOBALS['DBprefix']."Topic SET t__rate=1 WHERE t_fid=\"$forum\" AND ($sqldata7)"; $res =&db_query($sql,$link); } if ($sqldata8) { $sql="UPDATE ".$GLOBALS['DBprefix']."Topic SET t__rate=0 WHERE t_fid=\"$forum\" AND ($sqldata8)"; $res =&db_query($sql,$link); } if ($sqldata9) { $sql = "SELECT p_uid,COUNT(p_id) AS ucount FROM ".$GLOBALS['DBprefix']."Post WHERE $sqldata10 GROUP BY p_uid"; $res =&db_query($sql,$link); while ($udata=db_fetch_row($res)) { $movedif[$udata[0]]=$udata[1]; } user_substr($movedif,$forum); user_summ($movedif,$newforum); $sql="UPDATE ".$GLOBALS['DBprefix']."Topic SET t_fid=\"".getvar("newforum")."\" WHERE t_fid=\"$forum\" AND ($sqldata9)"; $res =&db_query($sql,$link); } forum_resync($forum); if (count($_POST['move'])>0) forum_resync($newforum); $GLOBALS['refpage'] = $GLOBALS['opt_url'].'/'.build_url($GLOBALS['inforum']); topic_message(MSG_mod_t_saved,1); } function check_topic($forum) { $link = $GLOBALS['link']; $sql = "SELECT f_id FROM ".$GLOBALS['DBprefix']."Forum f LEFT JOIN ".$GLOBALS['DBprefix']."UserAccess ua ". "ON (ua.uid=".$GLOBALS['inuserid']." AND ua.fid=f_id) WHERE COALESCE(ua_level,".$GLOBALS['inuserbasic'].")>=f_ltopic AND f_id=\"$forum\""; $res =&db_query($sql,$link); if (db_num_rows($res)==0) error(MSG_e_mod_notopicrights); db_free_result($res); } function join_topic() { if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate']) error(MSG_e_mod_norights); global $link; $sql = "SELECT t_id,t_title FROM ".$GLOBALS['DBprefix']."Topic ". "WHERE t_fid=".$GLOBALS['forum']." AND t_id!=".$GLOBALS['topic']. " ORDER BY t__lasttime DESC"; $topiclist = build_select($sql); join_form($topiclist); } function do_join_topic() { check_post(); if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate']) error(MSG_e_mod_norights); global $link; $newtid=&getvar("newtid"); $text = MSG_t_msgjoin." \\\"".db_slashes($GLOBALS['intopic']['t_title'])."\\\""; $sql = "INSERT INTO ".$GLOBALS['DBprefix']."Post SET p_uid=2, p__time=".$GLOBALS['curtime'].", p_tid=\"$newtid\", p_text=\"$text\", p__html=1"; $res =&db_query($sql,$link); $sql = "SELECT p__time FROM ".$GLOBALS['DBprefix']."Post WHERE p_id=".$GLOBALS['intopic']['t__lastpostid']; $res=&db_query($sql,$link); list($maxtime)=db_fetch_row($res); db_free_result($res); $sql = "SELECT * FROM ".$GLOBALS['DBprefix']."Post WHERE p_tid=".$GLOBALS['topic']." ORDER BY p_id"; $res =&db_query($sql,$link); while ($pdata=&db_fetch_array($res)) { $sqldata=""; foreach ($pdata as $curkey=>$curvalue) { if ($curkey!='p_id' && $curkey!='p_tid') { $sqldata.=", $curkey=\"".db_slashes($curvalue)."\""; } } $sql="INSERT INTO ".$GLOBALS['DBprefix']."Post SET p_tid=\"$newtid\" $sqldata"; $res2 =&db_query($sql,$link); } $sql="DELETE FROM ".$GLOBALS['DBprefix']."Post WHERE p_tid=".$GLOBALS['topic']; $res =&db_query($sql,$link); delete_topic($GLOBALS['topic'],$maxtime); forum_resync($GLOBALS['forum']); topic_resync($newtid); $GLOBALS['topic']=$newtid; topic_message(MSG_mod_joined,1); } function edit_rules() { if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate']) error(MSG_e_mod_norights); rules_form($GLOBALS['inforum']['f_rules']); } function do_edit_rules() { check_post(); if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate']) error(MSG_e_mod_norights); global $link; $rules=&getvar("rules_text"); $sql = "UPDATE ".$GLOBALS['DBprefix']."Forum SET f_rules=\"$rules\" WHERE f_id=\"".$GLOBALS['forum']."\""; $res =&db_query($sql,$link); $GLOBALS['refpage']="index.php?f=".$GLOBALS['forum']; message(MSG_f_rules_saved,1); } function premod() { if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate']) error(MSG_e_mod_norights); global $link; $sql = "SELECT p.*,t_id,t_title, ph_tid, ph_key, ph_id, ". "file_id, file_name, file_type, file_size ". "FROM ".$GLOBALS['DBprefix']."Topic, ".$GLOBALS['DBprefix']."Post p ". "LEFT JOIN ".$GLOBALS['DBprefix']."File ON (file_id=p_attach) ". "LEFT JOIN ".$GLOBALS['DBprefix']."Photo ON (ph_tid=p_tid) ". "WHERE p_tid=t_id AND t_fid=".$GLOBALS['forum']." AND p__premoderate=1 ORDER BY p_tid,p__time"; $res =&db_query($sql,$link); premod_start(); $oldtopic=0; while ($pdata=&db_fetch_array($res)) { if ($pdata['t_id']!=$oldtopic) { premod_topic($pdata); $oldtopic=$pdata['t_id']; } premod_entry($pdata); } premod_end(); } function do_premod() { check_post(); global $link; if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate']) error(MGE_e_mod_norights); $sql = "SELECT p_id FROM ".$GLOBALS['DBprefix']."Post, ".$GLOBALS['DBprefix']."Topic ". "WHERE p_tid=t_id AND t_fid=".$GLOBALS['forum']." AND p__premoderate=1"; $res =&db_query($sql,$link); while ($tmp=db_fetch_row($res)) { $curkey=$tmp[0]; $curvalue=$_POST['pid'][$curkey]; if ($curvalue==2) { if ($deldata) $deldata.=" OR "; $deldata.="p_id=$curkey"; } elseif ($curvalue==1) { if ($pmdata) $pmdata.=" OR "; $pmdata.="p_id=$curkey"; } } if ($pmdata) { $sql = "SELECT p_uid, COUNT(p_id) AS ucount FROM ".$GLOBALS['DBprefix']."Post WHERE $pmdata GROUP BY p_uid"; $res =&db_query($sql,$link); while ($udata=db_fetch_row($res)) { $movedif[$udata[0]]=$udata[1]; } user_summ($movedif,$GLOBALS['inforum']); $sql = "UPDATE ".$GLOBALS['DBprefix']."Post SET p__premoderate=0 WHERE $pmdata"; $res =&db_query($sql,$link); $sql = "SELECT DISTINCT p_tid FROM ".$GLOBALS['DBprefix']."Post WHERE $pmdata"; $res =&db_query($sql,$link); while ($tdata=db_fetch_row($res)) { topic_resync($tdata[0]); } if (!$deldata) forum_resync($GLOBALS['forum']); $sql = "SELECT p.*,t_title,t_id,f_title,f_id FROM ".$GLOBALS['DBprefix']."Post p, ".$GLOBALS['DBprefix']."Topic, ".$GLOBALS['DBprefix']."Forum ". "WHERE ($pmdata) AND p_tid=t_id AND t_fid=f_id"; $res =&db_query($sql,$link); $buffer=load_mail("std_post.txt"); while ($pdata=&db_fetch_array($res)) { $sql = "SELECT u_id,u__name,u__email,u__key FROM ".$GLOBALS['DBprefix']."Subscription sb, ".$GLOBALS['DBprefix']."User u ". "LEFT JOIN ".$GLOBALS['DBprefix']."UserAccess ua ON (ua.uid=u_id AND ua.fid=".$pdata['f_id'].") ". "WHERE sb.uid=u_id AND sb.tid=".$pdata['t_id']." AND u_id>3 AND ". "COALESCE(ua_level,u__level)<".$GLOBALS['inforum']['f_lmoderate']; $res =&db_query($sql,$link); while ($email=db_fetch_row($res)) { $GLOBALS['username']=$email[1]; $GLOBALS['postername']=$pdata['p_uname']; $GLOBALS['flink']=$GLOBALS['opt_url'].'/'.build_url($pdata); $GLOBALS['unsublink']=$GLOBALS['opt_url']."/agent.php?a=unsub&u=".$email[0]. "&f=".$GLOBALS['forum']."&t=".$GLOBALS['topic']."&key=".md5($GLOBALS['topic'].$email[4]); replace_mail($buffer,$email[2],MSG_p_newmessage." ".$pdata['t_title']); } } } if ($deldata) { $sql = "SELECT p_attach FROM ".$GLOBALS['DBprefix']."Post WHERE $deldata"; $res =&db_query($sql,$link); while ($tmp=db_fetch_row($res)) { if ($tmp[0]!=0) { if ($attachdata) $attachdata.=", "; $attachdata.="file_id=".$tmp[0]; } } if ($attachdata) { $sql = "DELETE FROM ".$GLOBALS['DBprefix']."File WHERE $attachdata"; $res =&db_query($sql,$link); } $sql = "DELETE FROM ".$GLOBALS['DBprefix']."Post WHERE $deldata"; $res =&db_query($sql,$link); $sql = "SELECT p_tid,COUNT(*) AS pcount FROM ".$GLOBALS['DBprefix']."Post, ".$GLOBALS['DBprefix']."Topic ". "WHERE p_tid=t_id AND t_fid=".$GLOBALS['forum']." GROUP BY p_tid HAVING pcount=0"; $res =&db_query($sql,$link); while ($tmp=db_fetch_row($res)) { delete_topic($tmp[0]); } forum_resync($GLOBALS['forum']); } $GLOBALS['refpage']=$GLOBALS['opt_url'].'/'.build_url($GLOBALS['inforum']); message(MSG_f_premoderated,1); } function mod_banlist() { global $link; if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate']) error(MGE_e_mod_norights); $sql = "SELECT u_id,u__name FROM ".$GLOBALS['DBprefix']."User, ".$GLOBALS['DBprefix']."UserAccess ". "WHERE u_id=uid AND fid=".$GLOBALS['forum']." AND ua_level=-1 AND u_id>3 ORDER BY u__name"; $res =&db_query($sql,$link); mod_ban_start(); while ($udata=&db_fetch_array($res)) { mod_ban_entry($udata); } if (db_num_rows($res)==0) mod_ban_noentries(); mod_ban_end(); } function do_mod_clearban() { $key=&getvar('key'); if (md5($GLOBALS['inuser']['u__key'].$GLOBALS['forum'])!=$key) error(MSG_e_mod_badkey); global $link; if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate']) error(MGE_e_mod_norights); $uid=&getvar("u"); $sql = "DELETE FROM ".$GLOBALS['DBprefix']."UserAccess WHERE uid=\"$uid\" AND fid=".$GLOBALS['forum']; $res =&db_query($sql,$link); $sql = "DELETE FROM ".$GLOBALS['DBprefix']."Online"; $res =&db_query($sql,$link); message(MSG_mod_bancleared,1); } function do_mod_addban() { check_post(); global $link; if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate']) error(MGE_e_mod_norights); $uname=&getvar("uname"); $sql = "SELECT u_id,u__level,ua_level FROM ".$GLOBALS['DBprefix']."User ". "LEFT JOIN ".$GLOBALS['DBprefix']."UserAccess ON (uid=u_id AND fid=".$GLOBALS['forum'].") ". "WHERE u__name=\"$uname\""; $res =&db_query($sql,$link); list($uid,$ulevel,$ualevel)=db_fetch_row($res); if ($ulevel>=$GLOBALS['inuserlevel'] || $ualevel>=$GLOBALS['inuserlevel']) error(MSG_e_mod_subordinate); $sql = "DELETE FROM ".$GLOBALS['DBprefix']."UserAccess WHERE uid=$uid AND fid=".$GLOBALS['forum']; $res =&db_query($sql,$link); $sql = "INSERT INTO ".$GLOBALS['DBprefix']."UserAccess SET uid=$uid, fid=".$GLOBALS['forum'].", ua_level=-1"; $res =&db_query($sql,$link); $sql = "DELETE FROM ".$GLOBALS['DBprefix']."Online"; $res =&db_query($sql,$link); message(MSG_mod_banned,1); } function complain() { complain_form(); } function do_complain() { check_post(); global $link; $text=&getvar("text"); if (!$text) error(MSG_e_p_emptycomplain); if ($GLOBALS['opt_complain']==2 || ($GLOBALS['opt_complain']==1 && $GLOBALS['inuserid']<=3)) error(MSG_e_p_nocomplain); $subj=MSG_mod_complain; $text.="\n".MSG_topic." ".$GLOBALS['intopic']['t_title']." ".MSG_offorum." ".$GLOBALS['inforum']['f_title']."\n"; $text.=$GLOBALS['opt_url']."/index.php?t=".$GLOBALS['topic']."&p=".getvar("p"); $sql = "SELECT u_id FROM ".$GLOBALS['DBprefix']."User u ". "LEFT JOIN ".$GLOBALS['DBprefix']."UserAccess ua ON (ua.uid=u.u_id AND ua.fid=".$GLOBALS['forum'].") ". "WHERE COALESCE(ua.ua_level,u.u__level)>=".$GLOBALS['inforum']['f_lmoderate']." AND u_id>3"; $res =&db_query($sql,$link); while ($uid=db_fetch_row($res)) { send_pm($uid[0],$GLOBALS['inuserid'],$text,$subj,""); } $GLOBALS['refpage']=$GLOBALS['opt_url'].'/'.build_url($GLOBALS['intopic']); topic_message(MSG_mod_complain_send,1); } function view_vote() { global $link; if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate']) error(MGE_e_mod_norights); $topic=$GLOBALS['topic']; $sql = "SELECT * FROM ".$GLOBALS['DBprefix']."Poll WHERE pl_tid=$topic"; $res =&db_query($sql,$link); $pldata =&db_fetch_array($res); $plid=$pldata['pl_id']; $sql = "SELECT u__name,u_id, pv.* FROM ".$GLOBALS['DBprefix']."PollVariant pv, ".$GLOBALS['DBprefix']."Vote, ".$GLOBALS['DBprefix']."User ". "WHERE pv_plid=$plid AND pvid=pv_id AND u_id=uid"; $res =&db_query($sql,$link); vote_view_start($pldata); while ($pvdata=&db_fetch_array($res)) { vote_view_entry($pvdata); } vote_view_end(); } function locations($locations) { push_parents($locations,$GLOBALS['inforum']['f_parent']); if ($GLOBALS['topic']) { array_push($locations,"".$GLOBALS['inforum']['f_title'].""); array_push($locations,"".$GLOBALS['intopic']['t_title'].""); } else { array_push($locations,"".$GLOBALS['inforum']['f_title'].""); } if ($GLOBALS['action']=="mod_topic") array_push($locations,MSG_mod_topic); elseif ($GLOBALS['action']=="split_topic") array_push($locations,MSG_mod_split); elseif ($GLOBALS['action']=="join_topic") array_push($locations,MSG_mod_join); elseif ($GLOBALS['action']=="premod") array_push($locations,MSG_mod_premod); elseif ($GLOBALS['action']=="mod_banlist") array_push($locations,MSG_mod_bannedlist); elseif ($GLOBALS['action']=="view_vote") array_push($locations,MSG_mod_voteview); elseif ($GLOBALS['action']=="mod_forum") array_push($locations,MSG_mod_forum); elseif ($GLOBALS['action']=="clear_forum") array_push($locations,MSG_mod_clear); return $locations; }