4include_once(
"Services/News/classes/class.ilNewsForContextBlockGUI.php");
 
   29                $ilBench->start(
"News", 
"ilPDNewsBlockGUI_Constructor");
 
   35                $lng->loadLanguageModule(
"news");
 
   36                include_once(
"./Services/News/classes/class.ilNewsItem.php");
 
   41                $this->dynamic = 
false;
 
   50                include_once(
"./Services/News/classes/class.ilNewsCache.php");
 
   52                $cres = unserialize($this->acache->getEntry(
$ilUser->getId().
":0"));
 
   53                $this->cache_hit = 
false;
 
   54                if ($this->acache->getLastAccessStatus() == 
"hit" && is_array($cres))
 
   57                        $this->cache_hit = 
true;
 
   62                        $this->dynamic = 
true;
 
   70                        if (empty(self::$st_data))
 
   85                $this->
setTitle($lng->txt(
"news_internal_news"));
 
   86                $this->
setRowTemplate(
"tpl.block_row_news_for_context.html", 
"Services/News");
 
   93                $ilAccess->setResults($this->acc_results);
 
   95                $ilBench->stop(
"News", 
"ilPDNewsBlockGUI_Constructor");
 
  105                include_once(
"./Services/News/classes/class.ilNewsCache.php");
 
  116                $this->acache->storeEntry(
$ilUser->getId().
":0",
 
  160                        case "changeFeedSettings":
 
  175                $next_class = 
$ilCtrl->getNextClass();
 
  181                                return $this->
$cmd();
 
  198                        $ilBench->start(
"News", 
"ilPDNewsBlockGUI_fillDataSection");
 
  199                        parent::fillDataSection();
 
  200                        $ilBench->stop(
"News", 
"ilPDNewsBlockGUI_fillDataSection");
 
  205                        if (count($this->
getData()) == 0)
 
  221                $this->
setFooterInfo($lng->txt(
"news_block_information"), 
true);
 
  224                $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
 
  225                $allow_shorter_periods = $news_set->get(
"allow_shorter_periods");
 
  226                $allow_longer_periods = $news_set->get(
"allow_longer_periods");
 
  227                $enable_private_feed = $news_set->get(
"enable_private_feed");
 
  230                include_once(
"./Services/News/classes/class.ilNewsSubscription.php");
 
  233                if ($enable_internal_rss)
 
  235                        include_once(
"./Services/News/classes/class.ilRSSButtonGUI.php");
 
  237                                $ilCtrl->getLinkTarget($this, 
"showFeedUrl"),
 
  241                if ($allow_shorter_periods || $allow_longer_periods || $enable_private_feed)
 
  244                                $ilCtrl->getLinkTarget($this, 
"editSettings"),
 
  245                                $lng->txt(
"settings"));
 
  256                                case 5: $per_str = 
sprintf(
$lng->txt(
"news_period_x_days"), $per); 
break;
 
  257                                case 7: $per_str = 
$lng->txt(
"news_period_1_week"); 
break;
 
  258                                case 14: $per_str = 
sprintf(
$lng->txt(
"news_period_x_weeks"), 2); 
break;
 
  259                                case 30: $per_str = 
$lng->txt(
"news_period_1_month"); 
break;
 
  260                                case 60: $per_str = 
sprintf(
$lng->txt(
"news_period_x_months"), 2); 
break;
 
  261                                case 120: $per_str = 
sprintf(
$lng->txt(
"news_period_x_months"), 4); 
break;
 
  262                                case 180: $per_str = 
sprintf(
$lng->txt(
"news_period_x_months"), 6); 
break;
 
  263                                case 366: $per_str = 
$lng->txt(
"news_period_1_year"); 
break;
 
  267                                $this->
setTitle($this->
getTitle().
' <span style="font-weight:normal;">- '.$per_str.
"</span>");
 
  277                if (
$ilUser->getPref(
"il_feed_js") == 
"n")
 
  296                include_once(
"./Services/News/classes/class.ilNewsItem.php");
 
  298                if ($news_set->get(
"enable_private_feed")) 
 
  300                        $tpl = 
