Example #1
0
     }
 } 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);
 }
Example #2
0
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']);
}
Example #3
0
 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;
 }
Example #4
0
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']);
}
Example #5
0
 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));
 }
Example #6
0
         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})");
 }