3 include_once(
"./Services/Object/classes/class.ilObjectGUI.php");
24 public function __construct($a_data, $a_id, $a_call_by_reference =
true, $a_prepare_output =
true)
29 $this->lng->loadLanguageModule(
'news');
30 $this->lng->loadLanguageModule(
'feed');
42 global $rbacsystem,
$ilErr,$ilAccess;
44 $next_class = $this->ctrl->getNextClass($this);
45 $cmd = $this->ctrl->getCmd();
49 if(!$ilAccess->checkAccess(
'read',
'',$this->object->getRefId()))
51 $ilErr->raiseError($this->lng->txt(
'no_permission'),$ilErr->WARNING);
56 case 'ilpermissiongui':
57 $this->tabs_gui->setTabActive(
'perm_settings');
58 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
60 $ret =& $this->ctrl->forwardCommand($perm_gui);
66 $cmd =
"editSettings";
83 global $rbacsystem, $ilAccess;
85 if ($rbacsystem->checkAccess(
"visible,read",$this->object->getRefId()))
87 $this->tabs_gui->addTarget(
"news_edit_news_settings",
88 $this->ctrl->getLinkTarget($this,
"editSettings"),
89 array(
"editSettings",
"view"));
92 if ($rbacsystem->checkAccess(
'edit_permission',$this->object->getRefId()))
94 $this->tabs_gui->addTarget(
"perm_settings",
95 $this->ctrl->getLinkTargetByClass(
'ilpermissiongui',
"perm"),
96 array(),
'ilpermissiongui');
110 $enable_internal_news = $ilSetting->get(
"block_activated_news");
111 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
112 $rss_title_format = $news_set->get(
"rss_title_format");
113 $enable_private_feed = $news_set->get(
"enable_private_feed");
114 $news_default_visibility = ($news_set->get(
"default_visibility") !=
"")
115 ? $news_set->get(
"default_visibility")
117 $disable_repository_feeds =
$feed_set->get(
"disable_rep_feeds");
118 $nr_personal_desktop_feeds = $ilSetting->get(
"block_limit_pdfeed");
120 $allow_shorter_periods = $news_set->get(
"allow_shorter_periods");
121 $allow_longer_periods = $news_set->get(
"allow_longer_periods");
123 include_once(
"./Services/News/classes/class.ilNewsItem.php");
126 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
128 $form->setFormAction($ilCtrl->getFormAction($this));
129 $form->setTitle($lng->txt(
"news_settings"));
133 "enable_internal_news");
135 $cb_prop->setInfo($lng->txt(
"news_enable_internal_news_info"));
136 $cb_prop->setChecked($enable_internal_news);
137 $form->addItem($cb_prop);
141 "enable_internal_rss");
143 $cb_prop->setInfo($lng->txt(
"news_enable_internal_rss_info"));
144 $cb_prop->setChecked($enable_internal_rss);
148 2 =>
"2 ".$lng->txt(
"days"),
149 3 =>
"3 ".$lng->txt(
"days"),
150 5 =>
"5 ".$lng->txt(
"days"),
151 7 =>
"1 ".$lng->txt(
"week"),
152 14 =>
"2 ".$lng->txt(
"weeks"),
153 30 =>
"1 ".$lng->txt(
"month"),
154 60 =>
"2 ".$lng->txt(
"months"),
155 120 =>
"4 ".$lng->txt(
"months"),
156 180 =>
"6 ".$lng->txt(
"months"),
157 365 =>
"1 ".$lng->txt(
"year")
162 $rssp_sel->setValue((
int) $rss_period);
163 $cb_prop->addSubItem($rssp_sel);
167 "" => $lng->txt(
"news_rss_title_format_obj_news"),
168 "news_obj" => $lng->txt(
"news_rss_title_format_news_obj"),
172 $si->setValue($rss_title_format);
173 $cb_prop->addSubItem($si);
175 $form->addItem($cb_prop);
179 "enable_private_feed");
181 $cb_prop->setInfo($lng->txt(
"news_enable_private_feed_info"));
182 $cb_prop->setChecked($enable_private_feed);
183 $form->addItem($cb_prop);
186 $radio_group =
new ilRadioGroupInputGUI($lng->txt(
"news_default_visibility"),
"news_default_visibility");
187 $radio_option =
new ilRadioOption($lng->txt(
"news_visibility_users"),
"users");
188 $radio_group->addOption($radio_option);
189 $radio_option =
new ilRadioOption($lng->txt(
"news_visibility_public"),
"public");
190 $radio_group->addOption($radio_option);
191 $radio_group->
setInfo($lng->txt(
"news_news_item_visibility_info"));
192 $radio_group->setRequired(
false);
193 $radio_group->setValue($news_default_visibility);
194 $form->addItem($radio_group);
197 $nr_opts = array(50 => 50, 100 => 100, 200 => 200);
200 $nr_sel->
setInfo($lng->txt(
"news_nr_of_items_info"));
201 $nr_sel->setOptions($nr_opts);
202 $nr_sel->setValue($news_set->get(
"max_items"));
203 $form->addItem($nr_sel);
206 $min_opts = array(0 => 0, 1 => 1, 2 => 2, 5 => 5, 10 => 10, 20 => 20, 30 => 30, 60 => 60);
208 "news_acc_cache_mins");
209 $min_sel->
setInfo($lng->txt(
"news_cache_info"));
210 $min_sel->setOptions($min_opts);
211 $min_sel->setValue($news_set->get(
"acc_cache_mins"));
212 $form->addItem($min_sel);
216 2 =>
"2 ".$lng->txt(
"days"),
217 3 =>
"3 ".$lng->txt(
"days"),
218 5 =>
"5 ".$lng->txt(
"days"),
219 7 =>
"1 ".$lng->txt(
"week"),
220 14 =>
"2 ".$lng->txt(
"weeks"),
221 30 =>
"1 ".$lng->txt(
"month"),
222 60 =>
"2 ".$lng->txt(
"months"),
223 120 =>
"4 ".$lng->txt(
"months"),
224 180 =>
"6 ".$lng->txt(
"months"),
225 366 =>
"1 ".$lng->txt(
"year"));
228 $per_sel->
setInfo($lng->txt(
"news_pd_period_info"));
229 $per_sel->setOptions($per_opts);
231 $form->addItem($per_sel);
235 "allow_shorter_periods");
237 $sp_prop->setInfo($lng->txt(
"news_allow_shorter_periods_info"));
238 $sp_prop->setChecked($allow_shorter_periods);
239 $form->addItem($sp_prop);
243 "allow_longer_periods");
245 $lp_prop->setInfo($lng->txt(
"news_allow_longer_periods_info"));
246 $lp_prop->setChecked($allow_longer_periods);
247 $form->addItem($lp_prop);
251 $sh->setTitle($lng->txt(
"feed_settings"));
256 "disable_repository_feeds");
258 $cb_prop->setInfo($lng->txt(
"feed_disable_rep_feeds_info"));
259 $cb_prop->setChecked($disable_repository_feeds);
260 $form->addItem($cb_prop);
264 $sel->
setInfo($lng->txt(
"feed_nr_pd_feeds_info"));
265 $sel->setOptions(array(0 =>
"0",
271 $sel->setValue($nr_personal_desktop_feeds);
272 $form->addItem($sel);
275 $form->addCommandButton(
"saveSettings", $lng->txt(
"save"));
276 $form->addCommandButton(
"view", $lng->txt(
"cancel"));
278 $this->tpl->setContent($form->getHTML());
289 include_once(
"./Services/News/classes/class.ilNewsCache.php");
291 $this->acache->deleteAllEntries();
298 $ilSetting->set(
"block_activated_news",
$_POST[
"enable_internal_news"]);
299 $ilSetting->set(
"block_activated_pdnews",
$_POST[
"enable_internal_news"]);
300 $news_set->set(
"enable_rss_for_internal",
$_POST[
"enable_internal_rss"]);
301 $news_set->set(
"max_items",
$_POST[
"news_max_items"]);
302 $news_set->set(
"acc_cache_mins",
$_POST[
"news_acc_cache_mins"]);
303 $news_set->set(
"pd_period",
$_POST[
"news_pd_period"]);
304 $news_set->set(
"default_visibility",
$_POST[
"news_default_visibility"]);
305 $news_set->set(
"allow_shorter_periods",
$_POST[
"allow_shorter_periods"]);
306 $news_set->set(
"allow_longer_periods",
$_POST[
"allow_longer_periods"]);
307 $news_set->set(
"rss_period",
$_POST[
"news_rss_period"]);
308 $news_set->set(
"rss_title_format",
$_POST[
"rss_title_format"]);
310 $feed_set->set(
"disable_rep_feeds",
$_POST[
"disable_repository_feeds"]);
311 $ilSetting->set(
"block_limit_pdfeed",
$_POST[
"nr_pd_feeds"]);
312 if (
$_POST[
"nr_pd_feeds"] > 0)
314 $ilSetting->set(
"block_activated_pdfeed", 1);
318 $ilSetting->set(
"block_activated_pdfeed", 0);
321 if (
$_POST[
"enable_internal_rss"]!=0)
323 $news_set->set(
"enable_private_feed",
$_POST[
"enable_private_feed"]);
327 $news_set->set(
"enable_private_feed", 0);
332 $ilCtrl->redirect($this,
"view");