5 require_once
"./Services/Object/classes/class.ilObject2GUI.php";
6 require_once
"./Modules/Blog/classes/class.ilBlogPosting.php";
7 require_once
"./Services/PersonalDesktop/interfaces/interface.ilDesktopItemHandling.php";
62 public function __construct($a_id = 0, $a_id_type = self::REPOSITORY_NODE_ID, $a_parent_node_id = 0)
67 $this->help = $DIC[
"ilHelp"];
68 $this->tabs = $DIC->tabs();
69 $this->nav_history = $DIC[
"ilNavigationHistory"];
70 $this->
user = $DIC->user();
71 $this->toolbar = $DIC->toolbar();
72 $this->tree = $DIC->repositoryTree();
73 $this->locator = $DIC[
"ilLocator"];
74 $this->main_menu = $DIC[
"ilMainMenu"];
75 $this->rbacreview = $DIC->rbac()->review();
76 $this->rbacadmin = $DIC->rbac()->admin();
78 $lng = $DIC->language();
81 parent::__construct($a_id, $a_id_type, $a_parent_node_id);
85 throw new ilException(
"Posting ID does not match blog.");
92 $this->author = (int) $_REQUEST[
"ath"];
98 if (!$this->month || !$this->items[$this->month]) {
99 $this->month = array_keys($this->items);
100 $this->month = array_shift($this->month);
101 $this->month_default =
true;
105 $ilCtrl->setParameter($this,
"bmn", $this->month);
108 $lng->loadLanguageModule(
"blog");
109 $ilCtrl->saveParameter($this,
"prvm");
119 $forms = parent::initCreationForms($a_new_type);
121 if ($this->id_type == self::WORKSPACE_NODE_ID) {
122 unset($forms[self::CFORM_IMPORT]);
123 unset($forms[self::CFORM_CLONE]);
141 $tree = $DIC->repositoryTree();
145 $this->tabs_gui->addSubTab(
147 $this->lng->txt(
"blog_properties"),
148 $this->ctrl->getLinkTarget($this,
'edit')
151 $this->tabs_gui->addSubTab(
153 $this->lng->txt(
"obj_sty"),
154 $this->ctrl->getLinkTarget($this,
'editStyleProperties')
158 if ($this->id_type == self::REPOSITORY_NODE_ID) {
159 $grp_ref_id =
$tree->checkForParentType($this->
object->getRefId(),
'grp');
160 $crs_ref_id =
$tree->checkForParentType($this->
object->getRefId(),
'crs');
162 if ((
int) $grp_ref_id > 0 || (int) $crs_ref_id > 0) {
163 if (
$access->checkAccess(
'write',
'', $this->ref_id)) {
164 $this->tabs_gui->addSubTab(
166 $this->lng->txt(
"notifications"),
167 $this->ctrl->getLinkTargetByClass(
"ilobjnotificationsettingsgui",
'')
173 $this->tabs_gui->activateSubTab($a_active);
183 if ($this->id_type == self::REPOSITORY_NODE_ID) {
185 $appr->
setInfo(
$lng->txt(
"blog_enable_approval_info"));
192 if (
$ilSetting->get(
'enable_global_profiles')) {
202 $nav->setTitle(
$lng->txt(
"blog_settings_navigation"));
210 $opt->
setInfo(
$lng->txt(
"blog_nav_mode_month_list_info"));
211 $nav_mode->addOption($opt);
213 $detail_num =
new ilNumberInputGUI(
$lng->txt(
"blog_nav_mode_month_list_num_month_with_post"),
"nav_list_mon_with_post");
214 $detail_num->
setInfo(
$lng->txt(
"blog_nav_mode_month_list_num_month_with_post_info"));
216 $detail_num->setSize(3);
218 $opt->addSubItem($detail_num);
220 $mon_num =
new ilNumberInputGUI(
$lng->txt(
"blog_nav_mode_month_list_num_month"),
"nav_list_mon");
221 $mon_num->
setInfo(
$lng->txt(
"blog_nav_mode_month_list_num_month_info"));
222 $mon_num->setSize(3);
223 $mon_num->setMinValue(1);
224 $opt->addSubItem($mon_num);
227 $opt->
setInfo(
$lng->txt(
"blog_nav_mode_month_single_info"));
228 $nav_mode->addOption($opt);
230 $order_options =
array();
231 if ($this->
object->getOrder()) {
232 foreach ($this->
object->getOrder() as $item) {
233 $order_options[] =
$lng->txt(
"blog_" . $item);
237 if (!in_array(
$lng->txt(
"blog_navigation"), $order_options)) {
238 $order_options[] =
$lng->txt(
"blog_navigation");
241 if ($this->id_type == self::REPOSITORY_NODE_ID) {
242 if (!in_array(
$lng->txt(
"blog_authors"), $order_options)) {
243 $order_options[] =
$lng->txt(
"blog_authors");
247 $auth->setInfo(
$lng->txt(
"blog_enable_nav_authors_info"));
252 $keyw->
setInfo(
$lng->txt(
"blog_enable_keywords_info"));
255 if (!in_array(
$lng->txt(
"blog_keywords"), $order_options)) {
256 $order_options[] =
$lng->txt(
"blog_keywords");
261 $order->setValue(array_shift($order_options));
262 $order->setMulti(
true,
true,
false);
269 $pres->setTitle(
$lng->txt(
"blog_presentation_frame"));
275 if ($this->id_type == self::REPOSITORY_NODE_ID) {
276 $ppic->setInfo(
$lng->txt(
"blog_profile_picture_repository_info"));
280 if ($blga_set->get(
"banner")) {
281 include_once
"Services/Form/classes/class.ilFileInputGUI.php";
284 $dimensions =
" (" . $blga_set->get(
"banner_width") .
"x" .
285 $blga_set->get(
"banner_height") .
")";
291 $file = $this->
object->getImageFullPath(
true);
308 $list->setTitle(
$lng->txt(
"blog_presentation_overview"));
312 $post_num->
setInfo(
$lng->txt(
"blog_list_num_postings_info"));
313 $post_num->setSize(3);
314 $post_num->setMinValue(1);
315 $post_num->setRequired(
true);
319 $a_form->
addItem($abs_shorten);
323 $abs_shorten_len->setRequired(
true);
324 $abs_shorten_len->setSuffix(
$lng->txt(
"blog_abstract_shorten_characters"));
325 $abs_shorten_len->setMinValue(50,
true);
326 $abs_shorten->addSubItem($abs_shorten_len);
329 $abs_img->
setInfo(
$lng->txt(
"blog_abstract_image_info"));
334 $abs_img_width->setRequired(
true);
335 $abs_img_width->setSuffix(
$lng->txt(
"blog_abstract_image_pixels"));
336 $abs_img_width->setMinValue(32,
true);
337 $abs_img->addSubItem($abs_img_width);
341 $abs_img_height->setRequired(
true);
342 $abs_img_height->setSuffix(
$lng->txt(
"blog_abstract_image_pixels"));
343 $abs_img_height->setMinValue(32,
true);
344 $abs_img->addSubItem($abs_img_height);
349 if ($this->id_type == self::REPOSITORY_NODE_ID) {
350 $a_values[
"approval"] = $this->
object->hasApproval();
351 $a_values[
"nav_authors"] = $this->
object->hasAuthors();
353 $a_values[
"keywords"] = $this->
object->hasKeywords();
354 $a_values[
"notes"] = $this->
object->getNotesStatus();
355 $a_values[
"ppic"] = $this->
object->hasProfilePicture();
360 $a_values[
"banner"] = $this->
object->getImage();
361 $a_values[
"rss"] = $this->
object->hasRSS();
362 $a_values[
"abss"] = $this->
object->hasAbstractShorten();
363 $a_values[
"absi"] = $this->
object->hasAbstractImage();
364 $a_values[
"nav"] = $this->
object->getNavMode();
365 $a_values[
"nav_list_mon_with_post"] = $this->
object->getNavModeListMonthsWithPostings();
366 $a_values[
"nav_list_mon"] = $this->
object->getNavModeListMonths();
367 $a_values[
"ov_list_post_num"] = $this->
object->getOverviewPostings();
379 if ($this->id_type == self::REPOSITORY_NODE_ID) {
380 $this->
object->setApproval($a_form->
getInput(
"approval"));
381 $this->
object->setAuthors($a_form->
getInput(
"nav_authors"));
383 $this->
object->setKeywords($a_form->
getInput(
"keywords"));
384 $this->
object->setNotesStatus($a_form->
getInput(
"notes"));
385 $this->
object->setProfilePicture($a_form->
getInput(
"ppic"));
390 $this->
object->setRSS($a_form->
getInput(
"rss"));
391 $this->
object->setAbstractShorten($a_form->
getInput(
"abss"));
392 $this->
object->setAbstractShortenLength($a_form->
getInput(
"abssl"));
393 $this->
object->setAbstractImage($a_form->
getInput(
"absi"));
394 $this->
object->setAbstractImageWidth($a_form->
getInput(
"absiw"));
395 $this->
object->setAbstractImageHeight($a_form->
getInput(
"absih"));
396 $this->
object->setNavMode($a_form->
getInput(
"nav"));
397 $this->
object->setNavModeListMonthsWithPostings($a_form->
getInput(
"nav_list_mon_with_post"));
398 $this->
object->setNavModeListMonths($a_form->
getInput(
"nav_list_mon"));
399 $this->
object->setOverviewPostings($a_form->
getInput(
"ov_list_post_num"));
401 $order = $a_form->
getInput(
"order");
402 foreach ($order as $idx => $value) {
403 if ($value ==
$lng->txt(
"blog_navigation")) {
404 $order[$idx] =
"navigation";
405 } elseif ($value ==
$lng->txt(
"blog_keywords")) {
406 $order[$idx] =
"keywords";
408 $order[$idx]=
"authors";
411 $this->
object->setOrder($order);
416 if ($_FILES[
"banner"][
"tmp_name"]) {
417 $this->
object->uploadImage($_FILES[
"banner"]);
418 } elseif ($banner->getDeletionFlag()) {
419 $this->
object->deleteImage();
429 if ($this->id_type == self::WORKSPACE_NODE_ID) {
430 $this->ctrl->setParameter($this,
"wsp_id", $this->node_id);
433 $ilHelp->setScreenIdComponent(
"blog");
436 $this->tabs_gui->addTab(
438 $lng->txt(
"content"),
439 $this->ctrl->getLinkTarget($this,
"")
443 $this->tabs_gui->addTab(
445 $lng->txt(
"info_short"),
446 $this->ctrl->getLinkTargetByClass(
array(
"ilobjbloggui",
"ilinfoscreengui"),
"showSummary")
451 $this->tabs_gui->addTab(
453 $lng->txt(
"settings"),
454 $this->ctrl->getLinkTarget($this,
"edit")
457 if (!$this->prtf_embed) {
458 if ($this->id_type == self::REPOSITORY_NODE_ID) {
459 $this->tabs_gui->addTab(
461 $lng->txt(
"blog_contributors"),
462 $this->ctrl->getLinkTarget($this,
"contributors")
466 if ($this->id_type == self::REPOSITORY_NODE_ID) {
467 $this->tabs_gui->addTab(
470 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
"")
476 if (!$this->prtf_embed) {
478 $this->tabs_gui->addNonTabbedLink(
480 $lng->txt(
"blog_preview"),
481 $this->ctrl->getLinkTarget($this,
"preview")
498 $page_id = (int)
$_GET[
"gtp"];
499 include_once
"Modules/Blog/classes/class.ilBlogPosting.php";
502 $ilCtrl->setCmdClass(
"ilblogpostinggui");
503 $_GET[
"blpg"] = $page_id;
504 $ilCtrl->setCmd(
"previewFullscreen");
510 $next_class =
$ilCtrl->getNextClass($this);
513 if ($this->id_type == self::REPOSITORY_NODE_ID) {
518 $link =
$ilCtrl->getLinkTargetByClass([
"ilrepositorygui",
"ilObjBlogGUI"],
"preview");
519 $ilNavigationHistory->addItem($this->node_id, $link,
"blog");
523 switch ($next_class) {
524 case 'ilblogpostinggui':
525 if (!$this->prtf_embed) {
526 $tpl->getStandardTemplate();
535 if ($this->id_type == self::REPOSITORY_NODE_ID) {
538 include_once
"Services/Form/classes/class.ilFileInputGUI.php";
541 $ilTabs->setBackTarget(
543 $ilCtrl->getLinkTarget($this,
"")
547 $this->
object->getStyleSheetId(),
551 include_once(
"./Modules/Blog/classes/class.ilBlogPostingGUI.php");
557 ($this->
object->getNotesStatus() && !$this->disable_notes),
565 case "previewFullscreen":
566 $ilCtrl->setParameter($this,
"prvm",
"fsc");
570 case "previewEmbedded":
571 $ilCtrl->setParameter($this,
"prvm",
"emb");
579 if (!$this->prtf_embed) {
580 $this->ctrl->setParameterByClass(
"ilblogpostinggui",
"blpg",
$_GET[
"blpg"]);
581 $this->tabs_gui->addNonTabbedLink(
583 $lng->txt(
"blog_preview"),
584 $this->ctrl->getLinkTargetByClass(
"ilblogpostinggui",
"previewFullscreen")
586 $this->ctrl->setParameterByClass(
"ilblogpostinggui",
"blpg",
"");
588 $this->ctrl->setParameterByClass(
"ilobjportfoliogui",
"user_page",
$_GET[
"ppage"]);
589 $this->tabs_gui->addNonTabbedLink(
591 $lng->txt(
"blog_preview"),
592 $this->ctrl->getLinkTargetByClass(
"ilobjportfoliogui",
"preview")
594 $this->ctrl->setParameterByClass(
"ilobjportfoliogui",
"user_page",
"");
600 if ($_REQUEST[
"prvm"]) {
601 $cmd =
"preview" . (($_REQUEST[
"prvm"] ==
"fsc") ?
"Fullscreen" :
"Embedded");
603 if (in_array($cmd,
array(
"previewFullscreen",
"previewEmbedded"))) {
611 $is_active = $bpost_gui->getBlogPosting()->getActive();
614 if (($cmd ==
"previewFullscreen" || $cmd ==
"previewEmbedded")
615 && !$is_owner && !$is_active) {
616 $this->ctrl->redirect($this,
"preview");
621 case "previewFullscreen":
629 case "previewEmbedded":
640 if ($this->id_type == self::WORKSPACE_NODE_ID) {
643 $info[] =
$lng->txt(
"blog_draft_info_contributors");
646 if ($cmd !=
"history" && $is_active && empty(
$info)) {
647 $info[] =
$lng->txt(
"blog_new_posting_info");
648 $public_action =
true;
650 if ($this->
object->hasApproval() && !$bpost_gui->getBlogPosting()->isApproved()) {
652 $info[] =
$lng->txt(
"blog_posting_edit_approval_info");
654 if (
sizeof(
$info) && !
$tpl->hasMessage(
"info")) {
655 if ($public_action) {
664 $nav = $this->
renderNavigation($this->items,
"render", $cmd, null, $is_owner);
665 $tpl->setRightContent($nav);
671 case "ilinfoscreengui":
681 case "ilcommonactiondispatchergui":
682 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
684 $this->ctrl->forwardCommand($gui);
687 case "ilpermissiongui":
689 $ilTabs->activateTab(
"id_permissions");
690 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
692 $this->ctrl->forwardCommand($perm_gui);
695 case "ilobjectcopygui":
697 include_once
"./Services/Object/classes/class.ilObjectCopyGUI.php";
699 $cp->setType(
"blog");
700 $this->ctrl->forwardCommand($cp);
703 case 'ilrepositorysearchgui':
705 $ilTabs->activateTab(
"contributors");
706 include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
708 $rep_search->setTitle($this->lng->txt(
"blog_add_contributor"));
709 $rep_search->setCallback($this,
'addContributor', $this->
object->getAllLocalRoles($this->node_id));
710 $this->ctrl->setReturn($this,
'contributors');
711 $ret =&$this->ctrl->forwardCommand($rep_search);
716 $ilTabs->activateTab(
"export");
717 include_once(
"./Services/Export/classes/class.ilExportGUI.php");
719 $exp_gui->addFormat(
"xml");
720 $exp_gui->addFormat(
"html", null, $this,
"buildExportFile");
724 case "ilobjstylesheetgui":
725 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheetGUI.php");
726 $this->ctrl->setReturn($this,
"editStyleProperties");
729 if ($cmd ==
"create" ||
$_GET[
"new_type"]==
"sty") {
730 $style_gui->setCreationMode(
true);
733 if ($cmd ==
"confirmedDelete") {
734 $this->
object->setStyleSheetId(0);
735 $this->
object->update();
738 $ret = $this->ctrl->forwardCommand($style_gui);
740 if ($cmd ==
"save" || $cmd ==
"copyStyle" || $cmd ==
"importStyle") {
742 $this->
object->setStyleSheetId($style_id);
743 $this->
object->update();
744 $this->ctrl->redirectByClass(
"ilobjstylesheetgui",
"edit");
748 case "ilblogexercisegui":
749 $this->ctrl->setReturn($this,
"render");
750 include_once
"Modules/Blog/classes/class.ilBlogExerciseGUI.php";
752 $this->ctrl->forwardCommand($gui);
755 case 'ilobjnotificationsettingsgui':
757 $ilTabs->activateTab(
"settings");
759 include_once(
"./Services/Notification/classes/class.ilObjNotificationSettingsGUI.php");
761 $this->ctrl->forwardCommand($gui);
765 if ($cmd !=
"gethtml") {
767 if ($cmd ==
"addToDesk" || $cmd ==
"removeFromDesk") {
768 $this->{$cmd .
"Object"}();
778 if (!$this->prtf_embed) {
779 return parent::executeCommand();
786 return $this->$cmd();
800 $this->ctrl->setCmd(
"showSummary");
801 $this->ctrl->setCmdClass(
"ilinfoscreengui");
812 $ilTabs->activateTab(
"id_info");
816 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
819 if ($this->id_type != self::WORKSPACE_NODE_ID) {
820 $info->enablePrivateNotes();
828 $info->enableNewsEditing(
false);
831 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
833 if ($enable_internal_rss) {
834 $info->setBlockProperty(
"news",
"settings",
true);
835 $info->setBlockProperty(
"news",
"public_notifications_option",
true);
840 $info->addMetaDataSections($this->
object->getId(), 0, $this->
object->getType());
842 if ($this->id_type == self::WORKSPACE_NODE_ID) {
846 $this->ctrl->forwardCommand(
$info);
860 include_once(
"./Modules/Blog/classes/class.ilBlogPosting.php");
862 $posting->setTitle(
$title);
863 $posting->setBlogId($this->
object->getId());
864 $posting->setActive(
false);
865 $posting->setAuthor(
$ilUser->getId());
871 $ilCtrl->setParameterByClass(
"ilblogpostinggui",
"blpg", $posting->getId());
872 $ilCtrl->redirectByClass(
"ilblogpostinggui",
"edit");
875 $ilCtrl->redirect($this,
"render");
900 $ilTabs->activateTab(
"content");
904 $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this,
"createPosting"));
906 include_once
"Services/Form/classes/class.ilPropertyFormGUI.php";
908 $ilToolbar->addStickyItem(
$title,
$lng->txt(
"title"));
910 include_once
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
912 $button->setCaption(
"blog_add_posting");
913 $button->setCommand(
"createPosting");
914 $ilToolbar->addStickyItem($button);
917 $first = array_shift((array_keys($this->items)));
918 if ($first != $this->month) {
919 $ilToolbar->addSeparator();
921 $ilCtrl->setParameter($this,
"bmn", $first);
923 $ilCtrl->setParameter($this,
"bmn", $this->month);
925 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
927 $button->setCaption(
"blog_show_latest");
928 $button->setUrl(
$url);
929 $ilToolbar->addButtonInstance($button);
933 include_once
"Modules/Blog/classes/class.ilBlogExerciseGUI.php";
948 $nav = $this->
renderNavigation($this->items,
"render",
"preview", null, $is_owner);
954 $tpl->setRightContent($nav);
965 if ($this->id_type == self::REPOSITORY_NODE_ID) {
981 elseif ($_REQUEST[
"prt_id"]) {
989 $ilCtrl->setParameterByClass(
"ilportfoliopagegui",
"ppage", (
int) $_REQUEST[
"user_page"]);
990 $link =
$ilCtrl->getLinkTargetByClass(
array(
"ilportfoliopagegui",
"ilobjbloggui"),
"render");
991 $ilCtrl->setParameterByClass(
"ilportfoliopagegui",
"ppage",
"");
993 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
995 $btn->setCaption(sprintf(
$lng->txt(
"prtf_edit_embedded_blog"), $this->
object->getTitle()),
false);
997 $btn->setPrimary(
true);
999 $list = $btn->render();
1014 if ($this->author) {
1015 $list_items =
array();
1018 if ($item[
"author"] == $this->author ||
1019 (is_array($item[
"editors"]) && in_array($this->author, $item[
"editors"]))) {
1020 $list_items[
$id] = $item;
1024 } elseif ($this->keyword) {
1025 $list_items = $this->filterItemsByKeyword($this->items, $this->keyword);
1027 $max = $this->
object->getOverviewPostings();
1028 if ($this->month_default && $max) {
1029 $list_items =
array();
1030 foreach ($this->items as
$month => $postings) {
1031 foreach ($postings as
$id => $item) {
1032 if (!$a_show_inactive &&
1036 $list_items[
$id] = $item;
1038 if (
sizeof($list_items) >= $max) {
1057 $lng = $DIC->language();
1072 $nav = $this->
renderNavigation($this->items,
"preview",
"previewFullscreen");
1102 $wtpl =
new ilTemplate(
"tpl.blog_embedded.html",
true,
true,
"Modules/Blog");
1104 $wtpl->setVariable(
"VAL_NAVIGATION", $a_nav);
1105 return $wtpl->get();
1121 $owner = $this->
object->getOwner();
1123 $ilTabs->clearTargets();
1124 $ilLocator->clearItems();
1130 if ($owner ==
$ilUser->getId()) {
1132 if ($this->id_type == self::WORKSPACE_NODE_ID) {
1133 $back =
"ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToWorkspace&wsp_id=" .
$this->node_id;
1138 $this->ctrl->setParameter($this,
"prvm",
"");
1139 if (!
$_GET[
"blpg"]) {
1140 $back = $this->ctrl->getLinkTarget($this,
"");
1142 $this->ctrl->setParameterByClass(
"ilblogpostinggui",
"bmn", $this->month);
1143 $this->ctrl->setParameterByClass(
"ilblogpostinggui",
"blpg",
$_GET[
"blpg"]);
1144 $back = $this->ctrl->getLinkTargetByClass(
"ilblogpostinggui",
"preview");
1146 $this->ctrl->setParameter($this,
"prvm", $prvm);
1149 $back_caption = $this->lng->txt(
"blog_back_to_blog_owner");
1152 elseif (
$ilUser->getId() &&
$ilUser->getId() != ANONYMOUS_USER_ID) {
1154 if ($this->id_type == self::WORKSPACE_NODE_ID) {
1155 $back =
"ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToWorkspace&dsh=" . $owner;
1159 $back = $this->ctrl->getLinkTarget($this,
"");
1160 $back_caption = $this->lng->txt(
"blog_back_to_blog_owner");
1166 include_once
"Services/Link/classes/class.ilLink.php";
1173 $ilMainMenu->setTopBarBack($back, $back_caption);
1178 $this->ctrl->setParameter($this,
"bmn",
"");
1179 $tpl->setTitleUrl($this->ctrl->getLinkTarget($this,
"preview"));
1180 $this->ctrl->setParameter($this,
"bmn", $this->month);
1186 $tpl->setRightContent($a_navigation);
1201 require_once(
'Services/Tracking/classes/class.ilChangeEvent.php');
1203 $this->
object->getType(),
1205 $this->
object->getId(),
1212 if ($this->id_type != self::REPOSITORY_NODE_ID) {
1214 $name = $name[
"lastname"] .
", " . (
$t = $name[
"title"] ?
$t .
" " :
"") . $name[
"firstname"];
1220 if ($blga_set->get(
"banner")) {
1221 require_once(
'./Services/WebAccessChecker/classes/class.ilWACSignedPath.php');
1223 $banner_width = $blga_set->get(
"banner_width");
1224 $banner_height = $blga_set->get(
"banner_height");
1226 $banner = basename($banner);
1231 if ($this->
object->hasProfilePicture()) {
1233 if ($this->id_type == self::REPOSITORY_NODE_ID) {
1235 if (
$_GET[
"blpg"] && !$a_export) {
1236 include_once
"Modules/Blog/classes/class.ilBlogPosting.php";
1238 $author_id =
$post->getAuthor();
1240 $ppic = ilObjUser::_getPersonalPicturePath($author_id,
"xsmall",
true,
true);
1243 $name = $name[
"lastname"] .
", " . (
$t = $name[
"title"] ?
$t .
" " :
"") . $name[
"firstname"];
1249 $ppic = ilObjUser::_getPersonalPicturePath($a_user_id,
"xsmall",
true,
true);
1251 $ppic = basename($ppic);
1256 $a_tpl->resetHeaderBlock(
false);
1258 $a_tpl->setBanner($banner, $banner_width, $banner_height, $a_export);
1259 $a_tpl->setTitleIcon($ppic);
1260 $a_tpl->setTitle($this->
object->getTitle());
1262 $a_tpl->setDescription($name);
1265 $a_tpl->setVariable(
"LOCATOR",
"");
1279 $author_found =
false;
1283 if ($this->author &&
1284 ($posting[
"author"] == $this->author ||
1285 (is_array($posting[
"editors"]) && in_array($this->author, $posting[
"editors"])))) {
1286 $author_found =
true;
1293 if ($this->author && !$author_found) {
1294 $this->author = null;
1310 public function renderList(
array $items, $a_cmd =
"preview", $a_link_template = null, $a_show_inactive =
false, $a_export_directory = null)
1316 include_once
"Services/Calendar/classes/class.ilCalendarUtil.php";
1317 $wtpl =
new ilTemplate(
"tpl.blog_list.html",
true,
true,
"Modules/Blog");
1320 if ($_REQUEST[
"prt_id"] &&
1321 stristr($a_cmd,
"embedded")) {
1324 $ilCtrl->setParameterByClass(
"ilportfoliopagegui",
"ppage", (
int) $_REQUEST[
"user_page"]);
1325 $link =
$ilCtrl->getLinkTargetByClass(
array(
"ilportfoliopagegui",
"ilobjbloggui"),
"render");
1326 $ilCtrl->setParameterByClass(
"ilportfoliopagegui",
"ppage",
"");
1328 include_once
"Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php";
1330 $list->setListTitle(
$lng->txt(
"action"));
1332 sprintf(
$lng->txt(
"prtf_edit_embedded_blog"), $this->
object->getTitle()),
1344 $wtpl->setCurrentBlock(
"prtf_edit_bl");
1345 $wtpl->setVariable(
"PRTF_BLOG_EDIT",
$list->getHTML());
1346 $wtpl->parseCurrentBlock();
1352 include_once(
"./Modules/Blog/classes/class.ilBlogPostingGUI.php");
1355 foreach ($items as $item) {
1358 if (!$is_active && !$a_show_inactive) {
1364 if (!$this->keyword && !$this->author) {
1368 if (!$last_month || $last_month !=
$month) {
1370 $wtpl->setCurrentBlock(
"month_bl");
1371 $wtpl->parseCurrentBlock();
1375 if ($this->keyword) {
1377 } elseif ($this->author) {
1378 include_once
"Services/User/classes/class.ilUserUtil.php";
1381 include_once
"Services/Calendar/classes/class.ilCalendarUtil.php";
1383 " " . substr(
$month, 0, 4);
1388 $wtpl->setVariable(
"TXT_CURRENT_MONTH",
$title);
1391 if (!$a_link_template) {
1392 $ilCtrl->setParameterByClass(
"ilblogpostinggui",
"bmn", $this->month);
1393 $ilCtrl->setParameterByClass(
"ilblogpostinggui",
"blpg", $item[
"id"]);
1400 $posting_edit = $this->
mayEditPosting($item[
"id"], $item[
"author"]);
1401 if (($posting_edit || $is_admin) && !$a_link_template && $a_cmd ==
"preview") {
1402 include_once(
"./Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php");
1404 $alist->setId($item[
"id"]);
1405 $alist->setListTitle(
$lng->txt(
"actions"));
1407 if ($is_active && $this->
object->hasApproval() && !$item[
"approved"]) {
1409 $ilCtrl->setParameter($this,
"apid", $item[
"id"]);
1411 $lng->txt(
"blog_approve"),
1413 $ilCtrl->getLinkTarget($this,
"approve")
1415 $ilCtrl->setParameter($this,
"apid",
"");
1418 $wtpl->setVariable(
"APPROVAL",
$lng->txt(
"blog_needs_approval"));
1421 if ($posting_edit) {
1423 $lng->txt(
"edit_content"),
1425 $ilCtrl->getLinkTargetByClass(
"ilblogpostinggui",
"edit")
1431 $lng->txt(
"blog_toggle_draft"),
1433 $ilCtrl->getLinkTargetByClass(
"ilblogpostinggui",
"deactivatePageToList")
1437 $lng->txt(
"blog_toggle_final"),
1439 $ilCtrl->getLinkTargetByClass(
"ilblogpostinggui",
"activatePageToList")
1444 $lng->txt(
"rename"),
1446 $ilCtrl->getLinkTargetByClass(
"ilblogpostinggui",
"edittitle")
1449 if ($this->
object->hasKeywords()) {
1451 $lng->txt(
"blog_edit_keywords"),
1453 $ilCtrl->getLinkTargetByClass(
"ilblogpostinggui",
"editKeywords")
1458 $lng->txt(
"blog_edit_date"),
1460 $ilCtrl->getLinkTargetByClass(
"ilblogpostinggui",
"editdate")
1463 $lng->txt(
"delete"),
1465 $ilCtrl->getLinkTargetByClass(
"ilblogpostinggui",
"deleteBlogPostingConfirmationScreen")
1467 } elseif ($is_admin) {
1470 $ilCtrl->setParameter($this,
"apid", $item[
"id"]);
1472 $lng->txt(
"blog_toggle_draft_admin"),
1474 $ilCtrl->getLinkTarget($this,
"deactivateAdmin")
1476 $ilCtrl->setParameter($this,
"apid",
"");
1480 $lng->txt(
"delete"),
1482 $ilCtrl->getLinkTargetByClass(
"ilblogpostinggui",
"deleteBlogPostingConfirmationScreen")
1486 $wtpl->setCurrentBlock(
"actions");
1487 $wtpl->setVariable(
"ACTION_SELECTOR", $alist->getHTML());
1488 $wtpl->parseCurrentBlock();
1492 if ($this->
object->getNotesStatus() && !$a_link_template && !$this->disable_notes) {
1494 include_once(
"Services/Notes/classes/class.ilNote.php");
1502 if ($a_cmd !=
"preview") {
1503 $wtpl->setCurrentBlock(
"comments");
1504 $wtpl->setVariable(
"TEXT_COMMENTS",
$lng->txt(
"blog_comments"));
1505 $wtpl->setVariable(
"URL_COMMENTS",
$preview);
1506 $wtpl->setVariable(
"COUNT_COMMENTS", $count);
1507 $wtpl->parseCurrentBlock();
1520 if ($a_cmd !=
"preview" && $a_cmd !=
"previewEmbedded") {
1521 if ($this->id_type == self::WORKSPACE_NODE_ID) {
1522 $goto = $this->
getAccessHandler()->getGotoLink($this->node_id, $this->obj_id,
"_" . $item[
"id"]);
1524 include_once
"Services/Link/classes/class.ilLink.php";
1527 $wtpl->setCurrentBlock(
"permalink");
1528 $wtpl->setVariable(
"URL_PERMALINK", $goto);
1529 $wtpl->setVariable(
"TEXT_PERMALINK",
$lng->txt(
"blog_permanent_link"));
1530 $wtpl->parseCurrentBlock();
1535 $this->
object->hasAbstractShorten(),
1536 $this->
object->getAbstractShortenLength(),
1538 $this->
object->hasAbstractImage(),
1539 $this->
object->getAbstractImageWidth(),
1540 $this->
object->getAbstractImageHeight(),
1545 $wtpl->setCurrentBlock(
"more");
1546 $wtpl->setVariable(
"URL_MORE",
$preview);
1547 $wtpl->setVariable(
"TEXT_MORE",
$lng->txt(
"blog_list_more"));
1548 $wtpl->parseCurrentBlock();
1554 $wtpl->setCurrentBlock(
"draft_text");
1555 $wtpl->setVariable(
"DRAFT_TEXT",
$lng->txt(
"blog_draft_text"));
1556 $wtpl->parseCurrentBlock();
1557 $wtpl->setVariable(
"DRAFT_CLASS",
" ilBlogListItemDraft");
1560 $wtpl->setCurrentBlock(
"posting");
1563 if ($this->id_type == self::REPOSITORY_NODE_ID) {
1566 $author_id = $item[
"author"];
1568 include_once
"Services/User/classes/class.ilUserUtil.php";
1572 if (is_array($item[
"editors"])) {
1573 foreach ($item[
"editors"] as $editor_id) {
1579 $author = implode(
", ", $authors) .
" - ";
1584 $wtpl->setVariable(
"URL_TITLE",
$preview);
1585 $wtpl->setVariable(
"TITLE", $item[
"title"]);
1586 $wtpl->setVariable(
"DATETIME",
$author .
1590 $wtpl->setVariable(
"CONTENT", $snippet);
1592 $wtpl->parseCurrentBlock();
1596 if ($a_cmd ==
"previewFullscreen") {
1597 $this->tpl->setPermanentLink(
1600 ($this->id_type == self::WORKSPACE_NODE_ID)
1606 if (!$is_empty || $a_show_inactive) {
1607 return $wtpl->get();
1621 protected function renderNavigationByDate(
array $a_items, $a_list_cmd =
"render", $a_posting_cmd =
"preview", $a_link_template = null, $a_show_inactive =
false)
1626 foreach ($a_items as
$month => $postings) {
1627 foreach (array_keys($postings) as
$id) {
1629 if (!$a_show_inactive && !$active) {
1630 unset($a_items[
$month][$id]);
1632 $a_items[
$month][
$id][
"active"] = $active;
1635 if (!
sizeof($a_items[
$month])) {
1636 unset($a_items[$month]);
1643 $max_months = $this->
object->getNavModeListMonths();
1645 $wtpl =
new ilTemplate(
"tpl.blog_list_navigation_by_date.html",
true,
true,
"Modules/Blog");
1647 $ilCtrl->setParameter($this,
"blpg",
"");
1649 include_once
"Services/Calendar/classes/class.ilCalendarUtil.php";
1650 $counter = $mon_counter = $last_year = 0;
1651 foreach ($a_items as
$month => $postings) {
1652 if (!$a_link_template && $max_months && $mon_counter >= $max_months) {
1657 $year = substr(
$month, 0, 4);
1658 if (!$last_year || $year != $last_year) {
1668 if (!$a_link_template) {
1670 $month_url =
$ilCtrl->getLinkTarget($this, $a_list_cmd);
1677 if ($mon_counter <= $this->
object->getNavModeListMonthsWithPostings()) {
1679 $wtpl->setCurrentBlock(
"navigation_year_details");
1680 $wtpl->setVariable(
"YEAR", $year);
1681 $wtpl->parseCurrentBlock();
1684 foreach ($postings as
$id => $posting) {
1695 if (!$a_link_template) {
1696 $ilCtrl->setParameterByClass(
"ilblogpostinggui",
"bmn",
$month);
1697 $ilCtrl->setParameterByClass(
"ilblogpostinggui",
"blpg",
$id);
1698 $url =
$ilCtrl->getLinkTargetByClass(
"ilblogpostinggui", $a_posting_cmd);
1703 if (!$posting[
"active"]) {
1704 $wtpl->setVariable(
"NAV_ITEM_DRAFT", $this->lng->txt(
"blog_draft"));
1705 } elseif ($this->
object->hasApproval() && !$posting[
"approved"]) {
1706 $wtpl->setVariable(
"NAV_ITEM_APPROVAL", $this->lng->txt(
"blog_needs_approval"));
1709 $wtpl->setCurrentBlock(
"navigation_item");
1710 $wtpl->setVariable(
"NAV_ITEM_URL",
$url);
1711 $wtpl->setVariable(
"NAV_ITEM_CAPTION", $caption);
1712 $wtpl->parseCurrentBlock();
1715 $wtpl->setCurrentBlock(
"navigation_month_details");
1716 $wtpl->setVariable(
"NAV_MONTH", $month_name);
1717 $wtpl->setVariable(
"URL_MONTH", $month_url);
1718 $wtpl->parseCurrentBlock();
1723 $wtpl->setCurrentBlock(
"navigation_year");
1724 $wtpl->setVariable(
"YEAR", $year);
1725 $wtpl->parseCurrentBlock();
1728 $wtpl->setCurrentBlock(
"navigation_month");
1729 $wtpl->setVariable(
"MONTH_NAME", $month_name);
1730 $wtpl->setVariable(
"URL_MONTH", $month_url);
1731 $wtpl->setVariable(
"MONTH_COUNT",
sizeof($postings));
1732 $wtpl->parseCurrentBlock();
1736 $ilCtrl->setParameter($this,
"bmn", $this->month);
1737 $ilCtrl->setParameterByClass(
"ilblogpostinggui",
"bmn",
"");
1739 return $wtpl->get();
1743 $wtpl =
new ilTemplate(
"tpl.blog_list_navigation_month.html",
true,
true,
"Modules/Blog");
1745 $ilCtrl->setParameter($this,
"blpg",
"");
1747 include_once
"Services/Calendar/classes/class.ilCalendarUtil.php";
1748 $month_options =
array();
1749 foreach ($a_items as
$month => $postings) {
1751 " " . substr(
$month, 0, 4);
1753 $month_options[
$month] = $month_name;
1755 if (
$month == $this->month) {
1756 if (!$a_link_template) {
1758 $month_url =
$ilCtrl->getLinkTarget($this, $a_list_cmd);
1763 foreach ($postings as
$id => $posting) {
1767 if (!$a_link_template) {
1768 $ilCtrl->setParameterByClass(
"ilblogpostinggui",
"bmn",
$month);
1769 $ilCtrl->setParameterByClass(
"ilblogpostinggui",
"blpg",
$id);
1770 $url =
$ilCtrl->getLinkTargetByClass(
"ilblogpostinggui", $a_posting_cmd);
1775 if (!$posting[
"active"]) {
1776 $wtpl->setVariable(
"NAV_ITEM_DRAFT", $this->lng->txt(
"blog_draft"));
1777 } elseif ($this->
object->hasApproval() && !$posting[
"approved"]) {
1778 $wtpl->setVariable(
"NAV_ITEM_APPROVAL", $this->lng->txt(
"blog_needs_approval"));
1781 $wtpl->setCurrentBlock(
"navigation_item");
1782 $wtpl->setVariable(
"NAV_ITEM_URL",
$url);
1783 $wtpl->setVariable(
"NAV_ITEM_CAPTION", $caption);
1784 $wtpl->parseCurrentBlock();
1787 $wtpl->setCurrentBlock(
"navigation_month_details");
1788 if (
$_GET[
"blpg"]) {
1789 $wtpl->setVariable(
"NAV_MONTH", $month_name);
1790 $wtpl->setVariable(
"URL_MONTH", $month_url);
1792 $wtpl->parseCurrentBlock();
1796 if (!
$_GET[
"blpg"]) {
1797 $wtpl->setCurrentBlock(
"option_bl");
1798 foreach ($month_options as $value => $caption) {
1799 $wtpl->setVariable(
"OPTION_VALUE", $value);
1800 $wtpl->setVariable(
"OPTION_CAPTION", $caption);
1801 if ($value == $this->month) {
1802 $wtpl->setVariable(
"OPTION_SEL",
' selected="selected"');
1804 $wtpl->parseCurrentBlock();
1807 $wtpl->setVariable(
"FORM_ACTION",
$ilCtrl->getFormAction($this, $a_list_cmd));
1810 $ilCtrl->setParameter($this,
"bmn", $this->month);
1811 $ilCtrl->setParameterByClass(
"ilblogpostinggui",
"bmn",
"");
1813 return $wtpl->get();
1830 $wtpl =
new ilTemplate(
"tpl.blog_list_navigation_keywords.html",
true,
true,
"Modules/Blog");
1832 $max = max($keywords);
1833 include_once
"Services/Tagging/classes/class.ilTagging.php";
1835 $wtpl->setCurrentBlock(
"keyword");
1837 if (!$a_link_template) {
1839 $url =
$ilCtrl->getLinkTarget($this, $a_list_cmd);
1840 $ilCtrl->setParameter($this,
"kwd",
"");
1845 $wtpl->setVariable(
"TXT_KEYWORD",
$keyword);
1847 $wtpl->setVariable(
"URL_KEYWORD",
$url);
1848 $wtpl->parseCurrentBlock();
1851 return $wtpl->get();
1861 foreach (
$items as $item) {
1863 if ($item[
"author"]) {
1864 $authors[] = $item[
"author"];
1867 if (is_array($item[
"editors"])) {
1868 foreach ($item[
"editors"] as $editor_id) {
1869 if ($editor_id != $item[
"author"]) {
1870 $authors[] = $editor_id;
1878 $authors = array_unique($authors);
1879 if (
sizeof($authors) > 1) {
1880 include_once
"Services/User/classes/class.ilUserUtil.php";
1883 foreach ($authors as $user_id) {
1885 $ilCtrl->setParameter($this,
"ath", $user_id);
1886 $url =
$ilCtrl->getLinkTarget($this, $a_list_cmd);
1887 $ilCtrl->setParameter($this,
"ath",
"");
1890 $idx = trim(strip_tags(
$name)) .
"///" . $user_id;
1896 $wtpl =
new ilTemplate(
"tpl.blog_list_navigation_authors.html",
true,
true,
"Modules/Blog");
1898 $wtpl->setCurrentBlock(
"author");
1900 $wtpl->setVariable(
"TXT_AUTHOR", $author[0]);
1901 $wtpl->setVariable(
"URL_AUTHOR", $author[1]);
1902 $wtpl->parseCurrentBlock();
1905 return $wtpl->get();
1920 $lng = $DIC->language();
1921 $ctrl = $DIC->ctrl();
1923 $f = $DIC->ui()->factory();
1927 :
"previewFullscreen";
1929 if ($single_posting) {
1930 include_once
"Services/Calendar/classes/class.ilCalendarUtil.php";
1933 if ($latest_posting !=
"" &&
$_GET[
"blpg"] != $latest_posting) {
1934 $ctrl->setParameterByClass(
"ilblogpostinggui",
"blpg", $latest_posting);
1935 $mb = $f->button()->standard(
1936 $lng->txt(
"blog_latest_posting"),
1937 $ctrl->getLinkTargetByClass(
"ilblogpostinggui", $cmd)
1940 $mb = $f->button()->standard(
$lng->txt(
"blog_latest_posting"),
"#")->withUnavailableAction();
1944 if ($prev_posting !=
"") {
1945 $ctrl->setParameterByClass(
"ilblogpostinggui",
"blpg", $prev_posting);
1946 $pb = $f->button()->standard(
1947 $lng->txt(
"previous"),
1948 $ctrl->getLinkTargetByClass(
"ilblogpostinggui", $cmd)
1951 $pb = $f->button()->standard(
$lng->txt(
"previous"),
"#")->withUnavailableAction();
1955 if ($next_posting !=
"") {
1956 $ctrl->setParameterByClass(
"ilblogpostinggui",
"blpg", $next_posting);
1957 $nb = $f->button()->standard(
1959 $ctrl->getLinkTargetByClass(
"ilblogpostinggui", $cmd)
1962 $nb = $f->button()->standard(
$lng->txt(
"next"),
"#")->withUnavailableAction();
1964 $ctrl->setParameter($this,
"blpg",
$_GET[
"blpg"]);
1965 $vc = $f->viewControl()->section($pb, $mb, $nb);
1968 include_once
"Services/Calendar/classes/class.ilCalendarUtil.php";
1971 if ($latest_month !=
"" &&
$_GET[
"bmn"] != $latest_month) {
1972 $ctrl->setParameter($this,
"bmn", $latest_month);
1973 $mb = $f->button()->standard(
1974 $lng->txt(
"blog_latest_posting"),
1975 $ctrl->getLinkTarget($this,
"preview")
1978 $mb = $f->button()->standard(
$lng->txt(
"blog_latest_posting"),
"#")->withUnavailableAction();
1982 if ($prev_month !=
"") {
1983 $ctrl->setParameter($this,
"bmn", $prev_month);
1984 $pb = $f->button()->standard(
$lng->txt(
"previous"),
$ctrl->getLinkTarget($this,
"preview"));
1986 $pb = $f->button()->standard(
$lng->txt(
"previous"),
"#")->withUnavailableAction();
1990 if ($next_month !=
"") {
1991 $ctrl->setParameter($this,
"bmn", $next_month);
1992 $nb = $f->button()->standard(
$lng->txt(
"next"),
$ctrl->getLinkTarget($this,
"preview"));
1994 $nb = $f->button()->standard(
$lng->txt(
"next"),
"#")->withUnavailableAction();
1996 $ctrl->setParameter($this,
"bmn",
$_GET[
"bmn"]);
1997 $vc = $f->viewControl()->section($pb, $mb, $nb);
2013 if (
$month > $this->month) {
2031 if ($month < $this->month && $found ==
"") {
2047 return key($a_items);
2062 foreach (
$items as $item) {
2063 if ($item[
"id"] ==
$_GET[
"blpg"]) {
2067 $next_blpg = $item[
"id"];
2086 foreach (
$items as $item) {
2087 if ($found && $prev_blpg ==
"") {
2088 $prev_blpg = $item[
"id"];
2090 if ($item[
"id"] ==
$_GET[
"blpg"]) {
2107 $month = current($a_items);
2109 return current(
$month)[
"id"];
2124 public function renderNavigation(
array $a_items, $a_list_cmd =
"render", $a_posting_cmd =
"preview", $a_link_template = null, $a_show_inactive =
false)
2129 if ($this->
object->getOrder()) {
2130 $order = array_flip($this->
object->getOrder());
2139 $wtpl =
new ilTemplate(
"tpl.blog_list_navigation.html",
true,
true,
"Modules/Blog");
2144 if (
sizeof($a_items)) {
2145 $blocks[$order[
"navigation"]] =
array(
2146 $this->lng->txt(
"blog_navigation"),
2151 if ($this->
object->hasKeywords()) {
2153 $may_edit_keywords = (
$_GET[
"blpg"] &&
2155 $a_list_cmd !=
"preview" &&
2156 $a_list_cmd !=
"gethtml" &&
2159 if ($keywords || $may_edit_keywords) {
2161 $keywords = $this->lng->txt(
"blog_no_keywords");
2164 if ($may_edit_keywords) {
2165 $ilCtrl->setParameterByClass(
"ilblogpostinggui",
"blpg", $_GET[
"blpg"]);
2166 $cmd =
$ilCtrl->getLinkTargetByClass(
"ilblogpostinggui",
"editKeywords");
2167 $ilCtrl->setParameterByClass(
"ilblogpostinggui",
"blpg",
"");
2169 $blocks[$order[
"keywords"]] =
array(
2170 $this->lng->txt(
"blog_keywords"),
2173 ?
array($cmd, $this->lng->txt(
"blog_edit_keywords"))
2180 if (!$a_link_template) {
2182 if ($this->id_type == self::REPOSITORY_NODE_ID &&
2183 $this->
object->hasAuthors()) {
2186 $blocks[$order[
"authors"]] =
array($this->lng->txt(
"blog_authors"), $authors);
2191 if ($this->
object->hasRSS() &&
2193 $a_list_cmd ==
"preview") {
2196 if ($this->id_type != self::WORKSPACE_NODE_ID) {
2199 $url = ILIAS_HTTP_PATH .
"/feed.php?blog_id=" . $blog_id .
2200 "&client_id=" . rawurlencode(CLIENT_ID);
2202 include_once(
"./Services/News/classes/class.ilRSSButtonGUI.php");
2207 if (
sizeof($blocks)) {
2208 include_once
"Services/UIComponent/Panel/classes/class.ilPanelGUI.php";
2211 foreach ($blocks as $block) {
2215 $panel->setHeading($block[0]);
2216 $panel->setBody($block[1]);
2218 if (isset($block[2]) && is_array($block[2])) {
2219 $panel->setFooter(
'<a href="' . $block[2][0] .
'">' . $block[2][1] .
'</a>');
2222 $wtpl->setCurrentBlock(
"block_bl");
2223 $wtpl->setVariable(
"BLOCK", $panel->getHTML());
2224 $wtpl->parseCurrentBlock();
2228 return $wtpl->get();
2240 $keywords =
array();
2241 include_once(
"./Modules/Blog/classes/class.ilBlogPosting.php");
2242 if ($a_posting_id) {
2248 foreach (
$items as $item) {
2265 $keywords =
array();
2266 foreach ($tmp as $item) {
2267 $keywords[$item[
"keyword"]] = $item[
"counter"];
2280 include_once(
"./Services/Export/classes/class.ilExport.php");
2284 $subdir = $this->
object->getType() .
"_" . $this->
object->getId();
2285 $export_dir = $exp_dir .
"/" . $subdir;
2292 include_once(
"./Services/Style/System/classes/class.ilSystemStyleHTMLExport.php");
2294 $this->sys_style_html_export->addImage(
"icon_blog.svg");
2295 $this->sys_style_html_export->export();
2298 include_once(
"./Services/COPage/classes/class.ilCOPageHTMLExport.php");
2301 $this->
object->getStyleSheetId(),
2304 $this->co_page_html_export->createDirectories();
2305 $this->co_page_html_export->exportStyles();
2306 $this->co_page_html_export->exportSupportScripts();
2310 if ($blga_set->get(
"banner")) {
2311 $banner = $this->
object->getImageFullPath();
2313 copy($banner, $export_dir .
"/" . basename($banner));
2316 $ppic = ilObjUser::_getPersonalPicturePath($this->
object->getOwner(),
"xsmall",
true,
true);
2318 $ppic = array_shift(explode(
"?", $ppic));
2319 copy($ppic, $export_dir .
"/" . basename($ppic));
2330 "/" . $date .
"__" . IL_INST_ID .
"__" .
2331 $this->
object->getType() .
"_" . $this->
object->getId() .
".zip";
2348 public function exportHTMLPages($a_target_directory, $a_link_template = null, $a_tpl_callback = null, $a_co_page_html_export = null, $a_index_name =
"index.html")
2350 require_once(
'Services/MathJax/classes/class.ilMathJax.php');
2353 if (!$a_link_template) {
2354 $a_link_template =
"bl{TYPE}_{ID}.html";
2357 if ($a_co_page_html_export) {
2358 $this->co_page_html_export = $a_co_page_html_export;
2369 foreach (array_keys($this->items) as
$month) {
2370 $list = $this->
renderList($this->items[$month],
"render", $a_link_template,
false, $a_target_directory);
2376 if (!$a_tpl_callback) {
2379 $tpl = call_user_func($a_tpl_callback);
2384 $a_target_directory,
2392 copy(
$file, $a_target_directory .
"/" . $a_index_name);
2400 $list_items = $this->filterItemsByKeyword($this->items, $keyword);
2401 $list = $this->
renderList($list_items,
"render", $a_link_template,
false, $a_target_directory);
2407 if (!$a_tpl_callback) {
2410 $tpl = call_user_func($a_tpl_callback);
2415 $a_target_directory,
2426 include_once(
"./Services/COPage/classes/class.ilPageContentUsage.php");
2427 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
2429 foreach ($pages as $page) {
2431 include_once(
"./Modules/Blog/classes/class.ilBlogPostingGUI.php");
2433 $blp_gui->setOutputMode(
"offline");
2434 $blp_gui->setFullscreenLink(
"fullscreen.html");
2435 $blp_gui->add_date =
true;
2436 $page_content = $blp_gui->showPage();
2446 if (!$a_tpl_callback) {
2449 $tpl = call_user_func($a_tpl_callback);
2453 $_GET[
"blpg"] = $page[
"id"];
2455 $_GET[
"blpg"] = null;
2458 $a_target_directory,
2466 $this->co_page_html_export->collectPageElements(
"blp:pg", $page[
"id"]);
2469 $this->co_page_html_export->exportPageElements();
2489 if (!self::$keyword_export_map) {
2490 self::$keyword_export_map = array_flip(array_keys($this->
getKeywords(
false)));
2492 $a_id = self::$keyword_export_map[$a_id];
2501 $link = str_replace(
"{TYPE}",
$a_type, $a_template);
2502 return str_replace(
"{ID}", $a_id, $link);
2516 $tpl = $this->co_page_html_export->getPreparedMainTemplate();
2518 $tpl->getStandardTemplate();
2520 $ilTabs->clearTargets();
2522 $ilTabs->setBackTarget(
$lng->txt(
"back"), $a_back_url);
2542 $file = $a_target_directory .
"/" . $a_file;
2544 if (@is_file(
$file)) {
2550 "tpl.export_page.html",
2556 $ep_tpl->setVariable(
"PAGE_CONTENT",
$a_content);
2561 $a_tpl->setContent($ep_tpl->get());
2565 if ($a_right_content) {
2566 $a_tpl->setRightContent($a_right_content);
2567 unset($a_right_content);
2570 $content = $a_tpl->get(
2581 if (!file_put_contents(
$file, $content)) {
2582 die(
"<b>Error</b>: Could not open \"" .
$file .
"\" for writing" .
2583 " in <b>" . __FILE__ .
"</b> on line <b>" . __LINE__ .
"</b><br />");
2594 if ($_REQUEST[
"blpg"]) {
2595 return $_REQUEST[
"blpg"];
2602 $this->disable_notes = (bool) $a_value;
2611 if ($a_cmd ==
"preview" || $a_cmd ==
"previewFullscreen" ||
$_GET[
"prvm"]) {
2613 if (
$ilUser->getId() != ANONYMOUS_USER_ID) {
2614 if (!
$_GET[
"prvm"]) {
2615 $ilCtrl->setParameter($this,
"prvm",
"fsc");
2618 if (!
$_GET[
"prvm"]) {
2619 $ilCtrl->setParameter($this,
"prvm",
"");
2623 return parent::addHeaderAction();
2632 if (!$this->obj_id) {
2636 $sub_type = $sub_id = null;
2637 if (
$_GET[
"blpg"]) {
2639 $sub_id = (int)
$_GET[
"blpg"];
2642 $lg = parent::initHeaderAction($sub_type, $sub_id);
2644 if ($a_is_preview) {
2645 $lg->enableComments(
false);
2646 $lg->enableNotes(
false);
2647 $lg->enableTags(
false);
2649 include_once
"./Services/Notification/classes/class.ilNotification.php";
2651 $ilCtrl->setParameter($this,
"ntf", 1);
2652 $link =
$ilCtrl->getLinkTarget($this,
"setNotification");
2653 $ilCtrl->setParameter($this,
"ntf",
"");
2655 $lg->addCustomCommand($link,
"blog_notification_toggle_off");
2661 $this->lng->txt(
"blog_notification_activated")
2664 $ilCtrl->setParameter($this,
"ntf", 2);
2665 $link =
$ilCtrl->getLinkTarget($this,
"setNotification");
2666 $ilCtrl->setParameter($this,
"ntf",
"");
2667 $lg->addCustomCommand($link,
"blog_notification_toggle_on");
2672 $this->lng->txt(
"blog_notification_deactivated")
2678 $ilCtrl->setParameter($this,
"prvm",
"");
2680 $ilCtrl->setParameter($this,
"bmn",
"");
2681 $ilCtrl->setParameter($this,
"blpg",
"");
2682 $link =
$ilCtrl->getLinkTarget($this,
"");
2683 $ilCtrl->setParameter($this,
"blpg", $sub_id);
2684 $ilCtrl->setParameter($this,
"bmn", $this->month);
2685 $lg->addCustomCommand($link,
"blog_edit");
2688 $link =
$ilCtrl->getLinkTargetByClass(
"ilblogpostinggui",
"edit");
2689 $lg->addCustomCommand($link,
"blog_edit_posting");
2692 $ilCtrl->setParameter($this,
"prvm",
"fsc");
2695 $ilCtrl->setParameter($this,
"ntf",
"");
2706 include_once
"./Services/Notification/classes/class.ilNotification.php";
2707 switch (
$_GET[
"ntf"]) {
2717 $ilCtrl->redirect($this,
"preview");
2730 include_once
"Modules/Blog/classes/class.ilBlogPosting.php";
2732 if (
$post->getBlogId() == $a_blog_id) {
2733 return $post->getTitle();
2744 foreach ($this->items as
$month => $postings) {
2745 foreach ($postings as
$id => $item) {
2748 } elseif ($this->
object->hasApproval() && !$item[
"approved"]) {
2752 if (!
sizeof($this->items[
$month])) {
2753 unset($this->items[$month]);
2757 if ($this->items && !isset($this->items[$this->month])) {
2758 $this->month = array_shift(array_keys($this->items));
2765 include_once(
"./Modules/Blog/classes/class.ilBlogPosting.php");
2767 foreach (
$items as $item) {
2802 if ($this->id_type == self::WORKSPACE_NODE_ID) {
2816 if (!$a_author_id) {
2817 include_once
"Modules/Blog/classes/class.ilBlogPosting.php";
2819 $a_author_id =
$post->getAuthor();
2821 if (
$ilUser->getId() == $a_author_id) {
2840 if ($this->id_type == self::WORKSPACE_NODE_ID) {
2852 if (is_object($this->
object)) {
2853 $ilLocator->addItem($this->
object->getTitle(), $this->ctrl->getLinkTarget($this,
""),
"",
$this->node_id);
2860 include_once
"Modules/Blog/classes/class.ilBlogPosting.php";
2862 $post->setApproved(
true);
2863 $post->setBlogNodeId($this->node_id, ($this->id_type == self::WORKSPACE_NODE_ID));
2864 $post->update(
true,
false,
true,
"new");
2869 $this->ctrl->redirect($this,
"render");
2889 $ilTabs->activateTab(
"contributors");
2891 $local_roles = $this->
object->getAllLocalRoles($this->node_id);
2894 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
2899 'auto_complete_name' =>
$lng->txt(
'user'),
2900 'submit_name' =>
$lng->txt(
'add'),
2901 'add_search' =>
true,
2903 'user_type' => $local_roles
2908 $other_roles = $this->
object->getRolesWithContributeOrRedact($this->node_id);
2910 ilUtil::sendInfo(sprintf(
$lng->txt(
"blog_contribute_other_roles"), implode(
", ", $other_roles)));
2913 include_once
"Modules/Blog/classes/class.ilContributorTableGUI.php";
2926 if (!strlen(trim(
$_POST[
'user_login']))) {
2932 $user_ids =
array();
2941 $user_ids[] = $user_id;
2963 if (!count($a_user_ids) || !$a_user_type) {
2969 $local_roles = array_keys($this->
object->getAllLocalRoles($this->node_id));
2970 if (!in_array($a_user_type, $local_roles)) {
2975 foreach ($a_user_ids as $user_id) {
2976 if (!
$rbacreview->isAssigned($user_id, $a_user_type)) {
2977 $rbacadmin->assignUser($a_user_type, $user_id);
2982 $ilCtrl->redirect($this,
"contributors");
2992 if (!
sizeof($ids)) {
2994 $this->ctrl->redirect($this,
"contributors");
2997 include_once
'./Services/Utilities/classes/class.ilConfirmationGUI.php';
2999 $confirm->setHeaderText($this->lng->txt(
'blog_confirm_delete_contributors'));
3000 $confirm->setFormAction($this->ctrl->getFormAction($this,
'removeContributor'));
3001 $confirm->setConfirm($this->lng->txt(
'delete'),
'removeContributor');
3002 $confirm->setCancel($this->lng->txt(
'cancel'),
'contributors');
3004 include_once
'Services/User/classes/class.ilUserUtil.php';
3006 foreach ($ids as $user_id) {
3014 $this->tpl->setContent($confirm->getHTML());
3028 if (!
sizeof($ids)) {
3030 $ilCtrl->redirect($this,
"contributors");
3034 $local_roles = array_keys($this->
object->getAllLocalRoles($this->node_id));
3035 if (!$local_roles) {
3040 foreach ($ids as $user_id) {
3041 foreach ($local_roles as $role_id) {
3042 $rbacadmin->deassignUser($role_id, $user_id);
3047 $this->ctrl->redirect($this,
"contributors");
3057 include_once
'./Services/PersonalDesktop/classes/class.ilDesktopItemGUI.php';
3069 include_once
'./Services/PersonalDesktop/classes/class.ilDesktopItemGUI.php';
3078 include_once
"Modules/Blog/classes/class.ilBlogPosting.php";
3080 $post->setApproved(
false);
3081 $post->setActive(
false);
3082 $post->update(
true,
false,
false);
3087 $this->ctrl->redirect($this,
"render");
3099 if ($a_tpl != null) {
3105 $ctpl->setCurrentBlock(
"ContentStyle");
3107 "LOCATION_CONTENT_STYLESHEET",
3110 $ctpl->parseCurrentBlock();
3117 $this->tabs_gui->activateTab(
"settings");
3121 $this->tpl->setContent(
$form->getHTML());
3128 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
3129 $this->lng->loadLanguageModule(
"style");
3131 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
3134 $fixed_style =
$ilSetting->get(
"fixed_content_style_id");
3135 $style_id = $this->
object->getStyleSheetId();
3137 if ($fixed_style > 0) {
3140 $this->lng->txt(
"global_fixed") .
")");
3141 $form->addItem($st);
3146 (
int)
$_GET[
"ref_id"]
3149 $st_styles[0] = $this->lng->txt(
"default");
3152 if ($style_id > 0) {
3157 $form->addItem($st);
3160 $form->addCommandButton(
"editStyle", $this->lng->txt(
"style_edit_style"));
3161 $form->addCommandButton(
"deleteStyle", $this->lng->txt(
"style_delete_style"));
3167 $this->lng->txt(
"style_current_style"),
3171 $style_sel->setValue($style_id);
3172 $form->addItem($style_sel);
3174 $form->addCommandButton(
"saveStyleSettings", $this->lng->txt(
"save"));
3175 $form->addCommandButton(
"createStyle", $this->lng->txt(
"sty_create_ind_style"));
3179 $form->setTitle($this->lng->txt(
"blog_style"));
3180 $form->setFormAction($this->ctrl->getFormAction($this));
3187 $this->ctrl->redirectByClass(
"ilobjstylesheetgui",
"create");
3192 $this->ctrl->redirectByClass(
"ilobjstylesheetgui",
"edit");
3197 $this->ctrl->redirectByClass(
"ilobjstylesheetgui",
"delete");
3204 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
3205 if (
$ilSetting->get(
"fixed_content_style_id") <= 0 &&
3207 || $this->
object->getStyleSheetId() == 0)) {
3209 $this->
object->update();
3213 $this->ctrl->redirect($this,
"editStyleProperties");
3223 if (substr($a_target, -3) ==
"wsp") {
3224 $id = explode(
"_", $a_target);
3226 $_GET[
"baseClass"] =
"ilSharedResourceGUI";
3228 if (
sizeof(
$id) == 3) {
3232 $id = explode(
"_", $a_target);
3234 $_GET[
"baseClass"] =
"ilRepositoryGUI";
3236 $_GET[
"cmd"] =
"preview";
3237 if (
sizeof(
$id) == 2) {
3238 if (is_numeric(
$id[1])) {
3241 $_REQUEST[
"kwd"] =
$id[1];
3246 include(
"ilias.php");
static _createExportDirectory($a_obj_id, $a_export_type="xml", $a_obj_type="")
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
renderNavigation(array $a_items, $a_list_cmd="render", $a_posting_cmd="preview", $a_link_template=null, $a_show_inactive=false)
Build navigation blocks.
static sortArray( $array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static _lookupName($a_user_id)
lookup user name
getLatestPosting($a_items)
Get previous posting.
filterInactivePostings()
Filter inactive items from items list.
static _recordReadEvent( $a_type, $a_ref_id, $obj_id, $usr_id, $isCatchupWriteEvents=true, $a_ext_rc=false, $a_ext_time=false)
Records a read event and catches up with write events.
const ABSTRACT_DEFAULT_IMAGE_WIDTH
This class represents an option in a radio group.
addUserFromAutoComplete()
Autocomplete submit.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
if(isset($_REQUEST['delete'])) $list
static hasNotification($type, $user_id, $id)
Check notification status for object and user.
disableNotes($a_value=false)
mayContribute()
Check if user may contribute at all.
renderFullscreenHeader($a_tpl, $a_user_id, $a_export=false)
Render banner, user name.
static lookupBlogId($a_posting_id)
Lookup blog id.
getNextPosting($a_items)
Get next posting.
setValue($a_value)
Set Value.
renderNavigationByDate(array $a_items, $a_list_cmd="render", $a_posting_cmd="preview", $a_link_template=null, $a_show_inactive=false)
Build navigation by date block.
preview()
Render fullscreen presentation.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_node_id=null)
Check permission.
New implementation of ilObjectGUI.
GUI class for the workflow of copying objects.
HTML export class for pages.
static _goto($a_target)
Deep link.
static lookupSubObjectTitle($a_blog_id, $a_posting_id)
Get title for blog posting (used in ilNotesGUI)
Class ilBlogPosting GUI class.
getAccessHandler()
Get access handler.
static _getStaticLink( $a_ref_id, $a_type='', $a_fallback_goto=true, $append="")
Get static link.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false)
Format a date public.
getPermanentLinkWidget($a_append=null, $a_center=false)
HTML export class for system styles.
initStylePropertiesForm()
getPreviousMonth($a_items)
Get next month.
if(!array_key_exists('StateId', $_REQUEST)) $id
static hasOptOut($obj_id)
Is opt out (disable notification) allowed?
buildExportTemplate($a_back_url="")
Build export "frame".
static _lookupId($a_user_str)
Lookup id by login.
static _lookupTitle($a_id)
lookup object title
static _getStandardStyles( $a_exclude_default_style=false, $a_include_deactivated=false, $a_scope=0)
Get standard styles.
static getKeywords($a_obj_id, $a_posting_id)
export()
Build and deliver export file.
const ABSTRACT_DEFAULT_SHORTEN_LENGTH
static addToDesktop()
Add desktop item public.
setInfo($a_info)
Set Info.
updateCustom(ilPropertyFormGUI $a_form)
static _numericMonthToString($a_month, $a_long=true)
numeric month to string
initEditCustomForm(ilPropertyFormGUI $a_form)
filterItemsByKeyWord(array $a_items, $a_keyword)
static _lookupStandard($a_id)
Lookup standard flag.
getEditFormCustomValues(array &$a_values)
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getAllPostings($a_blog_id, $a_limit=1000, $a_offset=0)
Get all postings of blog.
Export User Interface Class.
getListItems($a_show_inactive=false)
Filter blog postings by month, keyword or author.
buildEmbedded($a_content, $a_nav)
Combine content (list/posting) and navigation to html chunk.
renderList(array $items, $a_cmd="preview", $a_link_template=null, $a_show_inactive=false, $a_export_directory=null)
Build posting month list.
static exists($a_blog_id, $a_posting_id)
Checks whether a posting exists.
buildExportFile()
Build export file.
getNextMonth($a_items)
Get next month.
__construct($a_id=0, $a_id_type=self::REPOSITORY_NODE_ID, $a_parent_node_id=0)
foreach($_POST as $key=> $value) $res
renderFullScreen($a_content, $a_navigation)
Build fullscreen context.
if(isset($_POST['submit'])) $form
static _lookupActive($a_id, $a_parent_type, $a_check_scheduled_activation=false, $a_lang="-")
lookup activation status
const ABSTRACT_DEFAULT_IMAGE_HEIGHT
buildPostingList($a_obj_id)
Gather all blog postings.
confirmRemoveContributor()
Used in ilContributorTableGUI.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static getSnippet($a_id, $a_truncate=false, $a_truncate_length=500, $a_truncate_sign="...", $a_include_picture=false, $a_picture_width=144, $a_picture_height=144, $a_export_directory=null)
Get first text paragraph of page.
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
special template class to simplify handling of ITX/PEAR
omitLocator($a_omit=true)
static getEffectiveContentStyleId($a_style_id, $a_type="")
Get effective Style Id.
static setNotification($type, $user_id, $id, $status=true)
Set notification status for object and user.
static stripSlashesRecursive($a_data, $a_strip_html=true, $a_allow="")
Strip slashes from array and sub-arrays.
This class represents a text property in a property form.
render()
Render object context.
static _lookupOwner($a_id)
lookup object owner
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static getNamePresentation( $a_user_id, $a_user_image=false, $a_profile_link=false, $a_profile_back_link="", $a_force_first_lastname=false, $a_omit_login=false, $a_sortable=true, $a_return_data_array=false, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:
static signFile($path_to_file)
static getContentStylePath($a_style_id, $add_random=true)
get content style path
static getRelevanceClass($cnt, $max)
Get style class for tag relevance.
addContributor($a_user_ids=array(), $a_user_type=null)
Centralized method to add contributors.
static zip($a_dir, $a_file, $compress_content=false)
zips given directory/file into given zip.file
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
createPosting()
Create new posting.
infoScreenForward()
show information screen
User interface class for advanced drop-down selection lists.
buildExportLink($a_template, $a_type, $a_id)
Build static export link.
removeContributor()
Used in ilContributorTableGUI.
static removeFromDesktop()
Remove item from personal desktop public.
getKeywords($a_show_inactive, $a_posting_id=null)
Get keywords for single posting or complete blog.
renderNavigationByAuthors(array $a_items, $a_list_cmd="render", $a_show_inactive=false)
static getInstance()
Get instance.
setContentStyleSheet($a_tpl=null)
renderNavigationByKeywords($a_list_cmd="render", $a_show_inactive=false, $a_link_template=false)
Build navigation by keywords block.
infoScreen()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually...
isAdmin()
Check if user has admin access (approve, may edit & deactivate all postings)
This class represents a non editable value in a property form.
Interface for gui classes (e.g ilLuceneSearchGUI) that offer add/remove to/from desktop.
static getInstance()
Singleton: get instance.
Create new PHPExcel object
obj_idprivate
static $keyword_export_map
Class ilObjStyleSheetGUI.
setSettingsSubTabs($a_active)
Handles general notification settings, see e.g.
insertHeaderAction($a_list_gui)
Insert header action into main template.
initCreationForms($a_new_type)
initHeaderAction($sub_type=null, $sub_id=null, $a_is_preview=false)
const PANEL_STYLE_SECONDARY
static _getExportDirectory($a_obj_id, $a_type="xml", $a_obj_type="", $a_entity="")
Get export directory for an repository object.
prepareOutput($a_show_subobjects=true)
getPreviousPosting($a_items)
Get previous posting.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
const HEADING_STYLE_BLOCK
getLatestMonth($a_items)
Get next month.
List all contributors members of a blog.
writeExportFile($a_target_directory, $a_file, $a_tpl, $a_content, $a_right_content=null, $a_back=null)
Write HTML to file.
static checkExercise($a_node_id)
static _getNotesOfObject( $a_rep_obj_id, $a_obj_id, $a_obj_type, $a_type=IL_NOTE_PRIVATE, $a_incl_sub=false, $a_filter="", $a_all_public="y", $a_repository_mode=true, $a_sort_ascending=false)
get all notes related to a specific object
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
addHeaderActionForCommand($a_cmd)
afterSave(ilObject $a_new_object)
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
renderToolbarNavigation($a_items, $single_posting=false)
Toolbar navigation.
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
Confirmation screen class.
getHTML()
Return embeddable HTML chunk.
exportHTMLPages($a_target_directory, $a_link_template=null, $a_tpl_callback=null, $a_co_page_html_export=null, $a_index_name="index.html")
Export all pages.
mayEditPosting($a_posting_id, $a_author_id=null)
Check if user may edit posting.