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.