コード例 #1
0
 /**
  * Delete news items.
  */
 function deleteNewsItems()
 {
     if (!$this->getEnableEdit()) {
         return;
     }
     // delete all selected news items
     foreach ($_POST["news_id"] as $news_id) {
         $news = new ilNewsItem($news_id);
         $news->delete();
     }
     return $this->editNews();
 }
コード例 #2
0
 /**
  * Delete all news of a context
  *
  */
 public static function deleteNewsOfContext($a_context_obj_id, $a_context_obj_type, $a_context_sub_obj_id = 0, $a_context_sub_obj_type = "")
 {
     global $ilDB;
     if ($a_context_obj_id == 0 || $a_context_obj_type == "") {
         return;
     }
     if ($a_context_sub_obj_id > 0) {
         $and = " AND context_sub_obj_id = " . $ilDB->quote($a_context_sub_obj_id, "integer") . " AND context_sub_obj_type = " . $ilDB->quote($a_context_sub_obj_type, "text");
     }
     // get news records
     $query = "SELECT * FROM il_news_item" . " WHERE context_obj_id = " . $ilDB->quote($a_context_obj_id, "integer") . " AND context_obj_type = " . $ilDB->quote($a_context_obj_type, "text") . $and;
     $news_set = $ilDB->query($query);
     while ($news = $ilDB->fetchAssoc($news_set)) {
         $news_obj = new ilNewsItem($news["id"]);
         $news_obj->delete();
     }
 }
コード例 #3
0
 /**
  * delete object and all related data	
  *
  * @access	public
  * @return	boolean	true if all object data were removed; false if only a references were removed
  */
 function delete()
 {
     global $ilDB;
     // always call parent delete function first!!
     if (!parent::delete()) {
         return false;
     }
     // delete all items
     $med_items = $this->getItemsArray();
     foreach ($med_items as $item) {
         include_once "./Services/News/classes/class.ilNewsItem.php";
         $news_item = new ilNewsItem($item["id"]);
         $news_item->delete();
     }
     $this->deleteOrder();
     // delete record of table il_media_cast_data
     $query = "DELETE FROM il_media_cast_data" . " WHERE id = " . $ilDB->quote($this->getId(), "integer");
     $ilDB->manipulate($query);
     return true;
 }
コード例 #4
0
 /**
  * Delete news items.
  */
 function deleteItemsObject()
 {
     global $ilCtrl;
     $this->checkPermission("write");
     // delete all selected news items
     foreach ($_POST["item_id"] as $item_id) {
         $mc_item = new ilNewsItem($item_id);
         $mc_item->delete();
     }
     $ilCtrl->redirect($this, "listItems");
 }
