/**
  * 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();
 }
Example #3
0
 /**
  * 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;
 }