/** * Get News For Ref Id. * * $a_user_id does only work for groups and courses so far */ function getNewsForRefId($a_ref_id, $a_only_public = false, $a_stopnesting = false, $a_time_period = 0, $a_prevent_aggregation = true, $a_forum_group_sequences = false, $a_no_auto_generated = false, $a_ignore_date_filter = false, $a_user_id = null) { $obj_id = ilObject::_lookupObjId($a_ref_id); $obj_type = ilObject::_lookupType($obj_id); // get starting date $starting_date = ""; if ($obj_type == "grp" || $obj_type == "crs" || $obj_type == "cat") { include_once "./Services/Block/classes/class.ilBlockSetting.php"; $hide_news_per_date = ilBlockSetting::_lookup("news", "hide_news_per_date", 0, $obj_id); if ($hide_news_per_date && !$a_ignore_date_filter) { $starting_date = ilBlockSetting::_lookup("news", "hide_news_date", 0, $obj_id); } } if ($obj_type == "cat" && !$a_stopnesting) { $news = $this->getAggregatedChildNewsData($a_ref_id, $a_only_public, $a_time_period, $a_prevent_aggregation, $starting_date, $a_no_auto_generated); } else { if (($obj_type == "grp" || $obj_type == "crs") && !$a_stopnesting) { $news = $this->getAggregatedNewsData($a_ref_id, $a_only_public, $a_time_period, $a_prevent_aggregation, $starting_date, $a_no_auto_generated, $a_user_id); } else { $news_item = new ilNewsItem(); $news_item->setContextObjId($obj_id); $news_item->setContextObjType($obj_type); $news = $news_item->queryNewsForContext($a_only_public, $a_time_period, $starting_date, $a_no_auto_generated); $unset = array(); foreach ($news as $k => $v) { if (!$a_only_public || $v["visibility"] == NEWS_PUBLIC || $v["priority"] == 0 && ilBlockSetting::_lookup("news", "public_notifications", 0, $obj_id)) { $news[$k]["ref_id"] = $a_ref_id; } else { $unset[] = $k; } } foreach ($unset as $un) { unset($news[$un]); } } } if (!$a_prevent_aggregation) { $news = $this->aggregateForums($news); } else { if ($a_forum_group_sequences) { $news = $this->aggregateForums($news, true); } } return $news; }
/** * TABLE NewsForContext: Get table HTML. * */ public function getNewsForContextTable() { global $lng; $news_item = new ilNewsItem(); $news_item->setContextObjId($this->getContextObjId()); $news_item->setContextObjType($this->getContextObjType()); $news_item->setContextSubObjId($this->getContextSubObjId()); $news_item->setContextSubObjType($this->getContextSubObjType()); $perm_ref_id = 0; if (in_array($this->getContextObjType(), array("cat", "grp", "crs", "root"))) { $data = $news_item->getNewsForRefId($_GET["ref_id"], false, false, 0, true, false, true, true); } else { $perm_ref_id = $_GET["ref_id"]; if ($this->getContextSubObjId() > 0) { $data = $news_item->queryNewsForContext(false, 0, "", true, true); } else { $data = $news_item->queryNewsForContext(); } } include_once "Services/News/classes/class.ilNewsForContextTableGUI.php"; $table_gui = new ilNewsForContextTableGUI($this, "getNewsForContextTable", $perm_ref_id); $table_gui->setTitle($lng->txt("news_table_news_for_context")); $table_gui->setRowTemplate("tpl.table_row_news_for_context.html", "Services/News"); $table_gui->setData($data); $table_gui->setDefaultOrderField("creation_date"); $table_gui->setDefaultOrderDirection("desc"); $table_gui->addMultiCommand("confirmDeletionNewsItems", $lng->txt("delete")); $table_gui->setTitle($lng->txt("news"), "icon_news.png", $lng->txt("news")); $table_gui->setSelectAllCheckbox("news_id"); return $table_gui->getHTML(); }
/** * Get all items of media cast. */ function readItems($a_oldest_first = false) { // include_once "./Services/News/classes/class.ilNewsItem.php"; $it = new ilNewsItem(); $it->setContextObjId($this->getId()); $it->setContextObjType($this->getType()); $this->itemsarray = $it->queryNewsForContext(false, 0, "", false, $a_oldest_first); return $this->itemsarray; }