/**
  * Collect page elements (that need to be exported separately)
  *
  * @param string $a_pg_type page type
  * @param int $a_pg_id page id
  */
 function collectPageElements($a_type, $a_id)
 {
     // collect media objects
     $pg_mobs = ilObjMediaObject::_getMobsOfObject($a_type, $a_id);
     foreach ($pg_mobs as $pg_mob) {
         $this->mobs[$pg_mob] = $pg_mob;
     }
     // collect all files
     include_once "./Modules/File/classes/class.ilObjFile.php";
     $files = ilObjFile::_getFilesOfObject($a_type, $a_id);
     foreach ($files as $f) {
         $this->files[$f] = $f;
     }
     $skill_tree = $ws_tree = null;
     $pcs = ilPageContentUsage::getUsagesOfPage($a_id, $a_type);
     foreach ($pcs as $pc) {
         // skils
         if ($pc["type"] == "skmg") {
             $skill_id = $pc["id"];
             // get user id from portfolio page
             include_once "Services/Portfolio/classes/class.ilPortfolioPage.php";
             $page = new ilPortfolioPage(0, $a_id);
             $user_id = $page->create_user;
             // we only need 1 instance each
             if (!$skill_tree) {
                 include_once "Services/Skill/classes/class.ilSkillTree.php";
                 $skill_tree = new ilSkillTree();
                 include_once "Services/Skill/classes/class.ilPersonalSkill.php";
                 include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php";
                 $ws_tree = new ilWorkspaceTree($user_id);
             }
             // walk skill tree
             $b_skills = ilSkillTreeNode::getSkillTreeNodes($skill_id, true);
             foreach ($b_skills as $bs) {
                 $skill = ilSkillTreeNodeFactory::getInstance($bs["id"]);
                 $level_data = $skill->getLevelData();
                 foreach ($level_data as $k => $v) {
                     // get assigned materials from personal skill
                     $mat = ilPersonalSkill::getAssignedMaterial($user_id, $bs["tref"], $v["id"]);
                     if (sizeof($mat)) {
                         foreach ($mat as $item) {
                             $wsp_id = $item["wsp_id"];
                             $obj_id = $ws_tree->lookupObjectId($wsp_id);
                             // all possible material types for now
                             switch (ilObject::_lookupType($obj_id)) {
                                 case "file":
                                     $this->files[$obj_id] = $obj_id;
                                     break;
                                 case "tstv":
                                     include_once "Modules/Test/classes/class.ilObjTestVerification.php";
                                     $obj = new ilObjTestVerification($obj_id, false);
                                     $this->files_direct[$obj_id] = array($obj->getFilePath(), $obj->getOfflineFilename());
                                     break;
                                 case "excv":
                                     include_once "Modules/Exercise/classes/class.ilObjExerciseVerification.php";
                                     $obj = new ilObjExerciseVerification($obj_id, false);
                                     $this->files_direct[$obj_id] = array($obj->getFilePath(), $obj->getOfflineFilename());
                                     break;
                             }
                         }
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Add current object (repository/workspace) as target for login url
  * 
  * @return string
  */
 public static function buildLoginTarget()
 {
     global $tree, $ilUser;
     $target_str = "";
     // repository
     if ($_GET["ref_id"] != "") {
         if ($tree->isInTree($_GET["ref_id"]) && $_GET["ref_id"] != $tree->getRootId()) {
             $obj_id = ilObject::_lookupObjId($_GET["ref_id"]);
             $type = ilObject::_lookupType($obj_id);
             $target_str = $type . "_" . $_GET["ref_id"];
         }
     } else {
         if ($_GET["wsp_id"] != "") {
             include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php";
             $tree = new ilWorkspaceTree($ilUser->getId());
             $obj_id = $tree->lookupObjectId((int) $_GET["wsp_id"]);
             if ($obj_id) {
                 $type = ilObject::_lookupType($obj_id);
                 $target_str = $type . "_" . (int) $_GET["wsp_id"] . "_wsp";
             }
         } else {
             if ($_GET["prt_id"] != "") {
                 $target_str = "prtf_" . (int) $_GET["prt_id"];
             }
         }
     }
     return $target_str;
 }
 /**
  * Deliver blog as rss feed
  * 
  * @param int $a_wsp_id
  */
 static function deliverRSS($a_wsp_id)
 {
     global $tpl, $ilSetting;
     if (!$ilSetting->get('enable_global_profiles')) {
         return;
     }
     // #10827
     if (substr($a_wsp_id, -4) != "_cll") {
         include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php";
         $wsp_id = new ilWorkspaceTree(0);
         $obj_id = $wsp_id->lookupObjectId($a_wsp_id);
         $is_wsp = "_wsp";
     } else {
         $a_wsp_id = substr($a_wsp_id, 0, -4);
         $obj_id = ilObject::_lookupObjId($a_wsp_id);
         $is_wsp = null;
     }
     if (!$obj_id) {
         return;
     }
     $blog = new self($obj_id, false);
     if (!$blog->hasRSS()) {
         return;
     }
     include_once "Services/Feeds/classes/class.ilFeedWriter.php";
     $feed = new ilFeedWriter();
     include_once "Services/Link/classes/class.ilLink.php";
     $url = ilLink::_getStaticLink($a_wsp_id, "blog", true, $is_wsp);
     $url = str_replace("&", "&", $url);
     $feed->setChannelTitle($blog->getTitle());
     $feed->setChannelDescription($blog->getDescription());
     $feed->setChannelLink($url);
     // needed for blogpostinggui / pagegui
     $tpl = new ilTemplate("tpl.main.html", true, true);
     include_once "./Modules/Blog/classes/class.ilBlogPosting.php";
     include_once "./Modules/Blog/classes/class.ilBlogPostingGUI.php";
     foreach (ilBlogPosting::getAllPostings($obj_id) as $item) {
         $id = $item["id"];
         // only published items
         $is_active = ilBlogPosting::_lookupActive($id, "blp");
         if (!$is_active) {
             continue;
         }
         $snippet = strip_tags(ilBlogPostingGUI::getSnippet($id));
         $snippet = str_replace("&", "&", $snippet);
         $url = ilLink::_getStaticLink($a_wsp_id, "blog", true, "_" . $id . $is_wsp);
         $url = str_replace("&", "&", $url);
         $feed_item = new ilFeedItem();
         $feed_item->setTitle($item["title"]);
         $feed_item->setDate($item["created"]->get(IL_CAL_DATETIME));
         $feed_item->setDescription($snippet);
         $feed_item->setLink($url);
         $feed_item->setAbout($url);
         $feed->addItem($feed_item);
     }
     $feed->showFeed();
     exit;
 }
 function executeCommand()
 {
     global $ilCtrl, $tpl, $ilMainMenu, $ilLocator, $ilUser, $lng;
     $next_class = $ilCtrl->getNextClass($this);
     $cmd = $ilCtrl->getCmd();
     $tpl->getStandardTemplate();
     // #8509
     $ilMainMenu->setActive("desktop");
     // #12096
     if ($ilUser->getId() != ANONYMOUS_USER_ID && $next_class && !in_array($next_class, array("ilobjbloggui", "ilobjportfoliogui"))) {
         include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php";
         include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php";
         $tree = new ilWorkspaceTree($ilUser->getId());
         $access_handler = new ilWorkspaceAccessHandler($tree);
         $owner_id = $tree->lookupOwner($this->node_id);
         $obj_id = $tree->lookupObjectId($this->node_id);
         $lng->loadLanguageModule("wsp");
         // see ilPersonalWorkspaceGUI
         if ($owner_id != $ilUser->getId()) {
             $ilCtrl->setParameterByClass("ilpersonaldesktopgui", "dsh", $owner_id);
             $link = $ilCtrl->getLinkTargetByClass("ilpersonaldesktopgui", "jumptoworkspace");
             $ilLocator->addItem($lng->txt("wsp_tab_shared"), $link);
             include_once "Services/User/classes/class.ilUserUtil.php";
             $ilLocator->addItem(ilUserUtil::getNamePresentation($owner_id), $link);
         } else {
             $link = $ilCtrl->getLinkTargetByClass("ilpersonaldesktopgui", "jumptoworkspace");
             $ilLocator->addItem($lng->txt("wsp_tab_personal"), $link);
         }
         $link = $access_handler->getGotoLink($this->node_id, $obj_id);
         $ilLocator->addItem(ilObject::_lookupTitle($obj_id), $link);
         $tpl->setLocator($ilLocator);
     }
     switch ($next_class) {
         case "ilobjbloggui":
             include_once "Modules/Blog/classes/class.ilObjBlogGUI.php";
             $bgui = new ilObjBlogGUI($this->node_id, ilObject2GUI::WORKSPACE_NODE_ID);
             $ilCtrl->forwardCommand($bgui);
             break;
         case "ilobjfilegui":
             include_once "Modules/File/classes/class.ilObjFileGUI.php";
             $fgui = new ilObjFileGUI($this->node_id, ilObject2GUI::WORKSPACE_NODE_ID);
             $ilCtrl->forwardCommand($fgui);
             break;
         case "ilobjtestverificationgui":
             include_once "Modules/Test/classes/class.ilObjTestVerificationGUI.php";
             $tgui = new ilObjTestVerificationGUI($this->node_id, ilObject2GUI::WORKSPACE_NODE_ID);
             $ilCtrl->forwardCommand($tgui);
             break;
         case "ilobjexerciseverificationgui":
             include_once "Modules/Exercise/classes/class.ilObjExerciseVerificationGUI.php";
             $egui = new ilObjExerciseVerificationGUI($this->node_id, ilObject2GUI::WORKSPACE_NODE_ID);
             $ilCtrl->forwardCommand($egui);
             break;
         case "ilobjlinkresourcegui":
             include_once "Modules/WebResource/classes/class.ilObjLinkResourceGUI.php";
             $lgui = new ilObjLinkResourceGUI($this->node_id, ilObject2GUI::WORKSPACE_NODE_ID);
             $ilCtrl->forwardCommand($lgui);
             break;
         case "ilobjportfoliogui":
             include_once "Modules/Portfolio/classes/class.ilObjPortfolioGUI.php";
             $pgui = new ilObjPortfolioGUI($this->portfolio_id, ilObject2GUI::PORTFOLIO_OBJECT_ID);
             $ilCtrl->forwardCommand($pgui);
             break;
         default:
             if (!$cmd) {
                 $cmd = "process";
             }
             $this->{$cmd}();
     }
     $tpl->show();
 }