3 include_once(
"./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"),
 
  170                         $si = 
new ilSelectInputGUI($lng->txt(
"news_rss_title_format"), 
"rss_title_format");
 
  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");