/** * Constructor * @access public * @param string $a_target scriptname * @param string $a_session_variable session_variable * @param ilWorkspaceTree $a_tree workspace tree * @param ilWorkspaceAccessHandler $a_access_handler workspace access handler */ public function __construct($a_type, $a_target, $a_session_variable, ilWorkspaceTree $a_tree, ilWorkspaceAccessHandler $a_access_handler) { global $ilCtrl; $this->ctrl = $ilCtrl; $this->type = $a_type; $this->access = $a_access_handler; parent::__construct($a_target); // #11173 if (!$a_tree->readRootId()) { // create (workspace) root folder $root = ilObjectFactory::getClassByType("wsrt"); $root = new $root(null); $root->create(); $root_id = $a_tree->createReference($root->getId()); $a_tree->addTree($a_tree->getTreeId(), $root_id); $a_tree->setRootId($root_id); } $this->tree = $a_tree; $this->root_id = $this->tree->readRootId(); $this->order_column = 'title'; $this->setSessionExpandVariable($a_session_variable); // reset filter $this->filter = array(); $this->addFilter('wsrt'); $this->addFilter('wfld'); $this->addFormItemForType('wsrt'); $this->addFormItemForType('wfld'); $this->setFiltered(true); $this->setFilterMode(IL_FM_POSITIVE); }
function getItems() { global $ilUser; include_once "./Services/Portfolio/classes/class.ilPortfolioPage.php"; $data = ilPortfolioPage::getAllPages($this->portfolio->getId()); $this->setData($data); $this->blogs = array(); include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php"; $tree = new ilWorkspaceTree($ilUser->getId()); $root = $tree->readRootId(); if ($root) { $root = $tree->getNodeData($root); foreach ($tree->getSubTree($root) as $node) { if ($node["type"] == "blog") { $this->blogs[$node["obj_id"]] = $node["wsp_id"]; } } } include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php"; }
protected function renderWorkspaceExplorer($a_cmd) { global $ilUser; include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php"; include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php"; require_once 'Services/PersonalWorkspace/classes/class.ilWorkspaceExplorer.php'; $tree = new ilWorkspaceTree($ilUser->getId()); $access_handler = new ilWorkspaceAccessHandler($tree); $exp = new ilWorkspaceExplorer(ilWorkspaceExplorer::SEL_TYPE_RADIO, '', 'exc_wspexpand', $tree, $access_handler); $exp->setTargetGet('wsp_id'); if ($a_cmd == "selectBlog") { $exp->removeAllFormItemTypes(); $exp->addFilter('blog'); $exp->addFormItemForType('blog'); } if ($_GET['exc_wspexpand'] == '') { // not really used as session is already set [see above] $expanded = $tree->readRootId(); } else { $expanded = $_GET['exc_wspexpand']; } $exp->setExpandTarget($this->ctrl->getLinkTarget($this, $a_cmd)); $exp->setPostVar('node'); $exp->setExpand($expanded); $exp->setOutput(0); return $exp->getOutput(); }
/** * Assign materials to skill level * * @param * @return */ function assignMaterial() { global $tpl, $ilUser, $ilCtrl, $ilTabs, $lng, $ilSetting; if (!$ilSetting->get("disable_personal_workspace")) { ilUtil::sendInfo($lng->txt("skmg_ass_materials_from_workspace") . " » <a href='ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToWorkspace'>" . $lng->txt("personal_workspace") . "</a>"); } $ilCtrl->saveParameter($this, "skill_id"); $ilCtrl->saveParameter($this, "level_id"); $ilCtrl->saveParameter($this, "tref_id"); $ilCtrl->saveParameter($this, "basic_skill_id"); $ilTabs->setBackTarget($lng->txt("back"), $ilCtrl->getLinkTarget($this, "assignMaterials")); // get ws tree include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php"; $tree = new ilWorkspaceTree($ilUser->getId()); // get access handler include_once "./Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php"; $acc_handler = new ilWorkspaceAccessHandler($tree); // get es explorer include_once "./Services/PersonalWorkspace/classes/class.ilWorkspaceExplorer.php"; $exp = new ilWorkspaceExplorer(ilWorkspaceExplorer::SEL_TYPE_CHECK, '', 'skill_wspexpand', $tree, $acc_handler); $exp->setTargetGet('wsp_id'); $exp->setFiltered(false); $exp->removeAllFormItemTypes(); $exp->addFormItemForType("file"); $exp->addFormItemForType("tstv"); $exp->addFormItemForType("excv"); if ($_GET['skill_wspexpand'] == '') { // not really used as session is already set [see above] $expanded = $tree->readRootId(); } else { $expanded = $_GET['skill_wspexpand']; } $exp->setCheckedItems(array((int) $_POST['wsp_id'])); $exp->setExpandTarget($ilCtrl->getLinkTarget($this, 'assignMaterial')); $exp->setPostVar('wsp_id[]'); $exp->setExpand($expanded); $exp->setOutput(0); // fill template $mtpl = new ilTemplate("tpl.materials_selection.html", true, true, "Services/Skill"); $mtpl->setVariable("EXP", $exp->getOutput()); // toolbars $tb = new ilToolbarGUI(); $tb->addFormButton($lng->txt("select"), "selectMaterial"); $tb->setFormAction($ilCtrl->getFormAction($this)); $tb->setOpenFormTag(true); $tb->setCloseFormTag(false); $mtpl->setVariable("TOOLBAR1", $tb->getHTML()); $tb->setOpenFormTag(false); $tb->setCloseFormTag(true); $mtpl->setVariable("TOOLBAR2", $tb->getHTML()); $tpl->setContent($mtpl->get()); }
/** * Insert file from personal workspace */ function insertFromWorkspace($a_cmd = "insert") { global $ilTabs, $tree, $ilCtrl, $tpl, $ilUser; if ($a_cmd == "insert") { $this->setTabs(); } else { $this->setItemTabs($a_cmd); } $ilTabs->setSubTabActive("cont_file_from_workspace"); // get ws tree include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php"; $tree = new ilWorkspaceTree($ilUser->getId()); // get access handler include_once "./Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php"; $acc_handler = new ilWorkspaceAccessHandler($tree); // get es explorer include_once "./Services/PersonalWorkspace/classes/class.ilWorkspaceExplorer.php"; $exp = new ilWorkspaceExplorer(ilWorkspaceExplorer::SEL_TYPE_RADIO, '', 'filelist_wspexpand', $tree, $acc_handler); $exp->setTargetGet('fl_wsp_id'); $exp->setFiltered(false); $exp->removeAllFormItemTypes(); // select link $exp->setTypeClickable("file"); $ilCtrl->setParameter($this, "subCmd", "selectFile"); $exp->setCustomLinkTarget($ilCtrl->getLinkTarget($this, $a_cmd)); // filter $exp->setFiltered(true); $exp->setFilterMode(IL_FM_POSITIVE); $exp->addFilter("wsrt"); $exp->addFilter("wfld"); $exp->addFilter("file"); // expand link $ilCtrl->setParameter($this, "subCmd", "insertFromWorkspace"); $exp->setParamsGet($ilCtrl->getParameterArray($this, $a_cmd)); if ($_GET['filelist_wspexpand'] == '') { $expanded = $tree->readRootId(); } else { $expanded = $_GET['filelist_wspexpand']; } $exp->setExpand($expanded); $exp->setOutput(0); $tpl->setContent($exp->getOutput()); }
protected function initCreatePortfolioFromTemplateForm($a_prtt_id, $a_title) { global $ilSetting, $ilUser; if ((int) $_REQUEST["exc_id"]) { $this->ctrl->setParameter($this, "exc_id", (int) $_REQUEST["exc_id"]); $this->ctrl->setParameter($this, "ass_id", (int) $_REQUEST["ass_id"]); } include_once "Services/Form/classes/class.ilPropertyFormGUI.php"; $form = new ilPropertyFormGUI(); $form->setFormAction($this->ctrl->getFormAction($this)); $tmpl = new ilNonEditableValueGUI($this->lng->txt("obj_prtt")); $tmpl->setValue(ilObject::_lookupTitle($a_prtt_id)); $form->addItem($tmpl); $title = new ilNonEditableValueGUI($this->lng->txt("title"), "pt"); $title->setValue($a_title); $form->addItem($title); // gather user blogs if (!$ilSetting->get('disable_wsp_blogs')) { $blog_options = array(); include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php"; $tree = new ilWorkspaceTree($this->user_id); $root = $tree->readRootId(); if ($root) { $root = $tree->getNodeData($root); foreach ($tree->getSubTree($root, true, "blog") as $node) { $blog_options[$node["obj_id"]] = $node["title"]; } asort($blog_options); } } $has_form_content = false; include_once "Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php"; $check_quota = ilDiskQuotaActivationChecker::_isPersonalWorkspaceActive(); $quota_sum = 0; include_once "Services/Skill/classes/class.ilPersonalSkill.php"; $pskills = array_keys(ilPersonalSkill::getSelectedUserSkills($ilUser->getId())); $skill_ids = array(); include_once "Modules/Portfolio/classes/class.ilPortfolioTemplatePage.php"; foreach (ilPortfolioTemplatePage::getAllPages($a_prtt_id) as $page) { switch ($page["type"]) { case ilPortfolioTemplatePage::TYPE_PAGE: // skills $source_page = new ilPortfolioTemplatePage($page["id"]); $source_page->buildDom(true); $dom = $source_page->getDom(); if ($dom instanceof php4DOMDocument) { $dom = $dom->myDOMDocument; } $xpath = new DOMXPath($dom); $nodes = $xpath->query("//PageContent/Skills"); foreach ($nodes as $node) { $skill_id = $node->getAttribute("Id"); if (!in_array($skill_id, $pskills)) { $skill_ids[] = $skill_id; } } unset($nodes); unset($xpath); unset($dom); if ($check_quota) { $quota_sum += $source_page->getPageDiskSize(); } if (sizeof($skill_ids)) { $has_form_content = true; } break; case ilPortfolioTemplatePage::TYPE_BLOG_TEMPLATE: if (!$ilSetting->get('disable_wsp_blogs')) { $has_form_content = true; $field_id = "blog_" . $page["id"]; $blog = new ilRadioGroupInputGUI($this->lng->txt("obj_blog") . ": " . $page["title"], $field_id); $blog->setRequired(true); $blog->setValue("blog_create"); $form->addItem($blog); $new_blog = new ilRadioOption($this->lng->txt("prtf_template_import_blog_create"), "blog_create"); $blog->addOption($new_blog); $title = new ilTextInputGUI($this->lng->txt("title"), $field_id . "_create_title"); $title->setRequired(true); $new_blog->addSubItem($title); if (sizeof($blog_options)) { $reuse_blog = new ilRadioOption($this->lng->txt("prtf_template_import_blog_reuse"), "blog_resuse"); $blog->addOption($reuse_blog); $obj = new ilSelectInputGUI($this->lng->txt("obj_blog"), $field_id . "_reuse_blog"); $obj->setRequired(true); $obj->setOptions(array("" => $this->lng->txt("please_select")) + $blog_options); $reuse_blog->addSubItem($obj); } $blog->addOption(new ilRadioOption($this->lng->txt("prtf_template_import_blog_ignore"), "blog_ignore")); } break; } } if ($skill_ids) { include_once "Services/Skill/classes/class.ilSkillTreeNode.php"; $skills = new ilCheckboxGroupInputGUI($this->lng->txt("skills"), "skill_ids"); $skills->setInfo($this->lng->txt("prtf_template_import_new_skills")); $skills->setValue($skill_ids); foreach ($skill_ids as $skill_id) { $skills->addOption(new ilCheckboxOption(ilSkillTreeNode::_lookupTitle($skill_id), $skill_id)); } $form->addItem($skills); } if ($quota_sum) { include_once "Services/DiskQuota/classes/class.ilDiskQuotaHandler.php"; if (!ilDiskQuotaHandler::isUploadPossible($quota_sum)) { ilUtil::sendFailure($this->lng->txt("prtf_template_import_quota_failure"), true); $this->ctrl->redirect($this, "create"); } } // no dialog needed, go ahead if (!$has_form_content) { return; } $form->setTitle($this->lng->txt("prtf_creation_mode") . ": " . $this->lng->txt("prtf_creation_mode_template")); $form->addCommandButton("createPortfolioFromTemplateProcess", $this->lng->txt("continue")); $form->addCommandButton("toRepository", $this->lng->txt("cancel")); return $form; }
protected function initCreatePortfolioFromTemplateForm($a_prtt_id, $a_title) { global $ilSetting; include_once "Services/Form/classes/class.ilPropertyFormGUI.php"; $form = new ilPropertyFormGUI(); $form->setFormAction($this->ctrl->getFormAction($this)); $tmpl = new ilNonEditableValueGUI($this->lng->txt("obj_prtt")); $tmpl->setValue(ilObject::_lookupTitle($a_prtt_id)); $form->addItem($tmpl); $title = new ilNonEditableValueGUI($this->lng->txt("title"), "pt"); $title->setValue($a_title); $form->addItem($title); // gather user blogs if (!$ilSetting->get('disable_wsp_blogs')) { $blog_options = array(); include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php"; $tree = new ilWorkspaceTree($this->user_id); $root = $tree->readRootId(); if ($root) { $root = $tree->getNodeData($root); foreach ($tree->getSubTree($root) as $node) { if ($node["type"] == "blog") { $blog_options[$node["obj_id"]] = $node["title"]; } } asort($blog_options); } } $has_form_content = false; include_once "Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php"; $check_quota = ilDiskQuotaActivationChecker::_isPersonalWorkspaceActive(); $quota_sum = 0; include_once "Modules/Portfolio/classes/class.ilPortfolioTemplatePage.php"; foreach (ilPortfolioTemplatePage::getAllPages($a_prtt_id) as $page) { switch ($page["type"]) { case ilPortfolioTemplatePage::TYPE_PAGE: if ($check_quota) { $source_page = new ilPortfolioTemplatePage($page["id"]); $quota_sum += $source_page->getPageDiskSize(); } break; case ilPortfolioTemplatePage::TYPE_BLOG_TEMPLATE: if (!$ilSetting->get('disable_wsp_blogs')) { $has_form_content = true; $field_id = "blog_" . $page["id"]; $blog = new ilRadioGroupInputGUI($this->lng->txt("obj_blog") . ": " . $page["title"], $field_id); $blog->setRequired(true); $blog->setValue("blog_create"); $form->addItem($blog); $new_blog = new ilRadioOption($this->lng->txt("prtf_template_import_blog_create"), "blog_create"); $blog->addOption($new_blog); $title = new ilTextInputGUI($this->lng->txt("title"), $field_id . "_create_title"); $title->setRequired(true); $new_blog->addSubItem($title); if (sizeof($blog_options)) { $reuse_blog = new ilRadioOption($this->lng->txt("prtf_template_import_blog_reuse"), "blog_resuse"); $blog->addOption($reuse_blog); $obj = new ilSelectInputGUI($this->lng->txt("obj_blog"), $field_id . "_reuse_blog"); $obj->setRequired(true); $obj->setOptions(array("" => $this->lng->txt("please_select")) + $blog_options); $reuse_blog->addSubItem($obj); } $blog->addOption(new ilRadioOption($this->lng->txt("prtf_template_import_blog_ignore"), "blog_ignore")); } break; } } if ($quota_sum) { include_once "Services/DiskQuota/classes/class.ilDiskQuotaHandler.php"; if (!ilDiskQuotaHandler::isUploadPossible($quota_sum)) { ilUtil::sendFailure($this->lng->txt("prtf_template_import_quota_failure"), true); $this->ctrl->redirect($this, "create"); } } // no dialog needed, go ahead if (!$has_form_content) { return; } $form->setTitle($this->lng->txt("prtf_creation_mode") . ": " . $this->lng->txt("prtf_creation_mode_template")); $form->addCommandButton("createPortfolioFromTemplateProcess", $this->lng->txt("continue")); $form->addCommandButton("toRepository", $this->lng->txt("cancel")); return $form; }
/** * Init portfolio page form * * @param string $a_mode * @return ilPropertyFormGUI */ public function initBlogForm($a_mode = "create") { global $lng, $ilCtrl, $ilUser; include_once "Services/Form/classes/class.ilPropertyFormGUI.php"; $form = new ilPropertyFormGUI(); $form->setFormAction($ilCtrl->getFormAction($this)); $options = array(); include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php"; $tree = new ilWorkspaceTree($ilUser->getId()); $root = $tree->readRootId(); if ($root) { $root = $tree->getNodeData($root); foreach ($tree->getSubTree($root) as $node) { if ($node["type"] == "blog") { $options[$node["obj_id"]] = $node["title"]; } } asort($options); } // no blogs to add? if (!sizeof($options)) { ilUtil::sendInfo($lng->txt("prtf_no_blogs_info"), true); $ilCtrl->redirect($this, "pages"); } $obj = new ilSelectInputGUI($lng->txt("obj_blog"), "blog"); $obj->setRequired(true); $obj->setOptions($options); $form->addItem($obj); // save and cancel commands if ($a_mode == "create") { $form->setTitle($lng->txt("prtf_add_blog") . ": " . $this->portfolio->getTitle()); $form->addCommandButton("saveBlog", $lng->txt("save")); $form->addCommandButton("pages", $lng->txt("cancel")); } else { /* edit is done directly in table gui $form->setTitle($lng->txt("prtf_edit_page")); $form->addCommandButton("updatePage", $lng->txt("save")); $form->addCommandButton("pages", $lng->txt("cancel")); */ } return $form; }