コード例 #5
0
    /**
     * delete post and sub-posts
     * @param	integer	$post: ID	
     * @access	public
     * @return	integer	0 or thread-ID
     */
    public function deletePost($post)
    {
        global $ilDB;
        include_once "./Modules/Forum/classes/class.ilObjForum.php";
        // delete tree and get id's of all posts to delete
        $p_node = $this->getPostNode($post);
        $del_id = $this->deletePostTree($p_node);
        // Delete User read entries
        foreach ($del_id as $post_id) {
            ilObjForum::_deleteReadEntries($post_id);
        }
        // DELETE ATTACHMENTS ASSIGNED TO POST
        $this->__deletePostFiles($del_id);
        $dead_pos = count($del_id);
        $dead_thr = 0;
        // if deletePost is thread opener ...
        if ($p_node["parent"] == 0) {
            // delete thread access data
            include_once './Modules/Forum/classes/class.ilObjForum.php';
            ilObjForum::_deleteAccessEntries($p_node['tree']);
            // delete thread
            $dead_thr = $p_node["tree"];
            $statement = $ilDB->manipulateF('
				DELETE FROM frm_threads
				WHERE thr_pk = %s', array('integer'), array($p_node['tree']));
            // update num_threads
            $statement = $ilDB->manipulateF('
				UPDATE frm_data 
				SET top_num_threads = top_num_threads - 1 
				WHERE top_frm_fk = %s', array('integer'), array($this->id));
            // delete all related news
            $posset = $ilDB->queryf('
				SELECT * FROM frm_posts
				WHERE pos_thr_fk = %s', array('integer'), array($p_node['tree']));
            while ($posrec = $ilDB->fetchAssoc($posset)) {
                include_once "./Services/News/classes/class.ilNewsItem.php";
                $news_id = ilNewsItem::getFirstNewsIdForContext($this->id, "frm", $posrec["pos_pk"], "pos");
                if ($news_id > 0) {
                    $news_item = new ilNewsItem($news_id);
                    $news_item->delete();
                }
                try {
                    include_once 'Services/MediaObjects/classes/class.ilObjMediaObject.php';
                    $mobs = ilObjMediaObject::_getMobsOfObject('frm:html', $posrec['pos_pk']);
                    foreach ($mobs as $mob) {
                        if (ilObjMediaObject::_exists($mob)) {
                            ilObjMediaObject::_removeUsage($mob, 'frm:html', $posrec['pos_pk']);
                            $mob_obj = new ilObjMediaObject($mob);
                            $mob_obj->delete();
                        }
                    }
                } catch (Exception $e) {
                }
            }
            // delete all posts of this thread
            $statement = $ilDB->manipulateF('
				DELETE FROM frm_posts
				WHERE pos_thr_fk = %s', array('integer'), array($p_node['tree']));
        } else {
            // delete this post and its sub-posts
            for ($i = 0; $i < $dead_pos; $i++) {
                $statement = $ilDB->manipulateF('
					DELETE FROM frm_posts
					WHERE pos_pk = %s', array('integer'), array($del_id[$i]));
                // delete related news item
                include_once "./Services/News/classes/class.ilNewsItem.php";
                $news_id = ilNewsItem::getFirstNewsIdForContext($this->id, "frm", $del_id[$i], "pos");
                if ($news_id > 0) {
                    $news_item = new ilNewsItem($news_id);
                    $news_item->delete();
                }
                try {
                    include_once 'Services/MediaObjects/classes/class.ilObjMediaObject.php';
                    $mobs = ilObjMediaObject::_getMobsOfObject('frm:html', $del_id[$i]);
                    foreach ($mobs as $mob) {
                        if (ilObjMediaObject::_exists($mob)) {
                            ilObjMediaObject::_removeUsage($mob, 'frm:html', $del_id[$i]);
                            $mob_obj = new ilObjMediaObject($mob);
                            $mob_obj->delete();
                        }
                    }
                } catch (Exception $e) {
                }
            }
            // update num_posts in frm_threads
            $statement = $ilDB->manipulateF('
				UPDATE frm_threads
				SET thr_num_posts = thr_num_posts - %s
				WHERE thr_pk = %s', array('integer', 'integer'), array($dead_pos, $p_node['tree']));
            // get latest post of thread and update last_post
            $res1 = $ilDB->queryf('
				SELECT * FROM frm_posts 
				WHERE pos_thr_fk = %s
				ORDER BY pos_date DESC', array('integer'), array($p_node['tree']));
            if ($res1->numRows() == 0) {
                $lastPost_thr = "";
            } else {
                $z = 0;
                while ($selData = $ilDB->fetchAssoc($res1)) {
                    if ($z > 0) {
                        break;
                    }
                    $lastPost_thr = $selData["pos_top_fk"] . "#" . $selData["pos_thr_fk"] . "#" . $selData["pos_pk"];
                    $z++;
                }
            }
            $statement = $ilDB->manipulateF('
				UPDATE frm_threads
				SET thr_last_post = %s
				WHERE thr_pk = %s', array('text', 'integer'), array($lastPost_thr, $p_node['tree']));
        }
        // update num_posts in frm_data
        $statement = $ilDB->manipulateF('
			UPDATE frm_data
			SET top_num_posts = top_num_posts - %s
			WHERE top_frm_fk = %s', array('integer', 'integer'), array($dead_pos, $this->id));
        // get latest post of forum and update last_post
        $res2 = $ilDB->queryf('
			SELECT * FROM frm_posts, frm_data 
			WHERE pos_top_fk = top_pk 
			AND top_frm_fk = %s
			ORDER BY pos_date DESC', array('integer'), array($this->id));
        if ($res2->numRows() == 0) {
            $lastPost_top = "";
        } else {
            $z = 0;
            while ($selData = $ilDB->fetchAssoc($res2)) {
                if ($z > 0) {
                    break;
                }
                $lastPost_top = $selData["pos_top_fk"] . "#" . $selData["pos_thr_fk"] . "#" . $selData["pos_pk"];
                $z++;
            }
        }
        $statement = $ilDB->manipulateF('
			UPDATE frm_data
			SET top_last_post = %s
			WHERE top_frm_fk = %s', array('text', 'integer'), array($lastPost_top, $this->id));
        return $dead_thr;
    }