/** * 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 _lookupUserPDPeriod($a_user_id) { global $ilSetting; $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(); include_once "./Services/Block/classes/class.ilBlockSetting.php"; $per = ilBlockSetting::_lookup("pdnews", "news_pd_period", $a_user_id, 0); // news period information if ($per <= 0 || !$allow_shorter_periods && $per < $default_per || !$allow_longer_periods && $per > $default_per) { $per = $default_per; } return $per; }
/** * Edit news settings. */ public function editSettings() { global $ilCtrl, $lng, $ilSetting; $news_set = new ilSetting("news"); $feed_set = new ilSetting("feed"); $enable_internal_news = $ilSetting->get("block_activated_news"); $enable_internal_rss = $news_set->get("enable_rss_for_internal"); $rss_title_format = $news_set->get("rss_title_format"); $enable_private_feed = $news_set->get("enable_private_feed"); $news_default_visibility = $news_set->get("default_visibility") != "" ? $news_set->get("default_visibility") : "users"; $disable_repository_feeds = $feed_set->get("disable_rep_feeds"); $nr_personal_desktop_feeds = $ilSetting->get("block_limit_pdfeed"); $allow_shorter_periods = $news_set->get("allow_shorter_periods"); $allow_longer_periods = $news_set->get("allow_longer_periods"); include_once "./Services/News/classes/class.ilNewsItem.php"; $rss_period = ilNewsItem::_lookupRSSPeriod(); include_once "./Services/Form/classes/class.ilPropertyFormGUI.php"; $form = new ilPropertyFormGUI(); $form->setFormAction($ilCtrl->getFormAction($this)); $form->setTitle($lng->txt("news_settings")); // Enable internal news $cb_prop = new ilCheckboxInputGUI($lng->txt("news_enable_internal_news"), "enable_internal_news"); $cb_prop->setValue("1"); $cb_prop->setInfo($lng->txt("news_enable_internal_news_info")); $cb_prop->setChecked($enable_internal_news); $form->addItem($cb_prop); // Default Visibility $radio_group = new ilRadioGroupInputGUI($lng->txt("news_default_visibility"), "news_default_visibility"); $radio_option = new ilRadioOption($lng->txt("news_visibility_users"), "users"); $radio_group->addOption($radio_option); $radio_option = new ilRadioOption($lng->txt("news_visibility_public"), "public"); $radio_group->addOption($radio_option); $radio_group->setInfo($lng->txt("news_news_item_visibility_info")); $radio_group->setRequired(false); $radio_group->setValue($news_default_visibility); $form->addItem($radio_group); // Number of news items per object $nr_opts = array(50 => 50, 100 => 100, 200 => 200); $nr_sel = new ilSelectInputGUI($lng->txt("news_nr_of_items"), "news_max_items"); $nr_sel->setInfo($lng->txt("news_nr_of_items_info")); $nr_sel->setOptions($nr_opts); $nr_sel->setValue($news_set->get("max_items")); $form->addItem($nr_sel); // Access Cache $min_opts = array(0 => 0, 1 => 1, 2 => 2, 5 => 5, 10 => 10, 20 => 20, 30 => 30, 60 => 60); $min_sel = new ilSelectInputGUI($lng->txt("news_cache"), "news_acc_cache_mins"); $min_sel->setInfo($lng->txt("news_cache_info")); $min_sel->setOptions($min_opts); $min_sel->setValue($news_set->get("acc_cache_mins")); $form->addItem($min_sel); // PD News Period $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")); $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) ilNewsItem::_lookupDefaultPDPeriod()); $form->addItem($per_sel); // Allow user to choose lower values $sp_prop = new ilCheckboxInputGUI($lng->txt("news_allow_shorter_periods"), "allow_shorter_periods"); $sp_prop->setValue("1"); $sp_prop->setInfo($lng->txt("news_allow_shorter_periods_info")); $sp_prop->setChecked($allow_shorter_periods); $form->addItem($sp_prop); // Allow user to choose higher values $lp_prop = new ilCheckboxInputGUI($lng->txt("news_allow_longer_periods"), "allow_longer_periods"); $lp_prop->setValue("1"); $lp_prop->setInfo($lng->txt("news_allow_longer_periods_info")); $lp_prop->setChecked($allow_longer_periods); $form->addItem($lp_prop); // Enable rss for internal news $cb_prop = new ilCheckboxInputGUI($lng->txt("news_enable_internal_rss"), "enable_internal_rss"); $cb_prop->setValue("1"); $cb_prop->setInfo($lng->txt("news_enable_internal_rss_info")); $cb_prop->setChecked($enable_internal_rss); // RSS News Period $rssp_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"), 365 => "1 " . $lng->txt("year")); $rssp_sel = new ilSelectInputGUI($lng->txt("news_rss_period"), "news_rss_period"); $rssp_sel->setOptions($rssp_opts); $rssp_sel->setValue((int) $rss_period); $cb_prop->addSubItem($rssp_sel); // Section Header: RSS $sh = new ilFormSectionHeaderGUI(); $sh->setTitle($lng->txt("news_rss")); $form->addItem($sh); // title format for rss entries $options = array("" => $lng->txt("news_rss_title_format_obj_news"), "news_obj" => $lng->txt("news_rss_title_format_news_obj")); $si = new ilSelectInputGUI($lng->txt("news_rss_title_format"), "rss_title_format"); $si->setOptions($options); $si->setValue($rss_title_format); $cb_prop->addSubItem($si); $form->addItem($cb_prop); // Enable private news feed $cb_prop = new ilCheckboxInputGUI($lng->txt("news_enable_private_feed"), "enable_private_feed"); $cb_prop->setValue("1"); $cb_prop->setInfo($lng->txt("news_enable_private_feed_info")); $cb_prop->setChecked($enable_private_feed); $form->addItem($cb_prop); // Section Header: External Web Feeds Settings $sh = new ilFormSectionHeaderGUI(); $sh->setTitle($lng->txt("feed_settings")); $form->addItem($sh); // Number of External Feeds on personal desktop $sel = new ilSelectInputGUI($lng->txt("feed_nr_pd_feeds"), "nr_pd_feeds"); $sel->setInfo($lng->txt("feed_nr_pd_feeds_info")); $sel->setOptions(array(0 => "0", 1 => "1", 2 => "2", 3 => "3", 4 => "4", 5 => "5")); $sel->setValue($nr_personal_desktop_feeds); $form->addItem($sel); // Disable External Web Feeds in catetegories $cb_prop = new ilCheckboxInputGUI($lng->txt("feed_disable_rep_feeds"), "disable_repository_feeds"); $cb_prop->setValue("1"); $cb_prop->setInfo($lng->txt("feed_disable_rep_feeds_info")); $cb_prop->setChecked($disable_repository_feeds); $form->addItem($cb_prop); // command buttons $form->addCommandButton("saveSettings", $lng->txt("save")); $form->addCommandButton("view", $lng->txt("cancel")); $this->tpl->setContent($form->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; }