/** * Init Filter */ function initFilter() { global $lng, $ilUser; // period $per = $_SESSION["news_pd_news_per"] != "" ? $_SESSION["news_pd_news_per"] : ilNewsItem::_lookupUserPDPeriod($ilUser->getId()); $news_set = new ilSetting("news"); $allow_shorter_periods = $news_set->get("allow_shorter_periods"); $allow_longer_periods = $news_set->get("allow_longer_periods"); $default_per = ilNewsItem::_lookupDefaultPDPeriod(); $options = array(2 => sprintf($lng->txt("news_period_x_days"), 2), 3 => sprintf($lng->txt("news_period_x_days"), 3), 5 => sprintf($lng->txt("news_period_x_days"), 5), 7 => $lng->txt("news_period_1_week"), 14 => sprintf($lng->txt("news_period_x_weeks"), 2), 30 => $lng->txt("news_period_1_month"), 60 => sprintf($lng->txt("news_period_x_months"), 2), 120 => sprintf($lng->txt("news_period_x_months"), 4), 180 => sprintf($lng->txt("news_period_x_months"), 6), 366 => $lng->txt("news_period_1_year")); $unset = array(); foreach ($options as $k => $opt) { if (!$allow_shorter_periods && $k < $default_per) { $unset[$k] = $k; } if (!$allow_longer_periods && $k > $default_per) { $unset[$k] = $k; } } foreach ($unset as $k) { unset($options[$k]); } include_once "./Services/Form/classes/class.ilSelectInputGUI.php"; $si = new ilSelectInputGUI($this->lng->txt("news_time_period"), "news_per"); $si->setOptions($options); $si->setValue($per); $this->addFilterItem($si); // related to... $si = new ilSelectInputGUI($this->lng->txt("context"), "news_ref_id"); $si->setOptions($this->contexts); $si->setValue($this->selected_context); $this->addFilterItem($si); }
function view() { global $ilUser, $lng, $tpl, $ilCtrl; $ref_ids = array(); $obj_ids = array(); $pd_items = $ilUser->getDesktopItems(); foreach ($pd_items as $item) { $ref_ids[] = $item["ref_id"]; $obj_ids[] = $item["obj_id"]; } $sel_ref_id = $_GET["news_ref_id"] > 0 ? $_GET["news_ref_id"] : $ilUser->getPref("news_sel_ref_id"); include_once "./Services/News/classes/class.ilNewsItem.php"; $per = $_SESSION["news_pd_news_per"] != "" ? $_SESSION["news_pd_news_per"] : ilNewsItem::_lookupUserPDPeriod($ilUser->getId()); $news_obj_ids = ilNewsItem::filterObjIdsPerNews($obj_ids, $per); // related objects (contexts) of news $contexts[0] = $lng->txt("news_all_items"); $conts = array(); $sel_has_news = false; foreach ($ref_ids as $ref_id) { $obj_id = ilObject::_lookupObjId($ref_id); $title = ilObject::_lookupTitle($obj_id); $conts[$ref_id] = $title; if ($sel_ref_id == $ref_id) { $sel_has_news = true; } } $cnt = array(); $nitem = new ilNewsItem(); $news_items = $nitem->_getNewsItemsOfUser($ilUser->getId(), false, true, $per, $cnt); // reset selected news ref id, if no news are given for id if (!$sel_has_news) { $sel_ref_id = ""; } asort($conts); foreach ($conts as $ref_id => $title) { $contexts[$ref_id] = $title . " (" . (int) $cnt[$ref_id] . ")"; } if ($sel_ref_id > 0) { $obj_id = ilObject::_lookupObjId($sel_ref_id); $obj_type = ilObject::_lookupType($obj_id); $nitem->setContextObjId($obj_id); $nitem->setContextObjType($obj_type); $news_items = $nitem->getNewsForRefId($sel_ref_id, false, false, $per, true); } include_once "./Services/News/classes/class.ilPDNewsTableGUI.php"; $pd_news_table = new ilPDNewsTableGUI($this, "view", $contexts, $sel_ref_id); $pd_news_table->setData($news_items); $pd_news_table->setNoEntriesText($lng->txt("news_no_news_items")); $tpl->setContent($pd_news_table->getHTML()); }
/** * Show settings screen. */ function editSettings(ilPropertyFormGUI $a_private_form = null) { global $ilUser, $lng, $ilCtrl, $ilSetting; $news_set = new ilSetting("news"); $enable_internal_rss = $news_set->get("enable_rss_for_internal"); $allow_shorter_periods = $news_set->get("allow_shorter_periods"); $allow_longer_periods = $news_set->get("allow_longer_periods"); $enable_private_feed = $news_set->get("enable_private_feed"); if (!$a_private_form && ($allow_shorter_periods || $allow_longer_periods)) { include_once "./Services/Form/classes/class.ilPropertyFormGUI.php"; $form = new ilPropertyFormGUI(); $form->setFormAction($ilCtrl->getFormaction($this)); $form->setTitle($lng->txt("news_settings")); include_once "./Services/News/classes/class.ilNewsItem.php"; $default_per = ilNewsItem::_lookupDefaultPDPeriod(); $per = ilNewsItem::_lookupUserPDPeriod($ilUser->getId()); $form->setTableWidth("100%"); $per_opts = array(2 => "2 " . $lng->txt("days"), 3 => "3 " . $lng->txt("days"), 5 => "5 " . $lng->txt("days"), 7 => "1 " . $lng->txt("week"), 14 => "2 " . $lng->txt("weeks"), 30 => "1 " . $lng->txt("month"), 60 => "2 " . $lng->txt("months"), 120 => "4 " . $lng->txt("months"), 180 => "6 " . $lng->txt("months"), 366 => "1 " . $lng->txt("year")); $unset = array(); foreach ($per_opts as $k => $opt) { if (!$allow_shorter_periods && $k < $default_per) { $unset[$k] = $k; } if (!$allow_longer_periods && $k > $default_per) { $unset[$k] = $k; } } foreach ($unset as $k) { unset($per_opts[$k]); } $per_sel = new ilSelectInputGUI($lng->txt("news_pd_period"), "news_pd_period"); //$per_sel->setInfo($lng->txt("news_pd_period_info")); $per_sel->setOptions($per_opts); $per_sel->setValue((int) $per); $form->addItem($per_sel); //$form->addCheckboxProperty($lng->txt("news_public_feed"), "notifications_public_feed", // "1", $public_feed, $lng->txt("news_public_feed_info")); //if ($this->getProperty("public_notifications_option")) //{ // $form->addCheckboxProperty($lng->txt("news_notifications_public"), "notifications_public", // "1", $public, $lng->txt("news_notifications_public_info")); //} $form->addCommandButton("saveSettings", $lng->txt("save")); $form->addCommandButton("cancelSettings", $lng->txt("cancel")); $returnForm = $form->getHTML(); } if ($enable_private_feed) { if (!$a_private_form) { $a_private_form = $this->initPrivateSettingsForm(); } $returnForm .= $returnForm == "" ? $a_private_form->getHTML() : "<br>" . $a_private_form->getHTML(); } return $returnForm; }
/** * Show settings screen. */ function editSettings() { global $ilUser, $lng, $ilCtrl, $ilSetting; $news_set = new ilSetting("news"); $enable_internal_rss = $news_set->get("enable_rss_for_internal"); $allow_shorter_periods = $news_set->get("allow_shorter_periods"); $allow_longer_periods = $news_set->get("allow_longer_periods"); $enable_private_feed = $news_set->get("enable_private_feed"); include_once "./Services/Form/classes/class.ilPropertyFormGUI.php"; if ($allow_shorter_periods || $allow_longer_periods) { $form = new ilPropertyFormGUI(); include_once "./Services/News/classes/class.ilNewsItem.php"; $default_per = ilNewsItem::_lookupDefaultPDPeriod(); $per = ilNewsItem::_lookupUserPDPeriod($ilUser->getId()); $form->setTitle($lng->txt("news_settings")); $form->setTitleIcon(ilUtil::getImagePath("icon_news.png")); $form->setTableWidth("100%"); $per_opts = array(2 => "2 " . $lng->txt("days"), 3 => "3 " . $lng->txt("days"), 5 => "5 " . $lng->txt("days"), 7 => "1 " . $lng->txt("week"), 14 => "2 " . $lng->txt("weeks"), 30 => "1 " . $lng->txt("month"), 60 => "2 " . $lng->txt("months"), 120 => "4 " . $lng->txt("months"), 180 => "6 " . $lng->txt("months"), 366 => "1 " . $lng->txt("year")); $unset = array(); foreach ($per_opts as $k => $opt) { if (!$allow_shorter_periods && $k < $default_per) { $unset[$k] = $k; } if (!$allow_longer_periods && $k > $default_per) { $unset[$k] = $k; } } foreach ($unset as $k) { unset($per_opts[$k]); } $per_sel = new ilSelectInputGUI($lng->txt("news_pd_period"), "news_pd_period"); //$per_sel->setInfo($lng->txt("news_pd_period_info")); $per_sel->setOptions($per_opts); $per_sel->setValue((int) $per); $form->addItem($per_sel); //$form->addCheckboxProperty($lng->txt("news_public_feed"), "notifications_public_feed", // "1", $public_feed, $lng->txt("news_public_feed_info")); //if ($this->getProperty("public_notifications_option")) //{ // $form->addCheckboxProperty($lng->txt("news_notifications_public"), "notifications_public", // "1", $public, $lng->txt("news_notifications_public_info")); //} $form->addCommandButton("saveSettings", $lng->txt("save")); $form->addCommandButton("cancelSettings", $lng->txt("cancel")); $form->setFormAction($ilCtrl->getFormaction($this)); $returnForm = $form->getHTML(); } if ($enable_private_feed) { $feed_form = new ilPropertyFormGUI(); $feed_form->setTitle($lng->txt("priv_feed_settings")); $feed_form->setTitleIcon(ilUtil::getImagePath("privrss.png")); $feed_form->setTableWidth("100%"); $enable_private_feed = new ilCheckboxInputGUI($lng->txt("news_enable_private_feed"), "enable_private_feed"); $retype_pass = new ilTextInputGUI($lng->txt("retype_password"), "retype_password"); $desired_pass = new ilTextInputGUI($lng->txt("desired_password"), "desired_password"); // user has already valid password if (ilObjUser::_getFeedPass($_SESSION[AccountId]) != false) { $enable_private_feed->setChecked(true); $desired_pass->setValue("******"); } $desired_pass->setInputType("password"); $retype_pass->setInputType("password"); $feed_form->addItem($enable_private_feed); $feed_form->addItem($desired_pass); $feed_form->addItem($retype_pass); $feed_form->addCommandButton("changeFeedSettings", $lng->txt("save")); $feed_form->addCommandButton("cancelSettings", $lng->txt("cancel")); $feed_form->setFormAction($ilCtrl->getFormaction($this)); $returnForm .= $returnForm == "" ? $feed_form->getHTML() : "<br>" . $feed_form->getHTML(); } return $returnForm; }