5require_once 
"./Services/Object/classes/class.ilObject2GUI.php";
 
    6require_once 
"./Modules/Blog/classes/class.ilBlogPosting.php";
 
    7require_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();
 
   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]);
 
  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')) {
 
  194            $rss->setInfo(
$lng->txt(
"blog_enable_rss_info"));
 
  202        $nav->setTitle(
$lng->txt(
"blog_settings_navigation"));
 
  206        $nav_mode->setRequired(
true);
 
  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");
 
  260        $order->setMultiValues($order_options);
 
  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);
 
  322        $abs_shorten_len->setSize(5);
 
  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"));
 
  333        $abs_img_width->setSize(5);
 
  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);
 
  340        $abs_img_height->setSize(5);
 
  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");
 
  727                $style_gui = 
new ilObjStyleSheetGUI(
"", $this->object->getStyleSheetId(), 
false, 
false);
 
  728                $style_gui->omitLocator();
 
  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) {
 
  843            $info->addProperty($this->lng->txt(
"perma_link"), $this->getPermanentLinkWidget());
 
  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) {
 
 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) {
 
 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);
 
 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) {
 
 1632                    $a_items[
$month][
$id][
"active"] = $active;
 
 1635            if (!
sizeof($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();
 
 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"),
 
 2147                $this->renderNavigationByDate($a_items, $a_list_cmd, $a_posting_cmd, $a_link_template, $a_show_inactive)
 
 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,
 
 2902                'add_from_container'    => $this->node_id,
 
 2903                'user_type'                             => $local_roles
 
 2908        $other_roles = $this->
object->getRolesWithContributeOrRedact($this->node_id);
 
 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"),
 
 3170                $style_sel->setOptions($st_styles);
 
 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");
 
sprintf('%.4f', $callTime)
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
An exception for terminatinating execution or to throw for unit testing.
User interface class for advanced drop-down selection lists.
static checkExercise($a_node_id)
Class ilBlogPosting GUI class.
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.
static getAllPostings($a_blog_id, $a_limit=1000, $a_offset=0)
Get all postings of blog.
static lookupBlogId($a_posting_id)
Lookup blog id.
static exists($a_blog_id, $a_posting_id)
Checks whether a posting exists.
static getKeywords($a_obj_id, $a_posting_id)
HTML export class for pages.
static _numericMonthToString($a_month, $a_long=true)
numeric month to string
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.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Confirmation screen class.
List all contributors members of a blog.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false)
Format a date @access public.
static addToDesktop()
Add desktop item @access public.
static removeFromDesktop()
Remove item from personal desktop @access public.
Base class for ILIAS Exception handling.
Export User Interface Class.
static _getExportDirectory($a_obj_id, $a_type="xml", $a_obj_type="", $a_entity="")
Get export directory for an repository object.
static _createExportDirectory($a_obj_id, $a_export_type="xml", $a_obj_type="")
static _getStaticLink( $a_ref_id, $a_type='', $a_fallback_goto=true, $append="")
Get static link.
static getInstance()
Singleton: get instance.
This class represents a non editable value in a property form.
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 setNotification($type, $user_id, $id, $status=true)
Set notification status for object and user.
static hasNotification($type, $user_id, $id)
Check notification status for object and user.
static hasOptOut($obj_id)
Is opt out (disable notification) allowed?
infoScreen()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually,...
setSettingsSubTabs($a_active)
initCreationForms($a_new_type)
Init creation froms.
getPreviousPosting($a_items)
Get previous posting.
isAdmin()
Check if user has admin access (approve, may edit & deactivate all postings)
renderNavigationByKeywords($a_list_cmd="render", $a_show_inactive=false, $a_link_template=false)
Build navigation by keywords block.
writeExportFile($a_target_directory, $a_file, $a_tpl, $a_content, $a_right_content=null, $a_back=null)
Write HTML to file.
renderNavigationByAuthors(array $a_items, $a_list_cmd="render", $a_show_inactive=false)
executeCommand()
execute command
addUserFromAutoComplete()
Autocomplete submit.
getType()
Functions that must be overwritten.
setContentStyleSheet($a_tpl=null)
renderFullScreen($a_content, $a_navigation)
Build fullscreen context.
static $keyword_export_map
initHeaderAction($sub_type=null, $sub_id=null, $a_is_preview=false)
renderNavigation(array $a_items, $a_list_cmd="render", $a_posting_cmd="preview", $a_link_template=null, $a_show_inactive=false)
Build navigation blocks.
getPreviousMonth($a_items)
Get next month.
addLocatorItems()
Functions to be overwritten.
removeContributor()
Used in ilContributorTableGUI.
renderList(array $items, $a_cmd="preview", $a_link_template=null, $a_show_inactive=false, $a_export_directory=null)
Build posting month list.
disableNotes($a_value=false)
getEditFormCustomValues(array &$a_values)
Add values to custom edit fields.
initEditCustomForm(ilPropertyFormGUI $a_form)
Add custom fields to update form.
export()
Build and deliver export file.
getHTML()
Return embeddable HTML chunk.
renderFullscreenHeader($a_tpl, $a_user_id, $a_export=false)
Render banner, user name.
static _goto($a_target)
Deep link.
buildExportTemplate($a_back_url="")
Build export "frame".
getNextMonth($a_items)
Get next month.
mayEditPosting($a_posting_id, $a_author_id=null)
Check if user may edit posting.
__construct($a_id=0, $a_id_type=self::REPOSITORY_NODE_ID, $a_parent_node_id=0)
Constructor.
render()
Render object context.
initStylePropertiesForm()
getListItems($a_show_inactive=false)
Filter blog postings by month, keyword or author.
buildPostingList($a_obj_id)
Gather all blog postings.
filterInactivePostings()
Filter inactive items from items list.
filterItemsByKeyWord(array $a_items, $a_keyword)
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.
mayContribute()
Check if user may contribute at all.
buildExportFile()
Build export file.
setTabs()
create tabs (repository/workspace switch)
static lookupSubObjectTitle($a_blog_id, $a_posting_id)
Get title for blog posting (used in ilNotesGUI)
getLatestMonth($a_items)
Get next month.
getNextPosting($a_items)
Get next posting.
buildExportLink($a_template, $a_type, $a_id)
Build static export link.
addContributor($a_user_ids=array(), $a_user_type=null)
Centralized method to add contributors.
getLatestPosting($a_items)
Get previous posting.
preview()
Render fullscreen presentation.
confirmRemoveContributor()
Used in ilContributorTableGUI.
getKeywords($a_show_inactive, $a_posting_id=null)
Get keywords for single posting or complete blog.
infoScreenForward()
show information screen
updateCustom(ilPropertyFormGUI $a_form)
Insert custom update form values into object.
renderToolbarNavigation($a_items, $single_posting=false)
Toolbar navigation.
createPosting()
Create new posting.
buildEmbedded($a_content, $a_nav)
Combine content (list/posting) and navigation to html chunk.
addHeaderActionForCommand($a_cmd)
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.
afterSave(ilObject $a_new_object)
Post (successful) object creation hook.
const ABSTRACT_DEFAULT_SHORTEN_LENGTH
const ABSTRACT_DEFAULT_IMAGE_WIDTH
const ABSTRACT_DEFAULT_IMAGE_HEIGHT
Handles general notification settings, see e.g.
Class ilObjStyleSheetGUI.
static _lookupStandard($a_id)
Lookup standard flag.
static _getStandardStyles( $a_exclude_default_style=false, $a_include_deactivated=false, $a_scope=0)
Get standard styles.
static getEffectiveContentStyleId($a_style_id, $a_type="")
Get effective Style Id.
static getContentStylePath($a_style_id, $add_random=true)
get content style path
static _lookupId($a_user_str)
Lookup id by login.
static _lookupName($a_user_id)
lookup user name
New implementation of ilObjectGUI.
getAccessHandler()
Get access handler.
prepareOutput($a_show_subobjects=true)
prepare output
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_node_id=null)
Check permission.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
getCreationMode()
get creation mode
GUI class for the workflow of copying objects.
insertHeaderAction($a_list_gui)
Insert header action into main template.
Class ilObject Basic functions for all objects.
static _lookupTitle($a_id)
lookup object title
static _lookupOwner($a_id)
lookup object owner
static _lookupActive($a_id, $a_parent_type, $a_check_scheduled_activation=false, $a_lang="-")
lookup activation status
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
const PANEL_STYLE_SECONDARY
const HEADING_STYLE_BLOCK
static getInstance()
Get instance.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
This class represents an option in a radio group.
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
HTML export class for system styles.
static getRelevanceClass($cnt, $max)
Get style class for tag relevance.
special template class to simplify handling of ITX/PEAR
This class represents a text property in a property form.
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 delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
static sortArray( $array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static stripSlashesRecursive($a_data, $a_strip_html=true, $a_allow="")
Strip slashes from array and sub-arrays.
static zip($a_dir, $a_file, $compress_content=false)
zips given directory/file into given zip.file
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
static signFile($path_to_file)
if(!array_key_exists('StateId', $_REQUEST)) $id
Interface for gui classes (e.g ilLuceneSearchGUI) that offer add/remove to/from desktop.
if(isset($_POST['submit'])) $form
if(isset($_REQUEST['delete'])) $list
if(!file_exists("$old.txt")) if( $old===$new) if(file_exists("$new.txt")) $file
foreach($_POST as $key=> $value) $res