new ilTemplate(
"tpl.show_priv_feed_url.html", 
true, 
true, 
"Services/News");                              
 
  302                        $tpl->setVariable(
"TXT_PRIV_TITLE", 
$lng->txt(
"news_get_priv_feed_title"));
 
  307                                $tpl->setVariable(
"TXT_PRIV_INFO", 
$lng->txt(
"news_get_priv_feed_info"));
 
  308                                $tpl->setVariable(
"TXT_PRIV_FEED_URL", 
$lng->txt(
"news_feed_url"));                     
 
  309                                $tpl->setVariable(
"VAL_PRIV_FEED_URL",
 
  310                                        str_replace(
"://", 
"://" . 
$ilUser->getLogin() . 
":-password-@", ILIAS_HTTP_PATH).
"/privfeed.php?client_id=".rawurlencode(CLIENT_ID).
"&user_id=".
$ilUser->getId().
 
  311                                                "&hash=".ilObjUser::_lookupFeedHash(
$ilUser->getId(), 
true));
 
  312                                $tpl->setVariable(
"VAL_PRIV_FEED_URL_TXT",
 
  313                                        str_replace(
"://", 
"://" . 
$ilUser->getLogin() . 
":-password-@", ILIAS_HTTP_PATH).
"/privfeed.php?client_id=".rawurlencode(CLIENT_ID).
"&<br />user_id=".
$ilUser->getId().
 
  314                                                "&hash=".ilObjUser::_lookupFeedHash(
$ilUser->getId(), 
true));
 
  318                                $tpl->setVariable(
"TXT_PRIV_INFO", 
$lng->txt(
"news_inactive_private_feed_info"));
 
  319                                $tpl->setVariable(
"EDIT_SETTINGS_URL", 
$ilCtrl->getLinkTarget($this, 
"editSettings"));
 
  320                                $tpl->setVariable(
"EDIT_SETTINGS_TXT", 
$lng->txt(
"news_edit_news_settings"));
 
  325                        $tpl = 
new ilTemplate(
"tpl.show_feed_url.html", 
true, 
true, 
"Services/News");
 
  327                $tpl->setVariable(
"TXT_TITLE", 
$lng->txt(
"news_get_feed_title"));
 
  328                $tpl->setVariable(
"TXT_INFO", 
$lng->txt(
"news_get_feed_info"));
 
  329                $tpl->setVariable(
"TXT_FEED_URL", 
$lng->txt(
"news_feed_url"));
 
  330                $tpl->setVariable(
"VAL_FEED_URL",
 
  331                        ILIAS_HTTP_PATH.
"/feed.php?client_id=".rawurlencode(CLIENT_ID).
"&user_id=".
$ilUser->getId().
 
  332                                "&hash=".ilObjUser::_lookupFeedHash(
$ilUser->getId(), 
true));
 
  333                $tpl->setVariable(
"VAL_FEED_URL_TXT",
 
  334                        ILIAS_HTTP_PATH.
"/feed.php?client_id=".rawurlencode(CLIENT_ID).
"&<br />user_id=".
$ilUser->getId().
 
  335                                "&hash=".ilObjUser::_lookupFeedHash(
$ilUser->getId(), 
true));
 
  337                include_once(
"./Services/PersonalDesktop/classes/class.ilPDContentBlockGUI.php");
 
  339                $content_block->setContent(
$tpl->get());
 
  340                $content_block->setTitle(
$lng->txt(
"news_internal_news"));
 
  341                $content_block->addHeaderCommand(
$ilCtrl->getParentReturn($this),
 
  342                        $lng->txt(
"selected_items_back"));
 
  344                return $content_block->getHTML();
 
  351                $a_content_block->addHeaderCommand(
$ilCtrl->getParentReturn($this),
 
  352                        $lng->txt(
"selected_items_back"));
 
  367                return parent::showNews();
 
  378                $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
 
  379                $allow_shorter_periods = $news_set->get(
"allow_shorter_periods");
 
  380                $allow_longer_periods = $news_set->get(
"allow_longer_periods");
 
  381                $enable_private_feed = $news_set->get(
"enable_private_feed");
 
  383                if (!$a_private_form && ($allow_shorter_periods || $allow_longer_periods))
 
  385                        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
  387                        $form->setFormAction(
$ilCtrl->getFormaction($this));                    
 
  388                        $form->setTitle(
$lng->txt(
"news_settings"));
 
  390                        include_once(
"./Services/News/classes/class.ilNewsItem.php");
 
  394                        $form->setTableWidth(
"100%");
 
  397                                2 => 
"2 ".
$lng->txt(
"days"),
 
  398                                3 => 
"3 ".$lng->txt(
"days"),
 
  399                                5 => 
"5 ".$lng->txt(
"days"),
 
  400                                7 => 
"1 ".$lng->txt(
"week"),
 
  401                                14 => 
"2 ".$lng->txt(
"weeks"),
 
  402                                30 => 
"1 ".$lng->txt(
"month"),
 
  403                                60 => 
"2 ".$lng->txt(
"months"),
 
  404                                120 => 
"4 ".$lng->txt(
"months"),
 
  405                                180 => 
"6 ".$lng->txt(
"months"),
 
  406                                366 =>  
"1 ".$lng->txt(
"year"));
 
  409                        foreach($per_opts as $k => $opt)
 
  411                                if (!$allow_shorter_periods && ($k < $default_per)) $unset[$k] = $k;
 
  412                                if (!$allow_longer_periods && ($k > $default_per)) $unset[$k] = $k;
 
  414                        foreach($unset as $k)
 
  416                                unset($per_opts[$k]);
 
  422                        $per_sel->setOptions($per_opts);
 
  423                        $per_sel->setValue((
int) $per);
 
  424                        $form->addItem($per_sel);
 
  433                        $form->addCommandButton(
"saveSettings", 
$lng->txt(
"save"));
 
  434                        $form->addCommandButton(
"cancelSettings", 
$lng->txt(
"cancel"));                 
 
  436                        $returnForm = $form->getHTML();
 
  439                if ($enable_private_feed) 
 
  445                        $returnForm .= ($returnForm==
"") 
 
  446                                ? $a_private_form->getHTML()
 
  447                                : 
