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); }
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; }