4 include_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();
34 $lng = $DIC->language();
36 $ilAccess = $DIC->access();
37 $this->obj_definition = $DIC[
"objDefinition"];
38 $this->ui = $DIC->ui();
43 $lng->loadLanguageModule(
"news");
44 include_once(
"./Services/News/classes/class.ilNewsItem.php");
49 $this->dynamic =
false;
51 include_once(
"./Services/News/classes/class.ilNewsCache.php");
53 $cres = unserialize($this->acache->getEntry(
$ilUser->getId() .
":0"));
54 $this->cache_hit =
false;
55 if ($this->acache->getLastAccessStatus() ==
"hit" && is_array($cres)) {
58 $this->cache_hit =
true;
61 if ($this->
getDynamic() && !$this->cache_hit) {
62 $this->dynamic =
true;
68 if (empty(self::$st_data)) {
70 $data = self::$st_data;
72 $data = self::$st_data;
79 $this->
setRowTemplate(
"tpl.block_row_news_for_context.html",
"Services/News");
86 $ilAccess->setResults($this->acc_results);
96 include_once(
"./Services/News/classes/class.ilNewsCache.php");
107 $this->acache->storeEntry(
120 return self::$block_type;
141 if ($cmd ==
"post" && is_array(
$_POST[
"cmd"])) {
142 $cmd = array_pop(array_keys(
$_POST[
"cmd"]));
149 case "changeFeedSettings":
164 $next_class =
$ilCtrl->getNextClass();
165 $cmd =
$ilCtrl->getCmd(
"getHTML");
167 switch ($next_class) {
169 return $this->$cmd();
178 if ($this->dynamic) {
181 parent::fillDataSection();
184 if (count($this->
getData()) == 0) {
204 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
205 $allow_shorter_periods = $news_set->get(
"allow_shorter_periods");
206 $allow_longer_periods = $news_set->get(
"allow_longer_periods");
207 $enable_private_feed = $news_set->get(
"enable_private_feed");
210 include_once(
"./Services/News/classes/class.ilNewsSubscription.php");
213 if ($enable_internal_rss) {
214 include_once(
"./Services/News/classes/class.ilRSSButtonGUI.php");
216 $ilCtrl->getLinkTarget($this,
"showFeedUrl"),
217 $lng->txt(
"news_get_feed_url"),
226 if ($allow_shorter_periods || $allow_longer_periods || $enable_private_feed) {
228 $ilCtrl->getLinkTarget($this,
"editSettings"),
229 $lng->txt(
"settings")
239 case 5: $per_str = sprintf(
$lng->txt(
"news_period_x_days"), $per);
break;
240 case 7: $per_str =
$lng->txt(
"news_period_1_week");
break;
241 case 14: $per_str = sprintf(
$lng->txt(
"news_period_x_weeks"), 2);
break;
242 case 30: $per_str =
$lng->txt(
"news_period_1_month");
break;
243 case 60: $per_str = sprintf(
$lng->txt(
"news_period_x_months"), 2);
break;
244 case 120: $per_str = sprintf(
$lng->txt(
"news_period_x_months"), 4);
break;
245 case 180: $per_str = sprintf(
$lng->txt(
"news_period_x_months"), 6);
break;
246 case 366: $per_str =
$lng->txt(
"news_period_1_year");
break;
248 if ($per_str !=
"") {
249 $this->
setTitle($this->
getTitle() .
' <span style="font-weight:normal;">- ' . $per_str .
"</span>");
258 if (
$ilUser->getPref(
"il_feed_js") ==
"n") {
279 include_once(
"./Services/News/classes/class.ilNewsItem.php");
281 if ($news_set->get(
"enable_private_feed")) {
282 $tpl =
new ilTemplate(
"tpl.show_priv_feed_url.html",
true,
true,
"Services/News");
284 $tpl->setVariable(
"TXT_PRIV_TITLE",
$lng->txt(
"news_get_priv_feed_title"));
288 $tpl->setVariable(
"TXT_PRIV_INFO",
$lng->txt(
"news_get_priv_feed_info"));
289 $tpl->setVariable(
"TXT_PRIV_FEED_URL",
$lng->txt(
"news_feed_url"));
292 str_replace(
"://",
"://" .
$ilUser->getLogin() .
":-password-@", ILIAS_HTTP_PATH) .
"/privfeed.php?client_id=" . rawurlencode(CLIENT_ID) .
"&user_id=" .
$ilUser->getId() .
296 "VAL_PRIV_FEED_URL_TXT",
297 str_replace(
"://",
"://" .
$ilUser->getLogin() .
":-password-@", ILIAS_HTTP_PATH) .
"/privfeed.php?client_id=" . rawurlencode(CLIENT_ID) .
"&<br />user_id=" .
$ilUser->getId() .
301 $tpl->setVariable(
"TXT_PRIV_INFO",
$lng->txt(
"news_inactive_private_feed_info"));
302 $tpl->setVariable(
"EDIT_SETTINGS_URL",
$ilCtrl->getLinkTarget($this,
"editSettings"));
303 $tpl->setVariable(
"EDIT_SETTINGS_TXT",
$lng->txt(
"news_edit_news_settings"));
306 $tpl =
new ilTemplate(
"tpl.show_feed_url.html",
true,
true,
"Services/News");
308 $tpl->setVariable(
"TXT_TITLE",
$lng->txt(
"news_get_feed_title"));
309 $tpl->setVariable(
"TXT_INFO",
$lng->txt(
"news_get_feed_info"));
310 $tpl->setVariable(
"TXT_FEED_URL",
$lng->txt(
"news_feed_url"));
313 ILIAS_HTTP_PATH .
"/feed.php?client_id=" . rawurlencode(CLIENT_ID) .
"&user_id=" .
$ilUser->getId() .
318 ILIAS_HTTP_PATH .
"/feed.php?client_id=" . rawurlencode(CLIENT_ID) .
"&<br />user_id=" .
$ilUser->getId() .
322 include_once(
"./Services/PersonalDesktop/classes/class.ilPDContentBlockGUI.php");
324 $content_block->setContent(
$tpl->get());
325 $content_block->setTitle(
$lng->txt(
"news_internal_news"));
326 $content_block->addHeaderCommand(
327 $ilCtrl->getParentReturn($this),
328 $lng->txt(
"selected_items_back")
331 return $content_block->getHTML();
339 $a_content_block->addHeaderCommand(
340 $ilCtrl->getParentReturn($this),
341 $lng->txt(
"selected_items_back")
357 return parent::showNews();
371 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
372 $allow_shorter_periods = $news_set->get(
"allow_shorter_periods");
373 $allow_longer_periods = $news_set->get(
"allow_longer_periods");
374 $enable_private_feed = $news_set->get(
"enable_private_feed");
376 if (!$a_private_form && ($allow_shorter_periods || $allow_longer_periods)) {
377 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
380 $form->setTitle(
$lng->txt(
"news_settings"));
382 include_once(
"./Services/News/classes/class.ilNewsItem.php");
386 $form->setTableWidth(
"100%");
389 2 =>
"2 " .
$lng->txt(
"days"),
390 3 =>
"3 " .
$lng->txt(
"days"),
391 5 =>
"5 " .
$lng->txt(
"days"),
392 7 =>
"1 " .
$lng->txt(
"week"),
393 14 =>
"2 " .
$lng->txt(
"weeks"),
394 30 =>
"1 " .
$lng->txt(
"month"),
395 60 =>
"2 " .
$lng->txt(
"months"),
396 120 =>
"4 " .
$lng->txt(
"months"),
397 180 =>
"6 " .
$lng->txt(
"months"),
398 366 =>
"1 " .
$lng->txt(
"year"));
401 foreach ($per_opts as $k => $opt) {
402 if (!$allow_shorter_periods && ($k < $default_per)) {
405 if (!$allow_longer_periods && ($k > $default_per)) {
409 foreach ($unset as $k) {
410 unset($per_opts[$k]);
414 $lng->txt(
"news_pd_period"),
419 $per_sel->setValue((
int) $per);
420 $form->addItem($per_sel);
429 $form->addCommandButton(
"saveSettings",
$lng->txt(
"save"));
430 $form->addCommandButton(
"cancelSettings",
$lng->txt(
"cancel"));
432 $returnForm =
$form->getHTML();
435 if ($enable_private_feed) {
436 if (!$a_private_form) {
439 $returnForm .= ($returnForm ==
"")
440 ? $a_private_form->getHTML()
441 :
"<br>" . $a_private_form->getHTML();
453 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
455 $feed_form->setFormAction(
$ilCtrl->getFormaction($this));
456 $feed_form->setTitle(
$lng->txt(
"priv_feed_settings"));
458 $feed_form->setTableWidth(
"100%");
460 $enable_private_feed =
new ilCheckboxInputGUI(
$lng->txt(
"news_enable_private_feed"),
"enable_private_feed");
462 $feed_form->addItem($enable_private_feed);
467 $enable_private_feed->addSubItem($passwd);
469 $feed_form->addCommandButton(
"changeFeedSettings",
$lng->txt(
"save"));
470 $feed_form->addCommandButton(
"cancelSettings",
$lng->txt(
"cancel"));
482 $ilCtrl->returnToParent($this);
494 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
504 include_once(
"./Services/News/classes/class.ilNewsCache.php");
506 $cache->deleteEntry(
$ilUser->getId() .
":0");
508 $ilCtrl->returnToParent($this);
521 if (
$form->checkInput()) {
523 if (!
$form->getInput(
"enable_private_feed")) {
525 ilUtil::sendSuccess(
$lng->txt(
"priv_feed_disabled"),
true);
527 $ilCtrl->redirect($this,
"showFeedUrl");
529 $passwd =
$form->getInput(
"desired_password");
530 require_once
'Services/User/classes/class.ilUserPasswordManager.php';
532 $form->getItemByPostVar(
"desired_password")->setAlert(
$lng->txt(
"passwd_equals_ilpasswd"));
536 ilUtil::sendSuccess(
$lng->txt(
"saved_successfully"),
true);
538 $ilCtrl->redirect($this,
"showFeedUrl");
543 $form->setValuesByPost();
initPrivateSettingsForm()
__construct()
Constructor.
fillDataSection()
Fill data section.
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 _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)
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.
if(isset($_POST['submit'])) $form
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.
__construct()
Constructor.
getHTML()
Handle config status.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
getNewsData()
Get news for context.
addBlockCommand( $a_href, $a_text, $a_target="", $a_img="", $a_right_aligned=false, $a_checked=false, $a_html="")
Add Block Command.
addCloseCommand($a_content_block)
setLimit($a_limit)
Set Limit.
static _lookupFeedHash($a_user_id, $a_create=false)
Lookup news feed hash for user.
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()
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
getCurrentDetailLevel()
Get Current Detail Level.
getHTML()
Get bloch HTML code.