예제 #1
0
 /**
  * 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.');
 }