"<br>".$a_private_form->getHTML();
 
  457                include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
  459                $feed_form->setFormAction(
$ilCtrl->getFormaction($this));
 
  460                $feed_form->setTitle(
$lng->txt(
"priv_feed_settings"));
 
  462                $feed_form->setTableWidth(
"100%");
 
  464                $enable_private_feed = 
new ilCheckboxInputGUI(
$lng->txt(
"news_enable_private_feed"), 
"enable_private_feed");
 
  465                $enable_private_feed->setChecked(
$ilUser->_getFeedPass(
$ilUser->getId()));
 
  466                $feed_form->addItem($enable_private_feed);              
 
  469                $passwd->setRequired(
true);
 
  471                $enable_private_feed->addSubItem($passwd);
 
  473                $feed_form->addCommandButton(
"changeFeedSettings", 
$lng->txt(
"save"));
 
  474                $feed_form->addCommandButton(
"cancelSettings", 
$lng->txt(
"cancel"));
 
  486                $ilCtrl->returnToParent($this);
 
  497                $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
 
  501                        $ilUser->getId(), $this->block_id);
 
  503                include_once(
"./Services/News/classes/class.ilNewsCache.php");
 
  505                $cache->deleteEntry(
$ilUser->getId().
":0");
 
  507                $ilCtrl->returnToParent($this);
 
  518                if($form->checkInput())
 
  521                        if (!$form->getInput(
"enable_private_feed")) 
 
  526                                $ilCtrl->redirect($this, 
"showFeedUrl");
 
  530                                $passwd = $form->getInput(
"desired_password");
 
  531                                require_once 
'Services/User/classes/class.ilUserPasswordManager.php';
 
  534                                        $form->getItemByPostVar(
"desired_password")->setAlert(
$lng->txt(
"passwd_equals_ilpasswd"));
 
  542                                        $ilCtrl->redirect($this, 
"showFeedUrl");
 
  547                $form->setValuesByPost();
 
sprintf('%.4f', $callTime)
An exception for terminatinating execution or to throw for unit testing.
setRowTemplate($a_rowtemplatename, $a_rowtemplatedir="")
Set Row Template Name.
setLimit($a_limit)
Set Limit.
setFooterInfo($a_footerinfo, $a_hide_and_icon=false)
Set Footer Info.
getCurrentDetailLevel()
Get Current Detail Level.
setAvailableDetailLevels($a_max, $a_min=0)
Set Available Detail Levels.
setEnableDetailRow($a_enabledetailrow)
Set EnableDetailRow.
setData($a_data)
Set Data.
__construct()
Constructor.
setDataSection($a_content)
Call this from overwritten fillDataSection(), if standard row based data is not used.
addBlockCommand($a_href, $a_text, $a_target="", $a_img="", $a_right_aligned=false, $a_checked=false, $a_html="")
Add Block Command.
setTitle($a_title)
Set Title.
setEnableNumInfo($a_enablenuminfo)
Set Enable Item Number Info.
getHTML()
Handle config status.
static _write($a_type, $a_setting, $a_value, $a_user=0, $a_block_id=0)
Write setting to database.
BlockGUI class for block NewsForContext.
editSettings()
Show settings screen.
handleView()
Handles show/hide notification view and removes notifications if hidden.
getOverview()
Get overview.
static _getNewsItemsOfUser($a_user_id, $a_only_public=false, $a_prevent_aggregation=false, $a_per=0, &$a_cnt=NULL)
Get all news items for a user.
static prepareNewsDataFromCache($a_cres)
Prepare news data from cache.
static _lookupUserPDPeriod($a_user_id)
static _lookupDefaultPDPeriod()
BlockGUI class for (centered) Content on Personal Desktop.
BlockGUI class for block NewsForContext.
executeCommand()
execute command
getNewsData()
Get news for context.
cancelSettings()
Cancel settings.
changeFeedSettings()
change user password
getHTML()
Get bloch HTML code.
saveSettings()
Save settings.
addCloseCommand($a_content_block)
fillDataSection()
Fill data section.
showFeedUrl()
Show feed URL.
__construct()
Constructor.
static getBlockType()
Get block type.
static getScreenMode()
Get Screen Mode for current command.
editSettings(ilPropertyFormGUI $a_private_form=null)
Show settings screen.
initPrivateSettingsForm()
static isRepositoryObject()
Is block used in repository object?
special template class to simplify handling of ITX/PEAR
static getInstance()
Single method to reduce footprint (included files, created instances)
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static getPasswordRequirementsInfo()
$GLOBALS['loaded']
Global hash that tracks already loaded includes.