4include_once(
"Services/News/classes/class.ilNewsForContextBlockGUI.php");
 
   29        $this->lng = 
$DIC->language();
 
   30        $this->
user = $DIC->user();
 
   31        $this->access = 
$DIC->access();
 
   32        $this->ctrl = 
$DIC->ctrl();
 
   36        $ilAccess = 
$DIC->access();
 
   41        $lng->loadLanguageModule(
"news");
 
   42        include_once(
"./Services/News/classes/class.ilNewsItem.php");
 
   47        $this->dynamic = 
false;
 
   49        include_once(
"./Services/News/classes/class.ilNewsCache.php");
 
   51        $cres = unserialize($this->acache->getEntry(
$ilUser->getId() . 
":0"));
 
   52        $this->cache_hit = 
false;
 
   53        if ($this->acache->getLastAccessStatus() == 
"hit" && is_array($cres)) {
 
   56            $this->cache_hit = 
true;
 
   59        if ($this->
getDynamic() && !$this->cache_hit) {
 
   60            $this->dynamic = 
true;
 
   66            if (empty(self::$st_data)) {
 
   77        $this->
setRowTemplate(
"tpl.block_row_news_for_context.html", 
"Services/News");
 
   84        $ilAccess->setResults($this->acc_results);
 
   94        include_once(
"./Services/News/classes/class.ilNewsCache.php");
 
  105        $this->acache->storeEntry(
 
  143        if ($cmd == 
"post" && is_array(
$_POST[
"cmd"])) {
 
  144            $cmd = array_pop(array_keys(
$_POST[
"cmd"]));
 
  151            case "changeFeedSettings":
 
  166        $next_class = 
$ilCtrl->getNextClass();
 
  167        $cmd = 
$ilCtrl->getCmd(
"getHTML");
 
  169        switch ($next_class) {
 
  171                return $this->$cmd();
 
  180        if ($this->dynamic) {
 
  183            parent::fillDataSection();
 
  186            if (count($this->
getData()) == 0) {
 
  206        $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
 
  207        $allow_shorter_periods = $news_set->get(
"allow_shorter_periods");
 
  208        $allow_longer_periods = $news_set->get(
"allow_longer_periods");
 
  209        $enable_private_feed = $news_set->get(
"enable_private_feed");
 
  212        include_once(
"./Services/News/classes/class.ilNewsSubscription.php");
 
  215        if ($enable_internal_rss) {
 
  216            include_once(
"./Services/News/classes/class.ilRSSButtonGUI.php");
 
  218                $ilCtrl->getLinkTarget($this, 
"showFeedUrl"),
 
  219                $lng->txt(
"news_get_feed_url"),
 
  228        if ($allow_shorter_periods || $allow_longer_periods || $enable_private_feed) {
 
  230                $ilCtrl->getLinkTarget($this, 
"editSettings"),
 
  231                $lng->txt(
"settings")
 
  241                case 5: $per_str = 
sprintf(
$lng->txt(
"news_period_x_days"), $per); 
break;
 
  242                case 7: $per_str = 
$lng->txt(
"news_period_1_week"); 
break;
 
  243                case 14: $per_str = 
sprintf(
$lng->txt(
"news_period_x_weeks"), 2); 
break;
 
  244                case 30: $per_str = 
$lng->txt(
"news_period_1_month"); 
break;
 
  245                case 60: $per_str = 
sprintf(
$lng->txt(
"news_period_x_months"), 2); 
break;
 
  246                case 120: $per_str = 
sprintf(
$lng->txt(
"news_period_x_months"), 4); 
break;
 
  247                case 180: $per_str = 
sprintf(
$lng->txt(
"news_period_x_months"), 6); 
break;
 
  248                case 366: $per_str = 
$lng->txt(
"news_period_1_year"); 
break;
 
  250            if ($per_str != 
"") {
 
  251                $this->
setTitle($this->
getTitle() . 
' <span style="font-weight:normal;">- ' . $per_str . 
"</span>");
 
  260        if (
$ilUser->getPref(
"il_feed_js") == 
"n") {
 
  281        include_once(
"./Services/News/classes/class.ilNewsItem.php");
 
  283        if ($news_set->get(
"enable_private_feed")) {
 
  284            $tpl = 
new ilTemplate(
"tpl.show_priv_feed_url.html", 
true, 
true, 
"Services/News");
 
  286            $tpl->setVariable(
"TXT_PRIV_TITLE", 
$lng->txt(
"news_get_priv_feed_title"));
 
  290                $tpl->setVariable(
"TXT_PRIV_INFO", 
$lng->txt(
"news_get_priv_feed_info"));
 
  291                $tpl->setVariable(
"TXT_PRIV_FEED_URL", 
$lng->txt(
"news_feed_url"));
 
  294                    str_replace(
"://", 
"://" . 
$ilUser->getLogin() . 
":-password-@", ILIAS_HTTP_PATH) . 
"/privfeed.php?client_id=" . rawurlencode(CLIENT_ID) . 
"&user_id=" . 
$ilUser->getId() .
 
  298                    "VAL_PRIV_FEED_URL_TXT",
 
  299                    str_replace(
"://", 
"://" . 
$ilUser->getLogin() . 
":-password-@", ILIAS_HTTP_PATH) . 
"/privfeed.php?client_id=" . rawurlencode(CLIENT_ID) . 
"&<br />user_id=" . 
$ilUser->getId() .
 
  303                $tpl->setVariable(
"TXT_PRIV_INFO", 
$lng->txt(
"news_inactive_private_feed_info"));
 
  304                $tpl->setVariable(
"EDIT_SETTINGS_URL", 
$ilCtrl->getLinkTarget($this, 
"editSettings"));
 
  305                $tpl->setVariable(
"EDIT_SETTINGS_TXT", 
$lng->txt(
"news_edit_news_settings"));
 
  308            $tpl = 
new ilTemplate(
"tpl.show_feed_url.html", 
true, 
true, 
"Services/News");
 
  310        $tpl->setVariable(
"TXT_TITLE", 
$lng->txt(
"news_get_feed_title"));
 
  311        $tpl->setVariable(
"TXT_INFO", 
$lng->txt(
"news_get_feed_info"));
 
  312        $tpl->setVariable(
"TXT_FEED_URL", 
$lng->txt(
"news_feed_url"));
 
  315            ILIAS_HTTP_PATH . 
"/feed.php?client_id=" . rawurlencode(CLIENT_ID) . 
"&user_id=" . 
$ilUser->getId() .
 
  320            ILIAS_HTTP_PATH . 
"/feed.php?client_id=" . rawurlencode(CLIENT_ID) . 
"&<br />user_id=" . 
$ilUser->getId() .
 
  324        include_once(
"./Services/PersonalDesktop/classes/class.ilPDContentBlockGUI.php");
 
  326        $content_block->setContent(
$tpl->get());
 
  327        $content_block->setTitle(
$lng->txt(
"news_internal_news"));
 
  328        $content_block->addHeaderCommand(
 
  329            $ilCtrl->getParentReturn($this),
 
  330            $lng->txt(
"selected_items_back")
 
  333        return $content_block->getHTML();
 
  341        $a_content_block->addHeaderCommand(
 
  342            $ilCtrl->getParentReturn($this),
 
  343            $lng->txt(
"selected_items_back")
 
  359        return parent::showNews();
 
  373        $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
 
  374        $allow_shorter_periods = $news_set->get(
"allow_shorter_periods");
 
  375        $allow_longer_periods = $news_set->get(
"allow_longer_periods");
 
  376        $enable_private_feed = $news_set->get(
"enable_private_feed");
 
  378        if (!$a_private_form && ($allow_shorter_periods || $allow_longer_periods)) {
 
  379            include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
  382            $form->setTitle(
$lng->txt(
"news_settings"));
 
  384            include_once(
"./Services/News/classes/class.ilNewsItem.php");
 
  388            $form->setTableWidth(
"100%");
 
  391                2 => 
"2 " . 
$lng->txt(
"days"),
 
  392                3 => 
"3 " . 
$lng->txt(
"days"),
 
  393                5 => 
"5 " . 
$lng->txt(
"days"),
 
  394                7 => 
"1 " . 
$lng->txt(
"week"),
 
  395                14 => 
"2 " . 
$lng->txt(
"weeks"),
 
  396                30 => 
"1 " . 
$lng->txt(
"month"),
 
  397                60 => 
"2 " . 
$lng->txt(
"months"),
 
  398                120 => 
"4 " . 
$lng->txt(
"months"),
 
  399                180 => 
"6 " . 
$lng->txt(
"months"),
 
  400                366 =>  
"1 " . 
$lng->txt(
"year"));
 
  403            foreach ($per_opts as $k => $opt) {
 
  404                if (!$allow_shorter_periods && ($k < $default_per)) {
 
  407                if (!$allow_longer_periods && ($k > $default_per)) {
 
  411            foreach ($unset as $k) {
 
  412                unset($per_opts[$k]);
 
  416                $lng->txt(
"news_pd_period"),
 
  420            $per_sel->setOptions($per_opts);
 
  421            $per_sel->setValue((
int) $per);
 
  422            $form->addItem($per_sel);
 
  431            $form->addCommandButton(
"saveSettings", 
$lng->txt(
"save"));
 
  432            $form->addCommandButton(
"cancelSettings", 
$lng->txt(
"cancel"));
 
  434            $returnForm = 
$form->getHTML();
 
  437        if ($enable_private_feed) {
 
  438            if (!$a_private_form) {
 
  441            $returnForm .= ($returnForm==
"")
 
  442                ? $a_private_form->getHTML()
 
  443                : 
"<br>" . $a_private_form->getHTML();
 
  455        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
  457        $feed_form->setFormAction(
$ilCtrl->getFormaction($this));
 
  458        $feed_form->setTitle(
$lng->txt(
"priv_feed_settings"));
 
  460        $feed_form->setTableWidth(
"100%");
 
  462        $enable_private_feed = 
new ilCheckboxInputGUI(
$lng->txt(
"news_enable_private_feed"), 
"enable_private_feed");
 
  463        $enable_private_feed->setChecked(
$ilUser->_getFeedPass(
$ilUser->getId()));
 
  464        $feed_form->addItem($enable_private_feed);
 
  467        $passwd->setRequired(
true);
 
  469        $enable_private_feed->addSubItem($passwd);
 
  471        $feed_form->addCommandButton(
"changeFeedSettings", 
$lng->txt(
"save"));
 
  472        $feed_form->addCommandButton(
"cancelSettings", 
$lng->txt(
"cancel"));
 
  484        $ilCtrl->returnToParent($this);
 
  496        $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
 
  506        include_once(
"./Services/News/classes/class.ilNewsCache.php");
 
  508        $cache->deleteEntry(
$ilUser->getId() . 
":0");
 
  510        $ilCtrl->returnToParent($this);
 
  523        if (
$form->checkInput()) {
 
  525            if (!
$form->getInput(
"enable_private_feed")) {
 
  529                $ilCtrl->redirect($this, 
"showFeedUrl");
 
  531                $passwd = 
$form->getInput(
"desired_password");
 
  532                require_once 
'Services/User/classes/class.ilUserPasswordManager.php';
 
  534                    $form->getItemByPostVar(
"desired_password")->setAlert(
$lng->txt(
"passwd_equals_ilpasswd"));
 
  540                    $ilCtrl->redirect($this, 
"showFeedUrl");
 
  545        $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.
setTitle($a_title)
Set Title.
setEnableNumInfo($a_enablenuminfo)
Set Enable Item Number Info.
addBlockCommand( $a_href, $a_text, $a_target="", $a_img="", $a_right_aligned=false, $a_checked=false, $a_html="")
Add Block Command.
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 prepareNewsDataFromCache($a_cres)
Prepare news data from cache.
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 _lookupUserPDPeriod($a_user_id)
static _lookupDefaultPDPeriod()
static _lookupFeedHash($a_user_id, $a_create=false)
Lookup news feed hash for user.
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()
infotext for ilPasswordInputGUI setInfo()
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
if(isset($_POST['submit'])) $form