4 include_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))
73 $data = self::$st_data;
77 $data = 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",
129 return self::$block_type;
160 case "changeFeedSettings":
175 $next_class = $ilCtrl->getNextClass();
176 $cmd = $ilCtrl->getCmd(
"getHTML");
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"));
305 if($ilUser->_getFeedPass(
$GLOBALS[
'DIC'][
'ilUser']->getId()))
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]);
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);
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");
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"))
523 $ilUser->_setFeedPass($ilUser->getId(),
"");
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"));
539 $ilUser->_setFeedPass($ilUser->getId(), $passwd);
542 $ilCtrl->redirect($this,
"showFeedUrl");
547 $form->setValuesByPost();
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
initPrivateSettingsForm()
__construct()
Constructor.
fillDataSection()
Fill data section.
static _write($a_type, $a_setting, $a_value, $a_user=0, $a_block_id=0)
Write setting to database.
getOverview()
Get overview.
handleView()
Handles show/hide notification view and removes notifications if hidden.
setDataSection($a_content)
Call this from overwritten fillDataSection(), if standard row based data is not used.
setFooterInfo($a_footerinfo, $a_hide_and_icon=false)
Set Footer Info.
static _lookupUserPDPeriod($a_user_id)
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
addBlockCommand($a_href, $a_text, $a_target="", $a_img="", $a_right_aligned=false, $a_checked=false, $a_html="")
Add Block Command.
editSettings()
Show settings screen.
setEnableNumInfo($a_enablenuminfo)
Set Enable Item Number Info.
BlockGUI class for block NewsForContext.
static prepareNewsDataFromCache($a_cres)
Prepare news data from cache.
editSettings(ilPropertyFormGUI $a_private_form=null)
Show settings screen.
static getPasswordRequirementsInfo()
infotext for ilPasswordInputGUI setInfo()
static getScreenMode()
Get Screen Mode for current command.
showFeedUrl()
Show feed URL.
saveSettings()
Save settings.
setTitle($a_title)
Set Title.
setData($a_data)
Set Data.
special template class to simplify handling of ITX/PEAR
setAvailableDetailLevels($a_max, $a_min=0)
Set Available Detail Levels.
cancelSettings()
Cancel settings.
Create styles array
The data for the language used.
__construct()
Constructor.
getHTML()
Handle config status.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
getNewsData()
Get news for context.
addCloseCommand($a_content_block)
setLimit($a_limit)
Set Limit.
static isRepositoryObject()
Is block used in repository object?
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 getBlockType()
Get block type.
BlockGUI class for (centered) Content on Personal Desktop.
changeFeedSettings()
change user password
BlockGUI class for block NewsForContext.
executeCommand()
execute command
setRowTemplate($a_rowtemplatename, $a_rowtemplatedir="")
Set Row Template Name.
setEnableDetailRow($a_enabledetailrow)
Set EnableDetailRow.
static getInstance()
Single method to reduce footprint (included files, created instances)
static _lookupDefaultPDPeriod()
getCurrentDetailLevel()
Get Current Detail Level.
getHTML()
Get bloch HTML code.