/** * Removes forum $id as well as all posts/topics for $id * * @param int $id ID of forum * @author Mark Elliot <*****@*****.**> * @since Beta 2.1 * @return string Completion message **/ function DeleteForum($id) { if ($this->forum_array($this->forum_grab(), $id)) { return $this->message('Delete a Forum', 'You cannot orphan a forum by deleting its parent.'); } $topics = null; $query = $this->db->query("SELECT topic_id FROM {$this->pre}topics WHERE topic_forum={$id}"); while ($data = $this->db->nqfetch($query)) { $topics .= "post_topic={$data['topic_id']} OR "; } if ($topics) { $this->db->query("DELETE FROM {$this->pre}posts WHERE " . substr($topics, 0, -4)); $this->db->query("DELETE FROM {$this->pre}topics WHERE topic_forum={$id}"); } $this->db->query("DELETE FROM {$this->pre}forums WHERE forum_id={$id}"); $perms = new permissions(); $perms->db =& $this->db; $perms->pre =& $this->pre; // Groups while ($perms->get_group()) { $perms->remove_z($id); $perms->update(); } // Users while ($perms->get_group(true)) { $perms->remove_z($id); $perms->update(); } return $this->message('Delete a Forum', 'The forum has been deleted.'); }