/** * 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; } } } } } } } }
/** * 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(); }