5 include_once(
"Services/Block/classes/class.ilBlockGUI.php");
52 $this->ctrl = $DIC->ctrl();
53 $this->lng = $DIC->language();
54 $this->
user = $DIC->user();
55 $this->
help = $DIC[
"ilHelp"];
56 $this->access = $DIC->access();
58 $this->tabs = $DIC->tabs();
59 $this->obj_definition = $DIC[
"objDefinition"];
61 $ilCtrl = $DIC->ctrl();
62 $lng = $DIC->language();
64 $ilHelp = $DIC[
"ilHelp"];
68 $lng->loadLanguageModule(
"news");
69 $ilHelp->addHelpSection(
"news_block");
71 include_once(
"./Services/News/classes/class.ilNewsItem.php");
76 $this->dynamic =
false;
77 include_once(
"./Services/News/classes/class.ilNewsCache.php");
79 $cres = unserialize($this->acache->getEntry(
$ilUser->getId() .
":" .
$_GET[
"ref_id"]));
80 $this->cache_hit =
false;
82 if ($this->acache->getLastAccessStatus() ==
"hit" && is_array($cres)) {
84 $this->cache_hit =
true;
86 if ($this->
getDynamic() && !$this->cache_hit) {
87 $this->dynamic =
true;
90 if (!empty(self::$st_data)) {
91 $data = self::$st_data;
94 self::$st_data =
$data;
99 $this->
setRowTemplate(
"tpl.block_row_news_for_context.html",
"Services/News");
101 $this->allow_moving =
false;
115 include_once(
"./Services/News/classes/class.ilNewsCache.php");
125 $news_item->setContextObjId($ilCtrl->getContextObjId());
126 $news_item->setContextObjType($ilCtrl->getContextObjType());
130 $prevent_aggregation =
true;
131 if ($ilCtrl->getContextObjType() !=
"frm") {
132 $forum_grouping =
true;
134 $forum_grouping =
false;
138 $news_data = $news_item->getNewsForRefId(
143 $prevent_aggregation,
147 $this->acache->storeEntry(
149 serialize($news_data)
162 return self::$block_type;
180 $ilCtrl = $DIC->ctrl();
182 if ($ilCtrl->getCmdClass() ==
"ilnewsitemgui") {
186 switch ($ilCtrl->getCmd()) {
210 $next_class = $ilCtrl->getNextClass();
211 $cmd = $ilCtrl->getCmd(
"getHTML");
213 switch ($next_class) {
214 case "ilnewsitemgui":
215 include_once(
"./Services/News/classes/class.ilNewsItemGUI.php");
218 $html = $ilCtrl->forwardCommand($news_item_gui);
222 return $this->$cmd();
233 $this->enable_edit = $a_enable_edit;
243 return $this->enable_edit;
251 if ($this->dynamic) {
253 } elseif (count($this->
getData()) > 0) {
254 parent::fillDataSection();
272 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
292 if ($enable_internal_rss) {
293 include_once(
"./Services/News/classes/class.ilRSSButtonGUI.php");
296 ILIAS_HTTP_PATH .
"/feed.php?client_id=" . rawurlencode(
CLIENT_ID) .
"&" .
297 "ref_id=" .
$_GET[
"ref_id"],
298 $lng->txt(
"news_feed_url")
306 $ilCtrl->getLinkTargetByClass(
"ilnewsitemgui",
"editNews"),
310 $ilCtrl->setParameter($this,
"add_mode",
"block");
312 $ilCtrl->getLinkTargetByClass(
"ilnewsitemgui",
"createNewsItem"),
315 $ilCtrl->setParameter($this,
"add_mode",
"");
319 $ref_id =
$_GET[
"ref_id"];
323 $obj_class = strtolower(
$obj_def->getClassName($obj_type));
324 $parent_gui =
"ilobj" . $obj_class .
"gui";
326 $ilCtrl->setParameterByClass(
"ilcontainernewssettingsgui",
"ref_id", $ref_id);
330 $ilCtrl->getLinkTargetByClass(array(
"ilrepositorygui", $parent_gui,
"ilcontainernewssettingsgui"),
"show"),
331 $lng->txt(
"settings")
335 $ilCtrl->getLinkTarget($this,
"editSettings"),
336 $lng->txt(
"settings")
357 && (!$news_set->get(
"enable_rss_for_internal") ||
368 if (
$ilUser->getPref(
"il_feed_js") ==
"n") {
372 return parent::getHTML() . $en;
382 include_once(
"Services/Block/classes/class.ilBlockSetting.php");
391 $got_notices = $got_messages =
false;
392 foreach ($this->data as $row) {
393 if ($row[
"priority"] == 0) {
396 if ($row[
"priority"] == 1) {
397 $got_messages =
true;
400 $this->show_view_selection =
false;
402 if ($got_notices && $got_messages) {
403 $this->show_view_selection =
true;
404 } elseif ($got_notices) {
432 $this->tpl->setCurrentBlock(
"long");
433 $this->tpl->setVariable(
"VAL_CREATION_DATE", $info[
"creation_date"]);
434 $this->tpl->parseCurrentBlock();
436 if ($info[
"ref_id"] > 0) {
437 $this->tpl->setCurrentBlock(
"news_context");
438 $this->tpl->setVariable(
"TYPE", $info[
"type_txt"]);
439 $this->tpl->setVariable(
"IMG_TYPE", $info[
"type_icon"]);
440 $this->tpl->setVariable(
"TITLE", $info[
"obj_title"]);
441 if ($info[
"user_read"] > 0) {
442 $this->tpl->setVariable(
"TITLE_CLASS",
'class="light"');
445 $this->tpl->parseCurrentBlock();
449 $this->tpl->setVariable(
"VAL_TITLE", $info[
"news_title"]);
451 if ($info[
"user_read"] > 0) {
452 $this->tpl->setVariable(
"A_CLASS",
'class="light"');
455 $this->tpl->setVariable(
"HREF_SHOW", $info[
"url"]);
466 $info[
"ref_id"] = $news[
"ref_id"];
467 $info[
"creation_date"] =
471 if ($news[
"ref_id"] > 0) {
472 if ($news[
"agg_ref_id"] > 0) {
475 $context_ref = $news[
"agg_ref_id"];
477 $obj_id = $news[
"context_obj_id"];
478 $type = $news[
"context_obj_type"];
479 $context_ref = $news[
"ref_id"];
482 $lang_type = in_array(
$type, array(
"sahs",
"lm",
"htlm"))
488 :
$lng->txt($lang_type);
491 $info[
"type_txt"] = $type_txt;
494 $info[
"user_read"] = $news[
"user_read"];
496 $ilCtrl->setParameter($this,
"news_context", $context_ref);
498 $ilCtrl->setParameter($this,
"news_context",
"");
502 $info[
"news_title"] =
504 $news[
"context_obj_type"],
506 $news[
"content_is_lang_var"],
512 $ilCtrl->setParameter($this,
"news_id", $news[
"id"]);
514 $ilCtrl->getLinkTarget($this,
"showNews");
515 $ilCtrl->clearParameters($this);
529 return '<div class="small">' . ((int) count($this->
getData())) .
" " .
$lng->txt(
"news_news_items") .
"</div>";
543 if (empty(self::$st_data)) {
548 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
550 include_once(
"./Services/News/classes/class.ilNewsItem.php");
553 $tpl =
new ilTemplate(
"tpl.show_news.html",
true,
true,
"Services/News");
556 $previous = $next =
"";
558 $c = current($this->data);
561 while (
$c[
"id"] > 0 &&
562 $c[
"id"] != $_GET[
"news_id"]) {
564 $c = next($this->data);
568 if (!is_array(
$c) && is_object($news) && $news->getId() > 0
570 throw new ilException(
"News ID does not match object context.");
575 $news_list = array();
576 if (is_array(
$c[
"aggregation"])) {
577 $news_list[] = array(
"ref_id" =>
$c[
"agg_ref_id"],
578 "agg_ref_id" =>
$c[
"agg_ref_id"],
579 "aggregation" =>
$c[
"aggregation"],
581 "content_type" =>
"text",
585 "content_long" =>
"",
586 "update_date" => $news->getUpdateDate(),
587 "creation_date" =>
"",
588 "content_is_lang_var" =>
false,
589 "loc_context" => $_GET[
"news_context"],
590 "context_obj_type" => $news->getContextObjType(),
593 foreach (
$c[
"aggregation"] as $c_item) {
595 $c_item[
"loc_context"] = $c_item[
"ref_id"];
596 $c_item[
"loc_stop"] = $_GET[
"news_context"];
597 $news_list[] = $c_item;
600 $news_list[] = array(
601 "id" => $news->getId(),
602 "ref_id" => $_GET[
"news_context"],
603 "user_id" => $news->getUserId(),
604 "content_type" => $news->getContentType(),
605 "mob_id" => $news->getMobId(),
606 "visibility" => $news->getVisibility(),
607 "priority" => $news->getPriority(),
608 "content" => $news->getContent(),
609 "content_long" => $news->getContentLong(),
610 "update_date" => $news->getUpdateDate(),
611 "creation_date" => $news->getCreationDate(),
612 "context_sub_obj_type" => $news->getContextSubObjType(),
613 "context_obj_type" => $news->getContextObjType(),
614 "context_sub_obj_id" => $news->getContextSubObjId(),
615 "content_is_lang_var" => $news->getContentIsLangVar(),
616 "content_text_is_lang_var" => $news->getContentTextIsLangVar(),
617 "loc_context" => $_GET[
"news_context"],
618 "title" => $news->getTitle());
623 $cache_deleted =
false;
624 foreach ($news_list as $item) {
625 $row_css = ($row_css !=
"tblrow1")
629 if ($item[
"ref_id"] > 0 && !$ilAccess->checkAccess(
"read",
"", $item[
"ref_id"])) {
630 $tpl->setCurrentBlock(
"content");
631 $tpl->setVariable(
"VAL_CONTENT",
$lng->txt(
"news_sorry_not_accessible_anymore"));
632 $tpl->parseCurrentBlock();
633 $tpl->setCurrentBlock(
"item");
634 $tpl->setVariable(
"ITEM_ROW_CSS", $row_css);
635 $tpl->parseCurrentBlock();
636 if (!$cache_deleted) {
637 $this->acache->deleteEntry(
$ilUser->getId() .
":" . $_GET[
"ref_id"]);
638 $cache_deleted =
true;
648 $displayname =
$user->getLogin();
652 $displayname =
"<" . strtolower(
$lng->txt(
"deleted")) .
">";
655 $tpl->setCurrentBlock(
"user_info");
656 $tpl->setVariable(
"VAL_AUTHOR", $displayname);
657 $tpl->setVariable(
"TXT_AUTHOR",
$lng->txt(
"author"));
658 $tpl->parseCurrentBlock();
662 $ui_renderer = $this->
ui->renderer();
663 $ui_factory = $this->
ui->factory();
664 $this->
ui->factory();
668 if (in_array($mime, array(
"image/jpeg",
"image/svg+xml",
"image/gif",
"image/png"))) {
669 $title = basename($media_path);
670 $html = $ui_renderer->render($ui_factory->image()->responsive($media_path,
$title));
671 } elseif (in_array($mime, array(
"audio/mpeg",
"audio/ogg",
"video/mp4",
"video/x-flv",
"video/webm"))) {
673 $mp->setFile($media_path);
674 $mp->setDisplayHeight(200);
675 $html = $mp->getMediaPlayerHtml();
682 $tpl->setCurrentBlock(
"player");
687 $tpl->parseCurrentBlock();
691 if ($enable_internal_rss && $item[
"visibility"] !=
"") {
693 $tpl->setCurrentBlock(
"access");
694 $tpl->setVariable(
"TXT_ACCESS",
$lng->txt(
"news_news_item_visibility"));
696 ($item[
"priority"] == 0 &&
699 "public_notifications",
703 $tpl->setVariable(
"VAL_ACCESS",
$lng->txt(
"news_visibility_public"));
705 $tpl->setVariable(
"VAL_ACCESS",
$lng->txt(
"news_visibility_users"));
707 $tpl->parseCurrentBlock();
711 include_once(
"./Services/News/classes/class.ilNewsRendererFactory.php");
713 if (trim($item[
"content"]) !=
"") {
715 $renderer->setNewsItem($it, $item[
"ref_id"]);
716 $tpl->setCurrentBlock(
"content");
717 $tpl->setVariable(
"VAL_CONTENT", $renderer->getDetailContent());
718 $tpl->parseCurrentBlock();
720 if ($item[
"update_date"] != $item[
"creation_date"]) {
721 $tpl->setCurrentBlock(
"ni_update");
722 $tpl->setVariable(
"TXT_LAST_UPDATE",
$lng->txt(
"last_update"));
727 $tpl->parseCurrentBlock();
731 if ($item[
"creation_date"] !=
"") {
732 $tpl->setCurrentBlock(
"ni_update");
737 $tpl->setVariable(
"TXT_CREATED",
$lng->txt(
"created"));
738 $tpl->parseCurrentBlock();
743 if ($_GET[
"news_context"] > 0) {
750 if ($obj_type ==
"file") {
751 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id", $item[
"ref_id"]);
752 $url = $ilCtrl->getLinkTargetByClass(
"ilrepositorygui",
"sendfile");
753 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id", $_GET[
"ref_id"]);
755 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
757 $button->setUrl(
$url);
758 $button->setCaption(
"download");
760 $tpl->setCurrentBlock(
"download");
761 $tpl->setVariable(
"BUTTON_DOWNLOAD", $button->render());
762 $tpl->parseCurrentBlock();
767 if ($obj_type ==
"frm" && $item[
"context_sub_obj_type"] ==
"pos" 768 && $item[
"context_sub_obj_id"] > 0) {
769 include_once(
"./Modules/Forum/classes/class.ilObjForumAccess.php");
770 $pos = $item[
"context_sub_obj_id"];
773 $add =
"_" . $thread .
"_" . $pos;
778 if ($obj_type ==
"wiki" && $item[
"context_sub_obj_type"] ==
"wpg" 779 && $item[
"context_sub_obj_id"] > 0) {
780 include_once(
"./Modules/Wiki/classes/class.ilWikiPage.php");
782 if ($wptitle !=
"") {
787 $url_target =
"./goto.php?client_id=" . rawurlencode(
CLIENT_ID) .
"&target=" .
788 $obj_type .
"_" . $item[
"ref_id"] . $add;
791 if (in_array($obj_type, array(
"lm")) && $item[
"context_sub_obj_type"] ==
"pg" 792 && $item[
"context_sub_obj_id"] > 0) {
793 $url_target =
"./goto.php?client_id=" . rawurlencode(
CLIENT_ID) .
"&target=" .
794 "pg_" . $item[
"context_sub_obj_id"] .
"_" . $item[
"ref_id"];
798 if ($obj_type ==
"blog" && $item[
"context_sub_obj_type"] ==
"blp" 799 && $item[
"context_sub_obj_id"] > 0) {
800 $url_target =
"./goto.php?client_id=" . rawurlencode(
CLIENT_ID) .
"&target=" .
801 "blog_" . $item[
"ref_id"] .
"_" . $item[
"context_sub_obj_id"];
804 $context_opened =
false;
805 if ($item[
"loc_context"] != null && $item[
"loc_context"] != $item[
"loc_stop"]) {
806 $tpl->setCurrentBlock(
"context");
807 $context_opened =
true;
809 $cont_loc->addContextItems($item[
"loc_context"],
true, $item[
"loc_stop"]);
810 $tpl->setVariable(
"CONTEXT_LOCATOR", $cont_loc->getHTML());
814 if ($item[
"no_context_title"] !==
true) {
815 if (!$context_opened) {
816 $tpl->setCurrentBlock(
"context");
818 $tpl->setVariable(
"HREF_CONTEXT_TITLE", $url_target);
819 $tpl->setVariable(
"CONTEXT_TITLE", $obj_title);
822 if ($context_opened) {
823 $tpl->parseCurrentBlock();
826 $tpl->setVariable(
"HREF_TITLE", $url_target);
833 $item[
"context_obj_type"],
835 $item[
"content_is_lang_var"],
842 $tpl->setCurrentBlock(
"item");
843 $tpl->setVariable(
"ITEM_ROW_CSS", $row_css);
844 $tpl->parseCurrentBlock();
848 $content_block->setContent(
$tpl->get());
850 $content_block->setTitle($this->
getProperty(
"title"));
852 $content_block->setTitle(
$lng->txt(
"news_internal_news"));
856 if ($previous !=
"") {
857 if ($previous[
"ref_id"] > 0) {
858 $ilCtrl->setParameter($this,
"news_context", $previous[
"ref_id"]);
860 $ilCtrl->setParameter($this,
"news_id", $previous[
"id"]);
862 $content_block->addBlockCommand($ilCtrl->getLinkTarget($this,
"showNews"),
$lng->txt(
"previous"));
863 $ilCtrl->setParameter($this,
"news_context",
"");
867 if (
$c = next($this->data)) {
868 if (
$c[
"ref_id"] > 0) {
869 $ilCtrl->setParameter($this,
"news_context",
$c[
"ref_id"]);
871 $ilCtrl->setParameter($this,
"news_id",
$c[
"id"]);
873 $content_block->addBlockCommand($ilCtrl->getLinkTarget($this,
"showNews"),
$lng->txt(
"next"));
875 $ilCtrl->setParameter($this,
"news_context",
"");
876 $ilCtrl->setParameter($this,
"news_id",
"");
877 $content_block->setCurrentItemNumber($curr_cnt);
878 $content_block->setEnableNumInfo(
true);
879 $content_block->setData($this->
getData());
881 return $content_block->getHTML();
893 $med = $mob->getMediaItem(
"Standard");
894 if (strcasecmp(
"Reference", $med->getLocationType()) == 0) {
895 $media_path = $med->getLocation();
913 if (is_int(strpos($a_str,
">")) && is_int(strpos($a_str,
"<"))) {
929 include_once(
"./Services/News/classes/class.ilNewsSubscription.php");
931 $ilCtrl->returnToParent($this);
942 include_once(
"./Services/News/classes/class.ilNewsSubscription.php");
944 $ilCtrl->returnToParent($this);
953 include_once(
"Services/Block/classes/class.ilBlockSetting.php");
967 if ($ilCtrl->isAsynch()) {
971 $ilCtrl->returnToParent($this);
980 include_once(
"Services/Block/classes/class.ilBlockSetting.php");
984 "hide_notifications",
994 if ($ilCtrl->isAsynch()) {
998 $ilCtrl->returnToParent($this);
1008 return $this->settings_form->getHTML();
1022 $ilTabs->clearTargets();
1025 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
1029 "public_notifications",
1047 "hide_news_per_date",
1058 if ($hide_news_date !=
"") {
1059 $hide_news_date = explode(
" ", $hide_news_date);
1062 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
1064 $this->settings_form->setTitle(
$lng->txt(
"news_settings"));
1067 if ($this->
getProperty(
"hide_news_block_option")) {
1069 $lng->txt(
"news_hide_news_block"),
1072 $ch->
setInfo(
$lng->txt(
"news_hide_news_block_info"));
1073 $ch->setChecked($hide_block);
1074 $this->settings_form->addItem($ch);
1077 $lng->txt(
"news_hide_news_per_date"),
1078 "hide_news_per_date" 1080 $hnpd->
setInfo(
$lng->txt(
"news_hide_news_per_date_info"));
1081 $hnpd->setChecked($hide_news_per_date);
1084 $lng->txt(
"news_hide_news_date"),
1088 if ($hide_news_date !=
"") {
1091 #$dt_prop->setDate($hide_news_date[0]); 1092 #$dt_prop->setTime($hide_news_date[1]); 1093 $dt_prop->setShowTime(
true);
1095 $hnpd->addSubItem($dt_prop);
1097 $this->settings_form->addItem($hnpd);
1101 if ($this->
getProperty(
"default_visibility_option") &&
1102 $enable_internal_rss) {
1105 "default_visibility",
1109 if ($default_visibility ==
"") {
1110 $default_visibility =
1117 $radio_group->addOption($radio_option);
1118 $radio_option =
new ilRadioOption(
$lng->txt(
"news_visibility_public"),
"public");
1119 $radio_group->addOption($radio_option);
1120 $radio_group->
setInfo(
$lng->txt(
"news_news_item_visibility_info"));
1121 $radio_group->setRequired(
false);
1122 $radio_group->setValue($default_visibility);
1123 $this->settings_form->addItem($radio_group);
1127 if ($this->
getProperty(
"public_notifications_option") &&
1128 $enable_internal_rss) {
1130 $lng->txt(
"news_notifications_public"),
1131 "notifications_public" 1133 $ch->
setInfo(
$lng->txt(
"news_notifications_public_info"));
1134 $ch->setChecked($public);
1135 $this->settings_form->addItem($ch);
1139 if ($enable_internal_rss) {
1141 $lng->txt(
"news_public_feed"),
1142 "notifications_public_feed" 1145 $ch->setChecked($public_feed);
1146 $this->settings_form->addItem($ch);
1157 $this->settings_form->addCommandButton(
"saveSettings",
$lng->txt(
"save"));
1158 $this->settings_form->addCommandButton(
"cancelSettings",
$lng->txt(
"cancel"));
1159 $this->settings_form->setFormAction($ilCtrl->getFormaction($this));
1170 $lng = $DIC->language();
1171 $block_id = $DIC->ctrl()->getContextObjId();
1174 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
1185 if ($default_visibility ==
"") {
1186 $default_visibility =
1191 $radio_group->addOption($radio_option);
1192 $radio_option =
new ilRadioOption(
$lng->txt(
"news_visibility_public"),
"public");
1193 $radio_group->addOption($radio_option);
1194 $radio_group->
setInfo(
$lng->txt(
"news_news_item_visibility_info"));
1195 $radio_group->setRequired(
false);
1196 $radio_group->setValue($default_visibility);
1197 $a_input->addSubItem($radio_group);
1200 if ($enable_internal_rss) {
1202 $lng->txt(
"news_public_feed"),
1203 "notifications_public_feed" 1205 $radio_rss->
setInfo(
$lng->txt(
"news_public_feed_info"));
1206 $radio_rss->setChecked($public_feed);
1207 $a_input->addSubItem($radio_rss);
1215 $block_id = $DIC->ctrl()->getContextObjId();
1216 foreach ($a_values as $key => $value) {
1228 $ilCtrl->returnToParent($this);
1240 if ($this->settings_form->checkInput()) {
1242 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
1244 if ($enable_internal_rss) {
1247 "public_notifications",
1248 $_POST[
"notifications_public"],
1255 $_POST[
"notifications_public_feed"],
1261 "default_visibility",
1262 $_POST[
"default_visibility"],
1268 if ($this->
getProperty(
"hide_news_block_option")) {
1272 $_POST[
"hide_news_block"],
1278 "hide_news_per_date",
1279 $_POST[
"hide_news_per_date"],
1285 $hd = $this->settings_form->getItemByPostVar(
"hide_news_date");
1286 $hide_date = $hd->getDate();
1287 if (
$_POST[
"hide_news_per_date"] && $hide_date != null) {
1306 include_once(
"./Services/News/classes/class.ilNewsCache.php");
1308 $cache->deleteEntry(
$ilUser->getId() .
":" .
$_GET[
"ref_id"]);
1310 $ilCtrl->returnToParent($this);
1312 $this->settings_form->setValuesByPost();
1313 return $this->settings_form->getHtml();
1326 include_once(
"./Services/News/classes/class.ilNewsItem.php");
1330 $tpl =
new ilTemplate(
"tpl.show_feed_url.html",
true,
true,
"Services/News");
1333 sprintf(
$lng->txt(
"news_feed_url_for"),
$title)
1335 $tpl->setVariable(
"TXT_INFO",
$lng->txt(
"news_get_feed_info"));
1336 $tpl->setVariable(
"TXT_FEED_URL",
$lng->txt(
"news_feed_url"));
1339 ILIAS_HTTP_PATH .
"/feed.php?client_id=" . rawurlencode(
CLIENT_ID) .
"&user_id=" .
$ilUser->getId() .
1340 "&obj_id=" . $this->block_id .
1345 ILIAS_HTTP_PATH .
"/feed.php?client_id=" . rawurlencode(
CLIENT_ID) .
"&<br />user_id=" .
$ilUser->getId() .
1346 "&obj_id=" . $this->block_id .
1351 $content_block->setContent(
$tpl->get());
1352 $content_block->setTitle(
$lng->txt(
"news_internal_news"));
1354 return $content_block->getHTML();
1364 if ($this->new_rendering) {
1368 if ($ilCtrl->getCmd() ==
"hideNotifications" ||
1369 $ilCtrl->getCmd() ==
"showNotifications") {
1373 if ($ilCtrl->getCmdClass() !=
"ilcolumngui" && $ilCtrl->getCmd() !=
"enableJS") {
1376 $sess_feed_js =
$_SESSION[
"il_feed_js"];
1379 if ($sess_feed_js !=
"n" &&
1380 (
$ilUser->getPref(
"il_feed_js") !=
"n" || $sess_feed_js ==
"y")) {
1397 $ilCtrl->setParameterByClass(
1403 $rel_tpl =
new ilTemplate(
"tpl.dynamic_reload.html",
true,
true,
"Services/News");
1404 $rel_tpl->setVariable(
"TXT_LOADING",
$lng->txt(
"news_loading_news"));
1406 $rel_tpl->setVariable(
1408 $ilCtrl->getLinkTargetByClass(
"ilcolumngui",
"updateBlock",
"",
true)
1412 $rel_tpl->setVariable(
"TXT_NEWS_CLICK_HERE",
$lng->txt(
"news_no_js_click_here"));
1413 $rel_tpl->setVariable(
1415 $ilCtrl->getLinkTargetByClass(strtolower(get_class($this)),
"disableJS")
1418 return $rel_tpl->get();
1426 $ilCtrl->setParameterByClass(
1432 $rel_tpl =
new ilTemplate(
"tpl.js_enabler.html",
true,
true,
"Services/News");
1434 $rel_tpl->setVariable(
1436 $ilCtrl->getLinkTargetByClass(strtolower(get_class($this)),
"enableJS",
true,
"",
false)
1439 return $rel_tpl->get();
1449 $ilUser->writePref(
"il_feed_js",
"n");
1450 $ilCtrl->returnToParent($this);
1458 $ilUser->writePref(
"il_feed_js",
"y");
1479 $this->lng->txt(
"date") => $info[
"creation_date"]
1487 $item =
$factory->item()->standard(
$factory->link()->standard($info[
"news_title"], $info[
"url"]))
1488 ->withProperties($props);
1489 if ($info[
"ref_id"] > 0) {
1490 $item = $item->withDescription($info[
"type_txt"] .
": " . $info[
"obj_title"]);
1502 return $this->lng->txt(
"news_no_news_items");
static _getIcon( $a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
This class represents an option in a radio group.
static lookupTitle($a_page_id)
Checks whether a page with given title exists.
static shortenWords($a_str, $a_len=30, $a_dots=true)
Ensure that the maximum word lenght within a text is not longer than $a_len.
executeCommand()
execute command
static _write($a_type, $a_setting, $a_value, $a_user=0, $a_block_id=0)
Write setting to database.
getListItemForData(array $data)
static lookupTxtById($plugin_id, $lang_var)
static _getThreadForPosting($a_pos_id)
Get thread id for posting.
fillRow($data)
get flat list for personal desktop
getOverview()
Get overview.
setEnableEdit($a_enable_edit=0)
Set EnableEdit.
handleView()
Handles show/hide notification view and removes notifications if hidden.
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data
setDataSection($a_content)
Call this from overwritten fillDataSection(), if standard row based data is not used.
Class ChatMainBarProvider .
User Interface for NewsItem entities.
static _lookupTitle($a_id)
lookup object title
editSettings()
Show settings screen.
getHTML()
Get bloch HTML code.
setEnableNumInfo($a_enablenuminfo)
Set Enable Item Number Info.
BlockGUI class for block NewsForContext.
getRepositoryMode()
Get RepositoryMode.
static prepareNewsDataFromCache($a_cres)
Prepare news data from cache.
setInfo($a_info)
Set Info.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
makeClickable($a_str)
Make clickable.
static _lookupObjectId($a_ref_id)
lookup object id
static _unsubscribe($a_ref_id, $a_user_id)
Unsubscribe a user from an object (ref id).
fillDataSection()
Fill data section.
getMediaPath(int $mob_id)
subscribeNews()
Subscribe current user from news.
setTitle($a_title)
Set Title.
static makeUrlTitle($a_par)
Set page parameter for Url Embedding.
static _setRead($a_user_id, $a_news_id)
Set item read.
setBlockId($a_block_id=0)
Set Block Id.
setData($a_data)
Set Data.
static _lookupObjId($a_id)
static makeClickable($a_text, $detectGotoLinks=false)
makeClickable In Texten enthaltene URLs und Mail-Adressen klickbar machen
getNoItemFoundContent()
No item entry.
static _lookup($a_type, $a_setting, $a_user=0, $a_block_id=0)
Lookup setting from database.
showFeedUrl()
Show feed URL.
__construct()
Constructor.
initSettingsForm()
Init setting form.
static writeSettings($a_values)
static _lookupType($a_id, $a_reference=false)
lookup object type
saveSettings()
Save settings.
getBlockId()
Get Block Id.
unsubscribeNews()
Unsubscribe current user from news.
setLimit($a_limit)
Set Limit.
getEnableEdit()
Get EnableEdit.
static _subscribe($a_ref_id, $a_user_id)
Subscribe a user to an object (ref id).
__construct(Container $dic, ilPlugin $plugin)
static getRenderer($a_context_obj_type)
Get renderer.
static _lookupFeedHash($a_user_id, $a_create=false)
Lookup news feed hash for user.
static _getDefaultVisibilityForRefId($a_ref_id)
Get default visibility for reference id.
static _lookupContextObjId($a_news_id)
Context Object ID.
getNewsData()
Get news for context.
static addToSettingsForm(ilFormPropertyGUI $a_input)
Add inputs to the container news settings form to configure also the contextBlock options...
BlockGUI class for (centered) Content on Personal Desktop.
static determineNewsTitle( $a_context_obj_type, $a_title, $a_content_is_lang_var, $a_agg_ref_id=0, $a_aggregation="")
Determine title for news item entry.
This class represents a block method of a block.
static getScreenMode()
Get Screen Mode for current command.
cancelSettings()
Cancel settings.
addBlockCommand(string $a_href, string $a_text, string $a_onclick="")
Add Block Command.
setRowTemplate($a_rowtemplatename, $a_rowtemplatedir="")
Set Row Template Name.
setPresentation(int $type)
Set presentation.
const OBJECTS_WITH_NEWS_SUBTAB
object type names with settings->news settings subtab