} } else { $deltype = 'delrp'; $deltitle = $subject ? substrs($subject, 28) : substrs($content, 28); $db->update("DELETE FROM {$pw_posts} WHERE pid=" . pwEscape($pid)); $db->update("UPDATE pw_threads SET replies=replies-1 WHERE tid=" . pwEscape($tid)); $msg_delrvrc = abs($creditset['Deleterp']['rvrc']); $msg_delmoney = abs($creditset['Deleterp']['money']); $credit->addLog('topic_Deleterp', $creditset['Deleterp'], array('uid' => $authorid, 'username' => $author, 'ip' => $onlineip, 'fname' => strip_tags($forum[$fid]['name']), 'operator' => $windid)); $credit->sets($authorid, $creditset['Deleterp'], false); } $credit->setMdata($authorid, 'postnum', -1); $credit->runsql(); if ($db_guestread) { require_once R_P . 'require/guestfunc.php'; clearguestcache($tid, $rs['replies']); } P_unlink(D_P . 'data/bbscache/c_cache.php'); require_once R_P . 'require/updateforum.php'; updateforum($fid); if ($rs['topped']) { updatetop(); } $msg_delrvrc = floor($msg_delrvrc / 10); require_once R_P . 'require/writelog.php'; $log = array('type' => 'delete', 'username1' => $author, 'username2' => $windid, 'field1' => $fid, 'field2' => '', 'field3' => '', 'descrip' => $deltype . '_descrip', 'timestamp' => $timestamp, 'ip' => $onlineip, 'tid' => $tid, 'forum' => $pwforum->foruminfo['name'], 'subject' => $deltitle, 'affect' => "{$db_rvrcname}:-{$msg_delrvrc},{$db_moneyname}:-{$msg_delmoney}", 'reason' => 'edit delete article!'); writelog($log); if ($pwforum->foruminfo['allowhtm'] && $article <= $db_readperpage) { $StaticPage = L::loadClass('StaticPage'); $StaticPage->update($tid); }
function delforum($fid) { global $db, $db_guestdir, $db_guestthread, $db_guestread; $foruminfo = $db->get_one("SELECT fid,fup,forumadmin FROM pw_forums WHERE fid=" . pwEscape($fid)); $db->update("DELETE FROM pw_forums WHERE fid=" . pwEscape($fid)); $db->update("DELETE FROM pw_forumdata WHERE fid=" . pwEscape($fid)); $db->update("DELETE FROM pw_forumsextra WHERE fid=" . pwEscape($fid)); $db->update("DELETE FROM pw_permission WHERE fid>'0' AND fid=" . pwEscape($fid)); if ($foruminfo['forumadmin']) { $forumadmin = explode(",", $foruminfo['forumadmin']); foreach ($forumadmin as $key => $value) { if ($value) { $gid = $db->get_one("SELECT uid,groupid FROM pw_members WHERE username="******"UPDATE pw_members SET groupid='-1' WHERE username="******"{$db_guestdir}/T_{$fid}"); } P_unlink(D_P . "data/forums/fid_{$fid}.php"); $ttable_a = $ptable_a = array(); $query = $db->query("SELECT tid,replies,ptable FROM pw_threads WHERE fid=" . pwEscape($fid)); while ($tpc = $db->fetch_array($query)) { $tid = $tpc['tid']; $ttable_a[GetTtable($tid)][] = $tid; $ptable_a[$tpc['ptable']] = 1; $db_guestread && clearguestcache($tid, $tpc['replies']); } foreach ($ttable_a as $pw_tmsgs => $val) { $val = pwImplode($val, false); $db->update("DELETE FROM {$pw_tmsgs} WHERE tid IN({$val})"); } # $db->update("DELETE FROM pw_threads WHERE fid=".pwEscape($fid)); # ThreadManager $threadManager = L::loadClass("threadmanager"); $threadManager->deleteByForumId($fid); foreach ($ptable_a as $key => $val) { $pw_posts = GetPtable($key); $db->update("DELETE FROM {$pw_posts} WHERE fid=" . pwEscape($fid)); } updateforum($foruminfo['fup']); }
function delReplyTopic($tids, $deltpc, $recount, $recycle = false) { if (!$tids) { return array(); } global $db_readdir, $db_guestread; $db_guestread && (require_once R_P . 'require/guestfunc.php'); $deltopic = array(); $query = $this->db->query("SELECT tid,fid,postdate,lastpost,author,replies,anonymous,ptable,locked FROM pw_threads WHERE tid IN(" . S::sqlImplode($tids) . ")"); while ($read = $this->db->fetch_array($query)) { $htmurl = $db_readdir . '/' . $read['fid'] . '/' . date('ym', $read['postdate']) . '/' . $read['tid'] . '.html'; if (file_exists(R_P . $htmurl)) { P_unlink(R_P . $htmurl); } if ($db_guestread) { clearguestcache($read['tid'], $read['replies']); } if ($recount) { if ($ret = $this->recountTopic($read, in_array($read['tid'], $deltpc), $recycle)) { $deltopic[$read['fid']] += 1; } } } //* $threads = L::loadClass('Threads', 'forum'); //* $threads->delThreads($tids); Perf::gatherInfo('changeThreadWithThreadIds', array('tid' => $tids)); return $deltopic; }
function delforum($fid) { global $db, $db_guestdir, $db_guestthread, $db_guestread; $foruminfo = $db->get_one("SELECT fid,fup,forumadmin FROM pw_forums WHERE fid=" . S::sqlEscape($fid)); //$db->update("DELETE FROM pw_forums WHERE fid=".S::sqlEscape($fid)); pwQuery::delete('pw_forums', 'fid=:fid', array($fid)); //* $db->update("DELETE FROM pw_forumdata WHERE fid=".S::sqlEscape($fid)); pwQuery::delete('pw_forumdata', 'fid=:fid', array($fid)); $db->update("DELETE FROM pw_forumsextra WHERE fid=" . S::sqlEscape($fid)); $db->update("DELETE FROM pw_permission WHERE fid>'0' AND fid=" . S::sqlEscape($fid)); if ($foruminfo['forumadmin']) { $userService = L::loadClass('UserService', 'user'); /* @var $userService PW_UserService */ $forumadmin = explode(",", $foruminfo['forumadmin']); foreach ($forumadmin as $key => $value) { if ($value) { $gid = $userService->getByUserName($value); if ($gid['groupid'] == 5 && !ifadmin($value)) { $userService->update($gid['uid'], array('groupid' => -1)); admincheck($gid['uid'], $value, $gid['groupid'], '', 'delete'); } } } } if ($db_guestthread || $db_guestread) { require_once R_P . 'require/guestfunc.php'; $db_guestthread && deldir(D_P . "{$db_guestdir}/T_{$fid}"); } //* P_unlink(D_P."data/forums/fid_{$fid}.php"); pwCache::deleteData(D_P . "data/forums/fid_{$fid}.php"); require_once R_P . 'require/functions.php'; require_once R_P . 'require/updateforum.php'; $pw_attachs = L::loadDB('attachs', 'forum'); $ttable_a = $ptable_a = array(); $query = $db->query("SELECT tid,replies,ptable FROM pw_threads WHERE fid=" . S::sqlEscape($fid)); while ($tpc = $db->fetch_array($query)) { $tid = $tpc['tid']; $ttable_a[GetTtable($tid)][] = $tid; $ptable_a[$tpc['ptable']] = 1; $db_guestread && clearguestcache($tid, $tpc['replies']); if ($attachdb = $pw_attachs->getByTid($tid)) { delete_att($attachdb); } } pwFtpClose($GLOBALS['ftp']); foreach ($ttable_a as $pw_tmsgs => $val) { //* $val = S::sqlImplode($val,false); //* $db->update("DELETE FROM $pw_tmsgs WHERE tid IN($val)"); pwQuery::delete($pw_tmsgs, 'tid IN(:tid)', array($val)); } # $db->update("DELETE FROM pw_threads WHERE fid=".S::sqlEscape($fid)); # ThreadManager //* $threadManager = L::loadClass("threadmanager", 'forum'); //* $threadManager->deleteByForumId($fid); $threadService = L::loadclass('threads', 'forum'); $threadService->deleteByForumId($fid); //* Perf::gatherInfo('changeThreadWithForumIds', array('fid'=>$fid)); foreach ($ptable_a as $key => $val) { $pw_posts = GetPtable($key); //$db->update("DELETE FROM $pw_posts WHERE fid=".S::sqlEscape($fid)); pwQuery::delete($pw_posts, 'fid=:fid', array($fid)); } updateforum($foruminfo['fup']); }
pwQuery::insert($pw_posts, $pwSQL); !$pid && ($pid = $db->insert_id()); $replies += $fromdb['replies'] + 1; # $db->update('DELETE FROM pw_threads WHERE tid='.S::sqlEscape($fromdb['tid'])); # ThreadManager //* $threadManager = L::loadClass("threadmanager", 'forum'); //* $threadManager->deleteByThreadId($fromdb['fid'], $fromdb['tid']); $threadService = L::loadclass('threads', 'forum'); $threadService->deleteByThreadId($fromdb['tid']); Perf::gatherInfo('changeThreadWithForumIds', array('fid' => $fromdb['fid'])); $pw_tmsgsf = GetTtable($fromdb['tid']); //* $db->update("DELETE FROM $pw_tmsgsf WHERE tid=" . S::sqlEscape($fromdb['tid'])); pwQuery::delete($pw_tmsgsf, 'tid=:tid', array($fromdb['tid'])); if ($db_guestread) { require_once R_P . 'require/guestfunc.php'; clearguestcache($fromdb['tid'], $replies); } if ($todb['ptable'] == $fromdb['ptable']) { //$db->update("UPDATE $pw_posts SET tid=" . S::sqlEscape($totid) . ' WHERE tid=' . S::sqlEscape($fromdb['tid'])); pwQuery::update($pw_posts, 'tid=:tid', array($fromdb['tid']), array('tid' => $totid)); } else { $pw_postsf = GetPtable($fromdb['ptable']); $db->update("INSERT INTO {$pw_posts} SELECT * FROM {$pw_postsf} WHERE tid=" . S::sqlEscape($fromdb['tid'])); //$db->update("UPDATE $pw_posts SET tid=" . S::sqlEscape($totid) . " WHERE tid=" . S::sqlEscape($fromdb['tid'])); pwQuery::update($pw_posts, 'tid=:tid', array($fromdb['tid']), array('tid' => $totid)); //$db->update("DELETE FROM $pw_postsf WHERE tid=" . S::sqlEscape($fromdb['tid'])); pwQuery::delete($pw_postsf, 'tid=:tid', array($fromdb['tid'])); } if ($fromdb['aid']) { $pw_attachs->updateByTid($fromdb['tid'], 0, array('pid' => $pid, 'tid' => $totid)); }
while (@extract($db->fetch_array($query2))) { if ($aid) { $attachs = unserialize(stripslashes($aid)); foreach ($attachs as $key => $value) { is_numeric($key) && ($delaids[] = $key); P_unlink("{$attachdir}/{$value['attachurl']}"); $value['ifthumb'] && P_unlink("{$attachdir}/thumb/{$value['attachurl']}"); } } } } $htmurl = $db_htmdir . '/' . $fid . '/' . date('ym', $postdate) . '/' . $tid . '.html'; if (file_exists(R_P . $htmurl)) { P_unlink(R_P . $htmurl); } $db_guestread && clearguestcache($tid, $replies); //统计用户的回复数 $query3 = $db->query("SELECT authorid FROM {$pw_posts} WHERE tid=" . pwEscape($tid)); while ($rt3 = $db->fetch_array($query3)) { $delnum[$rt3['authorid']]++; } } if (isset($specialdb[1])) { $pollids = pwImplode($specialdb[1]); $db->update("DELETE FROM pw_polls WHERE tid IN({$pollids})"); } if (isset($specialdb[2])) { $actids = pwImplode($specialdb[2]); $db->update("DELETE FROM pw_activity WHERE tid IN({$actids})"); $db->update("DELETE FROM pw_actmember WHERE actid IN({$actids})"); }