www.gusucode.com > ShopEx481 & PHPWind 整合版码程序 > bbs/forumcp.php
<?php require_once('global.php'); require_once(R_P.'require/forum.php'); include_once(D_P.'data/bbscache/forum_cache.php'); $groupid=='guest' && Showmsg('not_login'); $fiddb = array(); InitGP(array('action')); if ($action) { !$fid && Showmsg('data_error'); $forums = $db->get_one("SELECT f.name,f.forumadmin,f.fupadmin,fe.forumset FROM pw_forums f LEFT JOIN pw_forumsextra fe USING(fid) WHERE f.fid='$fid' AND f.type!='category'"); !$forums && Showmsg('data_error'); if (!in_array($groupid,array('3','4')) && !admincheck($forums['forumadmin'],$forums['fupadmin'],$windid)) { Showmsg('not_forumadmin'); } $forumset = unserialize($forums['forumset']); $first_admin = $db_adminset && strpos($forums['forumadmin'],",".$windid.",")===0 ? 1 : 0; } else { $query = $db->query("SELECT fid,forumadmin,fupadmin FROM pw_forums WHERE cms=0 AND type!='category'"); while ($rt = $db->fetch_array($query)) { if (in_array($groupid,array('3','4')) || admincheck($rt['forumadmin'],$rt['fupadmin'],$windid)) { $fiddb[] = $rt['fid']; } } !$fiddb && Showmsg('not_forumadmin'); } require_once(R_P.'require/header.php'); if (!$action) { $forum_name = ''; $fids = implode(',',$fiddb); $froumdb = array(); $query = $db->query("SELECT * FROM pw_forums f LEFT JOIN pw_forumdata fd USING(fid) WHERE f.fid IN($fids)"); while ($rt = $db->fetch_array($query)) { $forumdb[] = $rt; } $i=count($forumdb); if ($i>4) { $j_sum = 4; $j_wid = '25%'; } else { $j_sum = $i; $j_wid = (100/$i).'%'; } require_once(PrintEot('forumcp'));footer(); } elseif ($action=='edit') { $forum_name = $forums['name']; InitGP(array('type')); !$type && $type='notice'; if ($type=='notice') { $annoucedb = array(); $pages = ''; $page = $_GET['page']; (int)$page<1 && $page = 1; $query = $db->query("SELECT aid,ifopen,vieworder,author,subject,startdate,enddate FROM pw_announce WHERE fid='$fid' ORDER BY fid,vieworder,startdate DESC LIMIT ".($page-1)*$db_perpage.",$db_perpage"); while ($rt = $db->fetch_array($query)) { $rt['subject'] = substrs($rt['subject'],30); $rt['starttime'] = $rt['startdate'] ? get_date($rt['startdate'],'Y-m-d H:i') : '--'; $rt['endtime'] = $rt['enddate'] ? get_date($rt['enddate'],'Y-m-d H:i') : '--'; $annoucedb[] = $rt; } $db->free_result($query); $count = $db->get_value("SELECT COUNT(*) FROM pw_announce WHERE fid='$fid'"); if ($count > $db_perpage) { require_once(R_P.'require/forum.php'); $addpage = $fid ? "fid=$fid&" : ''; $pages = numofpage($count,$page,ceil($count/$db_perpage),"$basename&$addpage"); } require_once(PrintEot('forumcp'));footer(); } elseif ($type=='n_del') { $aid = (int)$_GET['aid']; $rt = $db->get_one("SELECT aid,fid,ifopen FROM pw_announce WHERE aid='$aid'"); (!$rt['aid'] || $rt['fid']!=$fid) && Showmsg('data_error'); $db->update("DELETE FROM pw_announce WHERE aid='$aid'"); if ($rt['ifopen']) { require_once(R_P.'require/updatenotice.php'); updatecache_i($fid); } refreshto("forumcp.php?action=edit&fid=$fid",'operate_success'); } elseif ($type=='n_order') { !is_array($vieworder = $_POST['vieworder']) && $vieworder = array(); $updatedb = array(); foreach ($vieworder as $key => $value) { if (is_numeric($key)) { $value = (int)$value; $updatedb[$value] .= ",'$key'"; } } foreach ($updatedb as $key => $value) { $value && $db->update("UPDATE pw_announce SET vieworder='$key' WHERE aid IN (".substr($value,1).')'); } require_once(R_P.'require/updatenotice.php'); updatecache_i($fid); refreshto("forumcp.php?action=edit&fid=$fid",'operate_success'); } elseif ($type=='add' || $type=='edit') { $aid = (int)GetGP('aid'); if ($_POST['step']!=2) { $ifopen_Y = 'CHECKED'; $vieworder = (int)$vieworder; $ifopen_N = $subject = $atc_content = $enddate = ''; $startdate = get_date($timestamp,'Y-m-d H:i'); if ($type=='edit') { $db_redundancy = 0; $rt = $db->get_one("SELECT aid,fid,ifopen,vieworder,startdate,enddate,subject,content FROM pw_announce WHERE aid='$aid'"); !$rt['aid'] && Showmsg('data_error'); extract($rt,EXTR_OVERWRITE); if (!$ifopen) { $ifopen_Y = ''; $ifopen_N = 'CHECKED'; } $subject = Char_cv($subject); $atc_content = Char_cv($content); $startdate && $startdate = get_date($startdate,'Y-m-d H:i'); $enddate && $enddate = get_date($enddate,'Y-m-d H:i'); } require_once(PrintEot('forumcp'));footer(); } else { !$fid && Showmsg('annouce_fid'); $startdate = $_POST['startdate'] ? PwStrtoTime($_POST['startdate']) : $timestamp; $enddate = $_POST['enddate'] ? PwStrtoTime($_POST['enddate']) : ''; $enddate && $enddate<=$startdate && Showmsg('annouce_time'); InitGP(array('ifopen','vieworder'),'P'); if ($type=='add') { $atc_title = trim(Char_cv($_POST['atc_title'])); !$atc_title && Showmsg('annouce_title'); $atc_content = trim(Char_cv($_POST['atc_content'])); !$atc_content && Showmsg('annouce_content'); $ifopen = (int)$ifopen; $db->update("INSERT INTO pw_announce(fid,ifopen,vieworder,author,startdate,enddate,url,subject,content) VALUES ('$fid','$ifopen','".(int)$vieworder."','$windid','$startdate','$enddate','$url','$atc_title','$atc_content')"); if ($ifopen && (!$enddate || $enddate>=$timestamp)) { require_once(R_P.'require/updatenotice.php'); updatecache_i($fid); } } else { $rt = $db->get_one("SELECT aid,fid,subject,content FROM pw_announce WHERE aid='$aid'"); if ($rt['subject']!=$atc_title) { $atc_title = trim(Char_cv($_POST['atc_title'])); } !$atc_title && Showmsg('annouce_title'); if ($rt['content']!=$atc_content) { $atc_content = trim(Char_cv($_POST['atc_content'])); } !$atc_content && Showmsg('annouce_content'); (!$rt['aid'] || $rt['fid']!=$fid) && Showmsg('data_error'); $db->update("UPDATE pw_announce SET ifopen='".(int)$ifopen."',vieworder='".(int)$vieworder."',startdate='$startdate',enddate='$enddate',url='$url',subject='$atc_title',content='$atc_content' WHERE aid='$aid'"); require_once(R_P.'require/updatenotice.php'); updatecache_i($fid); } refreshto("forumcp.php?action=edit&fid=$fid",'operate_success'); } } elseif ($type=='report') { InitGP(array('page')); (!is_numeric($page) || $page < 1) && $page=1; $limit="LIMIT ".($page-1)*$db_perpage.",$db_perpage"; $rt=$db->get_one("SELECT COUNT(*) AS count FROM pw_report r LEFT JOIN pw_threads t ON t.tid=r.tid WHERE t.fid='$fid'"); $sum=$rt['count']; $numofpage=ceil($sum/$db_perpage); $pages=numofpage($sum,$page,$numofpage,"forumcp.php?action=edit&type=report&fid=$fid&"); $query=$db->query("SELECT r.*,m.username,t.fid FROM pw_report r LEFT JOIN pw_members m ON m.uid=r.uid LEFT JOIN pw_threads t ON t.tid=r.tid WHERE t.fid='$fid' ORDER BY id $limit"); while ($rt=$db->fetch_array($query)) { $rt['fname']=$forum[$rt['fid']]['name']; $reportdb[]=$rt; } require_once(PrintEot('forumcp'));footer(); } elseif ($type=='f_type') { $rt=$db->get_one("SELECT f.t_type,fe.fid,fe.forumset FROM pw_forums f LEFT JOIN pw_forumsextra fe USING(fid) WHERE f.fid='$fid'"); $forumset=unserialize($rt['forumset']); if (!$_POST['step']) { $forumset['addtpctype'] ? $addtpctype_Y='checked' : $addtpctype_N='checked'; $t_typedb=explode("\t",$rt['t_type']);/*主题分类*/ $t_typedb[0] = (int)$t_typedb[0]; ${'t_type_'.$t_typedb[0]}='checked'; require_once(PrintEot('forumcp'));footer(); } elseif ($_POST['step']==3) { Add_S($forumset); InitGP(array('t_db','addtpctype'),'P'); $t_type = implode("\t",$t_db)."\t";/*主题分类*/ $t_type = str_replace('"','"',$t_type); if ($t_type!=$rt['t_type']) { $db->update("UPDATE pw_forums SET t_type='$t_type' WHERE fid='$fid'"); } if ($addtpctype!=$forumset['addtpctype']) { $forumset['addtpctype']=$addtpctype; $forumset=serialize($forumset); if ($rt['fid']) { $db->update("UPDATE pw_forumsextra SET forumset='$forumset' WHERE fid='$fid'"); } else { $db->update("INSERT INTO pw_forumsextra (fid,forumset) VALUES ('$fid','$forumset')"); } } refreshto("forumcp.php?action=edit&type=f_type&fid=$fid",'operate_success'); } } elseif ($type=='reward') { list($db_moneyname,,$db_rvrcname,,$db_creditname)=explode("\t",$db_credits); InitGP(array('page','starttime','endtime','username')); (!is_numeric($page) || $page < 1) && $page=1; $limit = "LIMIT ".($page-1)*$db_perpage.",$db_perpage"; $sql = $url_a = ''; $_POST['starttime'] && $starttime= PwStrtoTime($starttime); $_POST['endtime'] && $endtime = PwStrtoTime($endtime); if ($username) { $sql.=" AND t.author='$username'"; $url_a.="username=".rawurlencode($username)."&"; } if ($starttime) { $sql.=" AND t.postdate>'$starttime'"; $url_a.="starttime=$starttime&"; } if ($endtime) { $sql.=" AND t.postdate<'$endtime'"; $url_a.="endtime=$endtime&"; } $rt = $db->get_one("SELECT COUNT(*) AS count FROM pw_threads t LEFT JOIN pw_reward r USING(tid) WHERE t.fid='$fid' AND t.special='3' AND t.state='0' AND r.timelimit<'$timestamp' $sql"); $sum = $rt['count']; $numofpage = ceil($sum/$db_perpage); $pages = numofpage($sum,$page,$numofpage,"forumcp.php?action=edit&type=reward&fid=$fid&$url_a"); $threaddb = array(); $query = $db->query("SELECT t.tid,t.fid,t.subject,t.author,t.authorid,t.postdate,r.cbtype,r.cbval,r.catype,r.caval FROM pw_threads t LEFT JOIN pw_reward r USING(tid) WHERE t.fid='$fid' AND t.special='3' AND t.state='0' AND r.timelimit<'$timestamp' $sql ORDER BY t.postdate $limit"); while ($rt = $db->fetch_array($query)) { $rt['postdate'] = get_date($rt['postdate'],'Y-m-d'); $rt['cbtype'] = is_numeric($rt['cbtype']) ? $_CREDITDB[$rt['cbtype']][0] : ${'db_'.$rt['cbtype'].'name'}; $rt['catype'] = is_numeric($rt['catype']) ? $_CREDITDB[$rt['catype']][0] : ${'db_'.$rt['catype'].'name'}; $rt['binfo'] = $rt['cbval']." ".$rt['cbtype']; $rt['ainfo'] = $rt['caval']." ".$rt['catype']; $threaddb[] = $rt; } require_once(PrintEot('forumcp'));footer(); } elseif ($type=='thread') { InitGP(array('page','starttime','endtime','username','t_type')); (!is_numeric($page) || $page < 1) && $page=1; $limit="LIMIT ".($page-1)*$db_perpage.",$db_perpage"; $sql = $url_a = ''; $_POST['starttime'] && $starttime= PwStrtoTime($starttime); $_POST['endtime'] && $endtime = PwStrtoTime($endtime); if ($username) { $sql.=" AND author='$username'"; $url_a.="username=".rawurlencode($username)."&"; } if ($starttime) { $sql.=" AND postdate>'$starttime'"; $url_a.="starttime=$starttime&"; } if ($endtime) { $sql.=" AND postdate<'$endtime'"; $url_a.="endtime=$endtime&"; } if ($t_type) { switch($t_type) { case 'digest': $sql.=" AND digest>'0'"; break; case 'active': $sql.=" AND special='2'"; break; case 'reward': $sql.=" AND special='3'"; break; case 'sale': $sql.=" AND special='4'"; break; default : $sql.=" AND digest>'0'"; } $url_a.="t_type=$t_type&"; } if ($sql) { $rt = $db->get_one("SELECT COUNT(*) AS sum FROM pw_threads WHERE fid='$fid' AND ifcheck='1' $sql"); } else { $rt = $db->get_one("SELECT topic AS sum FROM pw_forumdata WHERE fid='$fid'"); } $pages=numofpage($rt['sum'],$page,ceil($rt['sum']/$db_perpage),"forumcp.php?action=edit&type=thread&fid=$fid&$url_a"); $query=$db->query("SELECT tid,subject,author,authorid,postdate,titlefont,topped,digest FROM pw_threads WHERE fid='$fid' AND ifcheck='1' $sql ORDER BY topped DESC,lastpost DESC $limit"); $threaddb = array(); while ($rt = $db->fetch_array($query)) { $rt['subject']=substrs($rt['subject'],35); if ($rt['titlefont']) { $titledetail=explode("~",$rt['titlefont']); if ($titledetail[0])$rt['subject']="<font color=\"$titledetail[0]\">$rt[subject]</font>"; if ($titledetail[1])$rt['subject']="<b>$rt[subject]</b>"; if ($titledetail[2])$rt['subject']="<i>$rt[subject]</i>"; if ($titledetail[3])$rt['subject']="<u>$rt[subject]</u>"; } $rt['postdate']=get_date($rt['postdate']); $threaddb[]=$rt; } require_once PrintEot('forumcp');footer(); } elseif ($type=='tcheck') { if (!$_POST['step']) { InitGP(array('page','starttime','endtime','username')); (!is_numeric($page) || $page < 1) && $page=1; $limit = "LIMIT ".($page-1)*$db_perpage.",$db_perpage"; $sql = $url_a = ''; $_POST['starttime'] && $starttime= PwStrtoTime($starttime); $_POST['endtime'] && $endtime = PwStrtoTime($endtime); if ($username) { $sql.=" AND author='$username'"; $url_a.="username=".rawurlencode($username)."&"; } if ($starttime) { $sql.=" AND postdate>'$starttime'"; $url_a.="starttime=$starttime&"; } if ($endtime) { $sql.=" AND postdate<'$endtime'"; $url_a.="endtime=$endtime&"; } $rt = $db->get_one("SELECT COUNT(*) AS sum FROM pw_threads WHERE fid='$fid' AND ifcheck='0' $sql"); $pages=numofpage($rt['sum'],$page,ceil($rt['sum']/$db_perpage),"forumcp.php?action=edit&type=tcheck&fid=$fid&$url_a"); $threaddb = $ttable_a = array(); $query = $db->query("SELECT tid,subject,author,authorid,postdate FROM pw_threads WHERE fid='$fid' AND ifcheck='0' $sql ORDER BY topped DESC,lastpost DESC $limit"); while ($rt = $db->fetch_array($query)) { $rt['subject'] = substrs($rt['subject'],35); $rt['postdate'] = get_date($rt['postdate']); $threaddb[$rt['tid']] = $rt; $ttable_a[GetTtable($rt['tid'])] .= $rt['tid'].','; } include_once(D_P.'data/bbscache/wordsfb.php'); foreach ($ttable_a as $pw_tmsgs=>$value) { $value = substr($value,0,-1); $query = $db->query("SELECT tid,content FROM $pw_tmsgs WHERE tid IN($value)"); while ($rt = $db->fetch_array($query)) { $rt['content'] = str_replace("\n","<br>",$rt['content']); foreach ($alarm as $key=>$value) { $rt['content'] = str_replace($key,'<span style="background-color:#ffff66">'.$key.'</span>',$rt['content']); } $threaddb[$rt['tid']]['content'] = $rt['content']; } } require_once PrintEot('forumcp');footer(); } elseif ($_POST['step']==3) { InitGP(array('selid')); $tids = ''; foreach ($selid as $key=>$value) { is_numeric($value) && $tids .= ($tids ? ',' : '').$value; } !$tids && Showmsg('id_error'); $db->update("UPDATE pw_threads SET ifcheck='1' WHERE tid IN($tids) AND fid='$fid'"); require_once(R_P.'require/updateforum.php'); updateforum($fid); refreshto("forumcp.php?action=edit&type=$type&fid=$fid",'operate_success'); } else { InitGP(array('selid')); $delids = ''; $ttable_a = $attachdb = array(); foreach ($selid as $key => $value) { if (is_numeric($value)) { $delids .= $value.','; $ttable_a[GetTtable($value)] .= $value.','; } } !$delids && Showmsg('mawhole_nodata'); $delids = substr($delids,0,-1); require_once(R_P.'require/updateforum.php'); foreach ($ttable_a as $pw_tmsgs=>$value) { $value = substr($value,0,-1); $query = $db->query("SELECT t.tid,t.fid,tm.aid FROM pw_threads t LEFT JOIN $pw_tmsgs tm ON tm.tid=t.tid WHERE t.tid IN($value)"); while ($read=$db->fetch_array($query)) { $read['fid'] != $fid && Showmsg('admin_forum_right'); if ($read['aid']) $attachdb[] = $read['aid']; } } $db->update("DELETE FROM pw_threads WHERE tid IN($delids) AND fid='$fid' AND ifcheck='0'"); foreach ($ttable_a as $pw_tmsgs=>$val) { $val = substr($val,0,-1); $db->update("DELETE FROM $pw_tmsgs WHERE tid IN($val)"); } delete_tag($delids); if($attachdb){ $ftp = null; if ($db_ifftp) { require_once(R_P.'require/ftp.php'); $ftp = new FTP($ftp_server,$ftp_port,$ftp_user,$ftp_pass,$ftp_dir); } delete_att($attachdb); if ($ftp) { $ftp->close(); unset($ftp); } } refreshto("forumcp.php?action=edit&type=$type&fid=$fid",'operate_success'); } } elseif ($type=='pcheck') { if (!$_POST['step']) { InitGP(array('page','starttime','endtime','username','ptable')); (!is_numeric($page) || $page < 1) && $page=1; $limit = "LIMIT ".($page-1)*$db_perpage.",$db_perpage"; $sql = $url_a = ''; $_POST['starttime'] && $starttime= PwStrtoTime($starttime); $_POST['endtime'] && $endtime = PwStrtoTime($endtime); if ($username) { $sql.=" AND author='$username'"; $url_a.="username=".rawurlencode($username)."&"; } if ($starttime) { $sql.=" AND postdate>'$starttime'"; $url_a.="starttime=$starttime&"; } if ($endtime) { $sql.=" AND postdate<'$endtime'"; $url_a.="endtime=$endtime&"; } if ($db_plist) { !is_numeric($ptable) && $ptable = $db_ptable; $p_table = "<option value=\"0\">post</option>"; $p_list = explode(',',$db_plist); foreach ($p_list as $key=>$val) { $p_table .= "<option value=\"$val\">post$val</option>"; } $p_table = str_replace("<option value=\"$ptable\">","<option value=\"$ptable\" selected>",$p_table); $url_a .= "ptable=$ptable&"; $pw_posts = GetPtable($ptable); } else { $pw_posts = 'pw_posts'; } $rt = $db->get_one("SELECT COUNT(*) AS sum FROM $pw_posts WHERE fid='$fid' AND ifcheck='0' $sql"); $pages=numofpage($rt['sum'],$page,ceil($rt['sum']/$db_perpage),"forumcp.php?action=edit&type=$type&fid=$fid&$url_a"); $postdb= array(); include_once(D_P.'data/bbscache/wordsfb.php'); $query = $db->query("SELECT pid,tid,subject,author,authorid,postdate,content FROM $pw_posts WHERE fid='$fid' AND ifcheck='0' $sql $limit"); while ($rt = $db->fetch_array($query)) { if ($rt['subject']) { $rt['subject'] = substrs($rt['subject'],35); } else { $rt['subject'] = substrs($rt['content'],35); } $rt['postdate'] = get_date($rt['postdate']); $rt['content'] = str_replace("\n","<br>",$rt['content']); foreach ($alarm as $key=>$value) { $rt['content'] = str_replace($key,'<span style="background-color:#ffff66">'.$key.'</span>',$rt['content']); } $postdb[] = $rt; } require_once PrintEot('forumcp');footer(); } elseif ($_POST['step']==3) { InitGP(array('selid','ptable')); $tids = ''; foreach ($selid as $key=>$value) { is_numeric($value) && $tids .= ($tids ? ',' : '').$value; } !$tids && Showmsg('id_error'); $pw_posts = GetPtable($ptable); $db->update("UPDATE $pw_posts SET ifcheck='1' WHERE pid IN($tids) AND fid='$fid'"); require_once(R_P.'require/updateforum.php'); updateforum($fid); refreshto("forumcp.php?action=edit&type=$type&fid=$fid",'operate_success'); } else { InitGP(array('selid','ptable')); $tids = ''; $attachdb = array(); foreach ($selid as $key=>$value) { is_numeric($value) && $tids .= ($tids ? ',' : '').$value; } !$tids && Showmsg('id_error'); $pw_posts = GetPtable($ptable); $query = $db->query("SELECT fid,aid FROM $pw_posts WHERE pid IN($tids)"); while ($rt = $db->fetch_array($query)) { $rt['fid'] != $fid && Showmsg('admin_forum_right'); if ($rt['aid']) $attachdb[] = $rt['aid']; } $db->update("DELETE FROM $pw_posts WHERE pid IN($tids)"); if($attachdb){ $ftp = null; if ($db_ifftp) { require_once(R_P.'require/ftp.php'); $ftp = new FTP($ftp_server,$ftp_port,$ftp_user,$ftp_pass,$ftp_dir); } require_once(R_P.'require/updateforum.php'); delete_att($attachdb); if ($ftp) { $ftp->close(); unset($ftp); } } refreshto("forumcp.php?action=edit&type=$type&fid=$fid",'operate_success'); } } elseif ($type=='commend') { if (!$_POST['step']) { $commend = array(); if ($forumset['commendlist']) { $query = $db->query("SELECT tid,authorid,author,postdate,subject FROM pw_threads WHERE tid IN($forumset[commendlist])"); while ($rt=$db->fetch_array($query)) { $rt['postdate'] = get_date($rt['postdate']); $commend[] = $rt; } } require_once PrintEot('forumcp');footer(); } else { InitGP(array('selid')); foreach ($selid as $key=>$value) { if (is_numeric($value)) { $forumset['commendlist'] = substr(str_replace(",$value,",",",",$forumset[commendlist],"),1,-1); } } updatecommend($fid,$forumset); refreshto("forumcp.php?action=edit&type=$type&fid=$fid",'operate_success'); } } elseif ($type=='adminset') { !$first_admin && Showmsg('undefined_action'); $admin_a = explode(',',trim($forums['forumadmin'],',')); $firstadmin = $admin_a[0]; $firstadmin != $windid && Showmsg('undefined_action'); if (!$_POST['step']) { $s_admin = trim(str_replace(",$firstadmin,",',',$forums['forumadmin']),','); require_once(PrintEot('forumcp'));footer(); } else { InitGP(array('forumadmin'),'P'); $errorname = ''; if ($forums['forumadmin'] != stripslashes(",".$windid.",$forumadmin,")) { $newadmin = array('0'=>$windid); $newadmin_a = array_unique(explode(",",$forumadmin)); foreach ($newadmin_a as $aid=>$value) { $value = trim($value); if ($value && !in_array($value,$newadmin)) { $mb = $db->get_one("SELECT uid,groupid,groups FROM pw_members WHERE username='$value'"); if ($mb) { $newadmin[] = $value; if ($mb['groupid'] == -1) { $db->update("UPDATE pw_members SET groupid='5' WHERE uid='$mb[uid]'"); $db->update("REPLACE INTO pw_administrators (uid,username,groupid,groups) VALUES ('$mb[uid]','$value','5','$mb[groups]')"); } elseif ($mb['groupid'] <> 5 && strpos($mb['groups'],',5,')===false) { $mb['groups'] = $mb['groups'] ? $mb['groups'].'5,' : ",5,"; $db->update("UPDATE pw_members SET groups='$mb[groups]' WHERE uid='$mb[uid]'"); $db->update("REPLACE INTO pw_administrators (uid,username,groupid,groups) VALUES ('$mb[uid]','$value','$mb[groupid]','$mb[groups]')"); } } else { $errorname .= ','.$value; } } } $oldfadmin = explode(',',trim($forums['forumadmin'],',')); if ($oldfadmin) { $f_admin = array(); $query = $db->query("SELECT forumadmin FROM pw_forums WHERE fid<>'$fid' AND forumadmin<>''"); while ($rt = $db->fetch_array($query)) { foreach (explode(",",$rt['forumadmin']) as $key=>$value) { if ($value = trim($value)) { $f_admin[] = $value; } } } $f_admin = array_unique($f_admin); Add_S($oldfadmin); $oldfadmin = "'".implode("','",$oldfadmin)."'"; $query = $db->query("SELECT uid,username,groupid,groups FROM pw_members WHERE username IN($oldfadmin)"); while ($rt = $db->fetch_array($query)) { if (!in_array($rt['username'],$newadmin) && !in_array($rt['username'],$f_admin)) { if ($rt['groupid']=='5') { $db->update("UPDATE pw_members SET groupid='-1' WHERE uid='$rt[uid]'"); $rt['groupid'] = -1; } else { $rt['groups'] = str_replace(',5,',',',$rt['groups']); $rt['groups']==',' && $rt['groups'] = ''; $db->update("UPDATE pw_members SET groups='$rt[groups]' WHERE uid='$rt[uid]'"); } if (in_array($rt['groupid'],array('-1','6','7')) && $rt['groups']=='') { $db->update("DELETE FROM pw_administrators WHERE uid='$rt[uid]'"); } else { $db->update("REPLACE INTO pw_administrators (uid,username,groupid,groups) VALUES ('$rt[uid]','".addslashes($rt['username'])."','$rt[groupid]','$rt[groups]')"); } } } } $newadmin = addslashes(implode(',',$newadmin)); $db->update("UPDATE pw_forums SET forumadmin=',$newadmin,' WHERE fid='$fid'"); updatecache_fd(); } if ($errorname) { $errorname = Char_cv(substr($errorname,1)); Showmsg('user_not_exists'); } else { refreshto("forumcp.php?action=edit&type=$type&fid=$fid",'operate_success'); } } } elseif($db_recycle && $type=='trecycle') { require_once(R_P.'require/updateforum.php'); require_once(R_P.'require/writelog.php'); InitGP(array('page','step')); if (!$step) { InitGP(array('username','starttime','endtime','t_type')); (!is_numeric($page) || $page<1) && $page = 1; $limit = "LIMIT ".($page-1)*$db_perpage.",$db_perpage"; $sql = $url_a = ''; $starttime && $starttime= PwStrtoTime($starttime); $endtime && $endtime = PwStrtoTime($endtime); $username = Char_cv($username); if ($username) { $sql.=" AND t.author='$username'"; $url_a.="username=".rawurlencode($username)."&"; } if ($starttime) { $sql.=" AND t.postdate>'$starttime'"; $url_a.="starttime=$starttime&"; } if ($endtime) { $sql.=" AND t.postdate<'$endtime'"; $url_a.="endtime=$endtime&"; } if ($t_type) { switch($t_type) { case 'digest': $sql.=" AND t.digest>'0'"; break; case 'active': $sql.=" AND t.special='2'"; break; case 'reward': $sql.=" AND t.special='3'"; break; case 'sale': $sql.=" AND t.special='4'"; break; default : } ${'t_type_'.$t_type} = 'selected'; $url_a.="t_type=$t_type&"; } $rt = $db->get_one("SELECT COUNT(*) AS sum FROM pw_recycle r LEFT JOIN pw_threads t USING(tid) WHERE r.pid='0' AND r.fid='$fid' $sql"); $pages = numofpage($rt['sum'],$page,ceil($rt['sum']/$db_perpage),"forumcp.php?action=edit&type=trecycle&fid=$fid&$url_a"); $ttable_a = array(); $query = $db->query("SELECT r.*,t.subject,t.author,t.authorid FROM pw_recycle r LEFT JOIN pw_threads t USING(tid) WHERE r.pid='0' AND r.fid='$fid' $sql ORDER BY deltime DESC $limit"); while($rt=$db->fetch_array($query)){ $rt['deltime'] = get_date($rt['deltime']); $rt['subject'] = substrs($rt['subject'],50); $rt['fname'] = $forum[$rt['fid']]['name']; $recycledb[$rt['tid']] = $rt; $ttable_a[GetTtable($rt['tid'])] .= $rt['tid'].','; } foreach ($ttable_a as $pw_tmsgs=>$value) { $value = substr($value,0,-1); $query = $db->query("SELECT tid,content FROM $pw_tmsgs WHERE tid IN($value)"); while ($rt = $db->fetch_array($query)) { $rt['content'] = str_replace("\n","<br>",$rt['content']); $recycledb[$rt['tid']]['content'] = $rt['content']; } } require_once(PrintEot('forumcp'));footer(); } elseif($forumset['recycle']&2 && $step=='1'){ $ids = GetGP('ids','P'); count($ids) > 500 && Showmsg('forumcp_recycle_maxcount'); recycle($ids); $logdb = array( 'type' => 'recycle', 'username1' => '', 'username2' => $windid, 'field1' => $fid, 'field2' => '', 'field3' => '', 'descrip' => 'recycle_topic_delete', 'timestamp' => $timestamp, 'ip' => $onlineip, 'affect' => '', 'forum' => $forum[$fid]['name'], 'reason' => '' ); writelog($logdb); refreshto("forumcp.php?action=edit&type=trecycle&fid=$fid",'operate_success'); } elseif($forumset['recycle']&4 && $step=='2'){ $ids = GetGP('ids','P'); count($ids) > 500 && Showmsg('forumcp_recycle_maxcount'); $reids = ''; $logdb = $ptable_a = array(); foreach ($ids as $key => $value) { if (is_numeric($value)) { $reids .= $value.','; } } $reids = substr($reids,0,-1); !$reids && Showmsg('forumcp_recycle_nodata'); $query = $db->query("SELECT r.*,t.ptable FROM pw_recycle r LEFT JOIN pw_threads t ON r.tid=t.tid WHERE r.pid='0' AND r.tid IN ($reids)"); $reids = ''; $ptable_a = array(); while ($read=$db->fetch_array($query)) { $read['fid'] != $fid && Showmsg('admin_forum_right'); $ptable_a[$read['ptable']] = 1; $reids .= ','.$read['tid']; } if ($reids) { $reids = substr($reids,1); $db->update("UPDATE pw_threads SET fid='$fid',ifshield='0' WHERE tid IN($reids)"); $db->update("UPDATE pw_attachs SET fid='$fid' WHERE tid IN($reids)"); $db->update("DELETE FROM pw_recycle WHERE tid IN ($reids)"); foreach ($ptable_a as $key=>$val) { $pw_posts = GetPtable($key); $db->update("UPDATE $pw_posts SET fid='$fid' WHERE tid IN($reids)"); } } updateforum($fid); $logdb = array( 'type' => 'recycle', 'username1' => '', 'username2' => $windid, 'field1' => $fid, 'field2' => '', 'field3' => '', 'descrip' => 'recycle_topic_restore', 'timestamp' => $timestamp, 'ip' => $onlineip, 'affect' => '', 'forum' => $forum[$fid]['name'], 'reason' => '' ); writelog($logdb); refreshto("forumcp.php?action=edit&type=trecycle&fid=$fid",'operate_success'); } elseif($forumset['recycle']&8 && $step=='3'){ if ($_SERVER['REQUEST_METHOD']!='POST') { $verify = GetGP('verify'); if ($verify != substr(md5($winduid.$db_sitehash.$winddb['postnum']),0,8)){ Showmsg('undefined_action'); } } $ids = array(); $flag = false; $query = $db->query("SELECT * FROM pw_recycle WHERE fid='$fid' AND pid='0' LIMIT 100"); while ($rt=$db->fetch_array($query)) { $flag || $flag = true; $ids[] = $rt['tid']; } if ($flag) { recycle($ids); $VerifyHash = substr(md5($winduid.$db_sitehash.$winddb['postnum']),0,8); refreshto("forumcp.php?action=edit&type=trecycle&fid=$fid&step=3&verify=$VerifyHash",'delete_recycle'); } else { $logdb = array( 'type' => 'recycle', 'username1' => '', 'username2' => $windid, 'field1' => $fid, 'field2' => '', 'field3' => '', 'descrip' => 'recycle_topic_empty', 'timestamp' => $timestamp, 'ip' => $onlineip, 'affect' => '', 'forum' => $forum[$fid]['name'], 'reason' => '' ); writelog($logdb); refreshto("forumcp.php?action=edit&type=trecycle&fid=$fid",'operate_success'); } } } elseif($db_recycle && $type=='precycle') { require_once(R_P.'require/updateforum.php'); require_once(R_P.'require/writelog.php'); InitGP(array('step','ptable','page')); $db_perpage = 5; if (!$step) { InitGP(array('username','starttime','endtime','t_type')); $sql = $url_a = ''; if ($db_plist) { !is_numeric($ptable) && $ptable = $db_ptable; $p_table = "<option value=\"0\">post</option>"; $p_list = explode(',',$db_plist); foreach ($p_list as $key=>$val) { $p_table .= "<option value=\"$val\">post$val</option>"; } $p_table = str_replace("<option value=\"$ptable\">","<option value=\"$ptable\" selected>",$p_table); $url_a .= "ptable=$ptable&"; $pw_posts = GetPtable($ptable); } else { $pw_posts = 'pw_posts'; } $username = Char_cv($username); $starttime && $starttime= PwStrtoTime($starttime); $endtime && $endtime = PwStrtoTime($endtime); if ($username) { $sql.=" AND p.author='$username'"; $url_a.="username=".rawurlencode($username)."&"; } if ($starttime) { $sql.=" AND p.postdate>'$starttime'"; $url_a.="starttime=$starttime&"; } if ($endtime) { $sql.=" AND p.postdate<'$endtime'"; $url_a.="endtime=$endtime&"; } if ($t_type) { switch($t_type) { case 'digest': $sql.=" AND t.digest>'0'"; break; case 'active': $sql.=" AND t.special='2'"; break; case 'reward': $sql.=" AND t.special='3'"; break; case 'sale': $sql.=" AND t.special='4'"; break; default : $sql.=""; } ${'t_type_'.$t_type} = 'selected'; $url_a.="t_type=$t_type&"; } (!is_numeric($page) || $page<1) && $page = 1; $limit = "LIMIT ".($page-1)*$db_perpage.",$db_perpage"; $rt = $db->get_one("SELECT COUNT(*) AS sum FROM pw_recycle r LEFT JOIN $pw_posts p USING(pid) LEFT JOIN pw_threads t ON r.tid=t.tid WHERE r.fid='$fid' AND r.pid>'0' AND p.fid='0' $sql"); $pages = numofpage($rt['sum'],$page,ceil($rt['sum']/$db_perpage),"forumcp.php?action=edit&type=precycle&fid=$fid&$url_a"); $query = $db->query("SELECT r.*,p.author,p.authorid,p.content,t.subject FROM pw_recycle r LEFT JOIN $pw_posts p ON r.pid=p.pid LEFT JOIN pw_threads t ON r.tid=t.tid WHERE r.fid='$fid' AND r.pid>'0' AND p.fid='0' $sql ORDER BY r.deltime DESC $limit"); while($rt=$db->fetch_array($query)){ $rt['deltime'] = get_date($rt['deltime']); $rt['subject'] = substrs($rt['subject'],50); $rt['content'] = str_replace("\n","<br>",$rt['content']); $rt['fname'] = $forum[$rt['fid']]['name']; $recycledb[] = $rt; } require_once(PrintEot('forumcp'));footer(); } elseif($forumset['recycle']&2 && $step=='1'){ $ids = GetGP('ids','P'); count($ids) > 500 && Showmsg('forumcp_recycle_maxcount'); $delids = ''; foreach ($ids as $key => $value) { if (is_numeric($value)) { $delids .= $value.','; } } $delids = substr($delids,0,-1); !$delids && Showmsg('forumcp_recycle_nodata'); !is_numeric($ptable) && $ptable = $db_ptable; $pw_posts = GetPtable($ptable); $attachdb = array(); $ids = ''; $query = $db->query("SELECT r.*,p.aid FROM pw_recycle r LEFT JOIN $pw_posts p ON r.pid=p.pid WHERE r.pid IN($delids)"); while ($read=$db->fetch_array($query)) { $read['fid'] != $fid && Showmsg('admin_forum_right'); $read['aid'] && $attachdb[] = $read['aid']; $ids .= ','.$read['pid']; } if ($ids) { $ids = substr($ids,1); $db->update("DELETE FROM $pw_posts WHERE pid IN ($ids)"); } if ($attachdb) { $ftp = null; if ($db_ifftp) { require_once(R_P.'require/ftp.php'); $ftp = new FTP($ftp_server,$ftp_port,$ftp_user,$ftp_pass,$ftp_dir); } delete_att($attachdb); if ($ftp) { $ftp->close(); unset($ftp); } } $logdb = array( 'type' => 'recycle', 'username1' => '', 'username2' => $windid, 'field1' => $fid, 'field2' => '', 'field3' => '', 'descrip' => 'recycle_reply_delete', 'timestamp' => $timestamp, 'ip' => $onlineip, 'affect' => '', 'forum' => $forum[$fid]['name'], 'reason' => '' ); writelog($logdb); refreshto("forumcp.php?action=edit&type=precycle&fid=$fid&ptable=$ptable",'operate_success'); } elseif($forumset['recycle']&4 && $step=='2'){ $ids = GetGP('ids','P'); count($ids) > 500 && Showmsg('forumcp_recycle_maxcount'); $reids = ''; foreach ($ids as $key => $value) { if (is_numeric($value)) { $reids .= ','.$value; } } $reids = substr($reids,1); !$reids && Showmsg('forumcp_recycle_nodata'); !is_numeric($ptable) && $ptable = $db_ptable; $pw_posts = GetPtable($ptable); $ids = $delids = $rids = ''; $articlenum = 0; $repliesnum = array(); $query = $db->query("SELECT r.*,t.fid as tfid FROM pw_recycle r LEFT JOIN pw_threads t ON r.tid=t.tid WHERE r.pid IN($reids)"); while ($read=$db->fetch_array($query)) { $read['fid'] != $fid && Showmsg('admin_forum_right'); if ($read['tfid']) { $ids .= ','.$read['pid']; $articlenum++; } else { $delids .= ','.$read['pid']; } $rids .= ','.$read['pid']; $repliesnum[$read['tid']]++; } if ($ids) { $ids = substr($ids,1); $db->update("UPDATE $pw_posts p LEFT JOIN pw_recycle r ON p.pid=r.pid SET p.tid=r.tid,p.fid=r.fid WHERE p.pid IN ($ids)"); $db->update("UPDATE pw_attachs SET fid='$fid' WHERE pid IN($reids)"); } if ($delids) { $delids = substr($delids,1); $db->update("UPDATE $pw_posts p LEFT JOIN pw_recycle r ON p.pid=r.pid SET p.tid=r.tid,p.fid='0' WHERE p.pid IN ($delids)"); } if ($rids) { $rids = substr($rids,1); $db->update("DELETE FROM pw_recycle WHERE pid IN ($ids)"); } foreach ($repliesnum as $key=>$val) { $db->update("UPDATE pw_threads SET replies=replies+'$val' WHERE tid='$key'"); } $articlenum && $db->update("UPDATE pw_forumdata SET article=article + '$articlenum' WHERE fid='$fid'"); $logdb = array( 'type' => 'recycle', 'username1' => '', 'username2' => $windid, 'field1' => $fid, 'field2' => '', 'field3' => '', 'descrip' => 'recycle_reply_restore', 'timestamp' => $timestamp, 'ip' => $onlineip, 'affect' => '', 'forum' => $forum[$fid]['name'], 'reason' => '' ); writelog($logdb); refreshto("forumcp.php?action=edit&type=precycle&fid=$fid&ptable=$ptable",'operate_success'); } elseif($forumset['recycle']&8 && $step=='3'){ if ($_SERVER['REQUEST_METHOD']!='POST') { $verify = GetGP('verify'); if ($verify != substr(md5($winduid.$db_sitehash.$winddb['postnum']),0,8)){ Showmsg('undefined_action'); } } $ids = ''; $attachdb = array(); $flag = false; !is_numeric($ptable) && $ptable = $db_ptable; $pw_posts = GetPtable($ptable); $query = $db->query("SELECT r.*,p.aid FROM pw_recycle r LEFT JOIN $pw_posts p ON r.pid=p.pid WHERE r.fid='$fid' AND r.pid>'0' LIMIT 100"); while ($rt=$db->fetch_array($query)) { $flag || $flag = true; $ids .= ','.$rt['pid']; $attachdb[] = $rt['aid']; } if ($flag) { if ($ids) { $ids = substr($ids,1); $db->update("DELETE FROM $pw_posts WHERE pid IN ($ids)"); $db->update("DELETE FROM pw_recycle WHERE pid IN ($ids)"); } if ($attachdb) { $ftp = null; if ($db_ifftp) { require_once(R_P.'require/ftp.php'); $ftp = new FTP($ftp_server,$ftp_port,$ftp_user,$ftp_pass,$ftp_dir); } delete_att($attachdb); if ($ftp) { $ftp->close(); unset($ftp); } } $VerifyHash = substr(md5($winduid.$db_sitehash.$winddb['postnum']),0,8); refreshto("forumcp.php?action=edit&type=precycle&fid=$fid&step=3&ptable=$ptable&verify=$VerifyHash",'delete_recycle'); } else { $logdb = array( 'type' => 'recycle', 'username1' => '', 'username2' => $windid, 'field1' => $fid, 'field2' => '', 'field3' => '', 'descrip' => 'recycle_reply_empty', 'timestamp' => $timestamp, 'ip' => $onlineip, 'affect' => '', 'forum' => $forum[$fid]['name'], 'reason' => '' ); writelog($logdb); refreshto("forumcp.php?action=edit&type=precycle&fid=$fid",'operate_success'); } } } } elseif ($action=='del') { InitGP(array('selid','type')); $selids=''; foreach ($selid as $key=>$value) { is_numeric($value) && $selids .= $selids ? ','.$value : $value; } !$selids && Showmsg('id_error'); if ($type=='report') { $db->update("DELETE FROM pw_report WHERE id IN ($selids)"); refreshto("forumcp.php?action=edit&type=report&fid=$fid",'operate_success'); } } function updatecache_fd() { global $db; $db->update("UPDATE pw_forums SET childid='0',fupadmin=''"); $query = $db->query("SELECT fid,forumadmin FROM pw_forums WHERE type='category' ORDER BY vieworder"); while ($cate = $db->fetch_array($query)) { Add_S($cate); $query2 = $db->query("SELECT fid,forumadmin FROM pw_forums WHERE type='forum' AND fup='$cate[fid]'"); if ($db->num_rows($query2)) { $havechild[] = $cate['fid']; while ($forum = $db->fetch_array($query2)) { Add_S($forum); $fupadmin = trim($cate['forumadmin']); if ($fupadmin) { $db->update("UPDATE pw_forums SET fupadmin='$fupadmin' WHERE fid='$forum[fid]'"); } if (trim($forum['forumadmin'])) { $fupadmin .= $fupadmin ? substr($forum['forumadmin'],1) : $forum['forumadmin']; //is } $query3 = $db->query("SELECT fid,forumadmin FROM pw_forums WHERE type='sub' AND fup='$forum[fid]'"); if ($db->num_rows($query3)) { $havechild[] = $forum['fid']; while ($sub1 = $db->fetch_array($query3)) { Add_S($sub1); $fupadmin1 = $fupadmin; if ($fupadmin1) { $db->update("UPDATE pw_forums SET fupadmin='$fupadmin1' WHERE fid='$sub1[fid]'"); } if (trim($sub1['forumadmin'])) { $fupadmin1 .= $fupadmin1 ? substr($sub1['forumadmin'],1) : $sub1['forumadmin']; } $query4 = $db->query("SELECT fid,forumadmin FROM pw_forums WHERE type='sub' AND fup='$sub1[fid]'"); if ($db->num_rows($query4)) { $havechild[] = $sub1['fid']; while ($sub2 = $db->fetch_array($query4)) { Add_S($sub2); $fupadmin2 = $fupadmin1; if ($fupadmin2) { $db->update("UPDATE pw_forums SET fupadmin='$fupadmin2' WHERE fid='$sub2[fid]'"); } } } } } } } } if ($havechild) { $havechilds = implode(',',$havechild); $db->update("UPDATE pw_forums SET childid='1' WHERE fid IN($havechilds)"); } } function recycle($ids){ global $db,$fid,$attachdir,$ftp_server,$ftp_port,$ftp_user,$ftp_pass,$ftp_dir; $delids = ''; foreach ($ids as $key => $value) { if (is_numeric($value)) { $delids .= $value.','; } } $delids = substr($delids,0,-1); !$delids && Showmsg('forumcp_recycle_nodata'); $ftp = null; if ($db_ifftp) { require_once(R_P.'require/ftp.php'); $ftp = new FTP($ftp_server,$ftp_port,$ftp_user,$ftp_pass,$ftp_dir); } $query = $db->query("SELECT r.*,t.special,t.ifshield,t.ifupload,t.ptable FROM pw_recycle r LEFT JOIN pw_threads t ON r.tid=t.tid WHERE r.tid IN ($delids) AND r.pid='0' AND r.fid='$fid'"); $taid_a = $ttable_a = $ptable_a = array(); $delids = $pollids = $actids = $delaids = $rewids = $ids = ''; while(@extract($db->fetch_array($query))){ $ids .= ','.$tid; $ifshield != '2' && $delids .= $tid.','; $special == 1 && $pollids .= $tid.','; $special == 2 && $actids .= $tid.','; $special == 3 && $rewids .= $tid.','; if ($ifshield != '2') { $ptable_a[$ptable] = 1; $ttable_a[GetTtable($tid)] .= $tid.','; } if($ifupload){ $taid_a[GetTtable($tid)] .= $tid.','; if ($ifshield != '2') { $pw_posts = GetPtable($ptable); $query2 = $db->query("SELECT aid FROM $pw_posts WHERE tid='$tid' AND aid!=''"); while(@extract($db->fetch_array($query2))){ if(!$aid) continue; $attachs = unserialize(stripslashes($aid)); foreach($attachs as $key => $value){ is_numeric($key) && $delaids .= $key.','; if($ftp && !file_exists($attachdir."/".$value['attachurl'])){ $ftp->delete($value['attachurl']); $value['ifthumb'] && $ftp->delete("thumb/$value[attachurl]"); } else{ P_unlink("$attachdir/$value[attachurl]"); $value['ifthumb'] && P_unlink("$attachdir/thumb/$value[attachurl]"); } } } } } } foreach($taid_a as $pw_tmsgs=>$value){ $value = substr($value,0,-1); $query = $db->query("SELECT aid FROM $pw_tmsgs WHERE tid IN($value) AND aid!=''"); while(@extract($db->fetch_array($query))){ if(!$aid) continue; $attachs = unserialize(stripslashes($aid)); foreach($attachs as $key => $value){ is_numeric($key) && $delaids .= $key.','; if($ftp && !file_exists($attachdir."/".$value['attachurl'])){ $ftp->delete($value['attachurl']); $value['ifthumb'] && $ftp->delete("thumb/$value[attachurl]"); } else{ P_unlink("$attachdir/$value[attachurl]"); $value['ifthumb'] && P_unlink("$attachdir/thumb/$value[attachurl]"); } } } } if($pollids){ $pollids = substr($pollids,0,-1); $db->update("DELETE FROM pw_polls WHERE tid IN($pollids)"); } if($actids){ $actids = substr($actids,0,-1); $db->update("DELETE FROM pw_activity WHERE tid IN($actids)"); $db->update("DELETE FROM pw_actmember WHERE actid IN($actids)"); } if ($rewids) { $rewids = substr($rewids,0,-1); $db->update("DELETE FROM pw_reward WHERE tid IN($rewids)"); } if($delaids){ $delaids = substr($delaids,0,-1); $db->update("DELETE FROM pw_attachs WHERE aid IN($delaids)"); } $delids = substr($delids,0,-1); if($delids){ $db->update("DELETE FROM pw_threads WHERE tid IN($delids)"); } foreach($ttable_a as $pw_tmsgs=>$val){ $val = substr($val,0,-1); $db->update("DELETE FROM $pw_tmsgs WHERE tid IN($val)"); } foreach($ptable_a as $key=>$val){ $pw_posts = GetPtable($key); $db->update("DELETE FROM $pw_posts WHERE tid IN($delids)"); } delete_tag($delids); if ($ids) { $ids = substr($ids,1); $db->update("DELETE FROM pw_recycle WHERE tid IN ($ids)"); } if ($ftp) { $ftp->close(); unset($ftp); } } ?>