function d3forum_delete_post_recursive($mydirname, $post_id)
{
    $db =& Database::getInstance();
    $post_id = intval($post_id);
    list($topic_id) = $db->fetchRow($db->query("SELECT topic_id FROM " . $db->prefix($mydirname . "_posts") . " WHERE post_id={$post_id}"));
    $sql = "SELECT post_id FROM " . $db->prefix($mydirname . "_posts") . " WHERE pid={$post_id}";
    if (!($result = $db->query($sql))) {
        die("DB ERROR in delete posts");
    }
    while (list($child_post_id) = $db->fetchRow($result)) {
        d3forum_delete_post_recursive($mydirname, $child_post_id);
    }
    /* list( $uid ) = $db->fetchRow( $db->query( "SELECT uid FROM ".$db->prefix($mydirname."_posts")." WHERE post_id=$post_id" ) ) ;
    	if( ! empty( $uid ) ) {
    		// decrement user's posts
    		$db->query( "UPDATE ".$db->prefix("users")." SET posts=posts-1 WHERE uid=$uid" ) ;
    	} */
    d3forum_transact_make_post_history($mydirname, $post_id, true);
    $db->query("DELETE FROM " . $db->prefix($mydirname . "_posts") . " WHERE post_id={$post_id}");
    $db->query("DELETE FROM " . $db->prefix($mydirname . "_post_votes") . " WHERE post_id={$post_id}");
    // call back to the target of comment
    d3forum_main_d3comment_callback($mydirname, $topic_id, 'delete', $post_id);
}
Example #2
0
         if (!$forum_permissions[$forum_id]['post_auto_approved']) {
             // approval never turned off by edit
             $set4sql .= ',invisible=1';
             $need_admin_notify = true;
         }
     }
     // hide_uid
     if ($hide_uid && !empty($post_row['uid'])) {
         $set4sql .= ",uid=0,uid_hidden=" . intval($post_row['uid']);
     } else {
         if (empty($hide_uid) && !empty($post_row['uid_hidden'])) {
             $set4sql .= ",uid_hidden=0,uid=" . intval($post_row['uid_hidden']);
         }
     }
     // update post specified post_id
     d3forum_transact_make_post_history($mydirname, $post_id);
     if (!$db->query("UPDATE " . $db->prefix($mydirname . "_posts") . " SET {$set4sql} WHERE post_id={$post_id}")) {
         die("DB ERROR IN UPDATE post");
     }
     d3forum_sync_topic($mydirname, $topic_id, true, !(bool) $post_row['pid']);
 } else {
     if ($mode == 'reply') {
         // reply
         // approval
         if ($forum_permissions[$forum_id]['post_auto_approved']) {
             $set4sql .= ',approval=1';
             $need_notify = true;
         } else {
             $set4sql .= ',approval=0';
             $need_admin_notify = true;
         }