/** * Constructor */ function __construct($a_parent_obj, $a_parent_cmd, $a_cskill_id, $a_usage) { global $ilCtrl, $lng, $ilAccess, $lng; $id_parts = explode(":", $a_cskill_id); $this->skill_id = $id_parts[0]; $this->tref_id = $id_parts[1]; $data = array(); foreach ($a_usage as $k => $v) { $data[] = array("type" => $k, "usages" => $v); } parent::__construct($a_parent_obj, $a_parent_cmd); $this->setData($data); $this->setTitle(ilSkillTreeNode::_lookupTitle($this->skill_id, $this->tref_id)); include_once "./Services/Skill/classes/class.ilSkillTree.php"; $tree = new ilSkillTree(); $path = $tree->getSkillTreePathAsString($this->skill_id, $this->tref_id); $this->setDescription($path); $this->addColumn($this->lng->txt("skmg_type"), "", "50%"); $this->addColumn($this->lng->txt("skmg_number"), "", "50%"); $this->setFormAction($ilCtrl->getFormAction($a_parent_obj)); $this->setRowTemplate("tpl.skill_usage_row.html", "Services/Skill"); $this->setEnableNumInfo(false); // $this->addMultiCommand("", $lng->txt("")); // $this->addCommandButton("", $lng->txt("")); }
/** * output tabs */ function setTabs($a_tab) { global $ilTabs, $ilCtrl, $tpl, $lng, $ilHelp; $ilTabs->clearTargets(); $ilHelp->setScreenIdComponent("skmg_sktr"); if (is_object($this->node_object)) { $sk_id = $this->node_object->getSkillTemplateId(); $obj_type = ilSkillTreeNode::_lookupType($sk_id); if ($obj_type == "sctp") { // content $ilTabs->addTab("content", $lng->txt("content"), $ilCtrl->getLinkTarget($this, 'listItems')); } else { // content $ilTabs->addTab("content", $lng->txt("skmg_skill_levels"), $ilCtrl->getLinkTarget($this, 'listItems')); } // properties $ilTabs->addTab("properties", $lng->txt("settings"), $ilCtrl->getLinkTarget($this, 'editProperties')); // usage $this->addUsageTab($ilTabs); // back link /* $ilCtrl->setParameterByClass("ilskillrootgui", "obj_id", $this->node_object->skill_tree->getRootId()); $ilTabs->setBackTarget($lng->txt("obj_skmg"), $ilCtrl->getLinkTargetByClass("ilskillrootgui", "listSkills")); $ilCtrl->setParameterByClass("ilskillrootgui", "obj_id", $_GET["obj_id"]);*/ $tid = ilSkillTemplateReference::_lookupTemplateId($this->node_object->getId()); $add = " (" . ilSkillTreeNode::_lookupTitle($tid) . ")"; parent::setTitleIcon(); $tpl->setTitle($lng->txt("skmg_sktr") . ": " . $this->node_object->getTitle() . $add); $this->setSkillNodeDescription(); $ilTabs->activateTab($a_tab); } }
/** * Get node content * * @param array $a_node node data * @return string content */ function getNodeContent($a_node) { global $lng; $a_parent_id_parts = explode(":", $a_node["id"]); $a_parent_skl_tree_id = $a_parent_id_parts[0]; $a_parent_skl_template_tree_id = $a_parent_id_parts[1]; // title $title = $a_node["title"]; // root? if ($a_node["type"] == "skrt") { $title = $lng->txt("skmg_skills"); } else { if ($a_node["type"] == "sktr") { include_once "./Services/Skill/classes/class.ilSkillTemplateReference.php"; $tid = ilSkillTemplateReference::_lookupTemplateId($a_parent_skl_tree_id); $title .= " (" . ilSkillTreeNode::_lookupTitle($tid) . ")"; } // @todo: fix this if possible for skill/tref_id combination if (ilSkillTreeNode::_lookupSelfEvaluation($a_parent_skl_tree_id)) { if ($a_parent_skl_template_tree_id == 0 || $a_node["type"] == "sktr") { $title = "<u>" . $title . "</u>"; } } } if ($this->vtree->isOutdated($a_node["id"])) { $title = "<span class='light'>" . $title . "</span>"; } return $title; }
/** * Fill table row */ protected function fillRow($a_set) { global $lng, $ilCtrl; $this->tpl->setVariable("SE_ID", $a_set["id"]); $this->tpl->setVariable("VAL_CREATED", $a_set["created"]); $this->tpl->setVariable("VAL_LAST_UPDATE", $a_set["last_update"]); $this->tpl->setVariable("VAL_SKILL", ilSkillTreeNode::_lookupTitle($a_set["top_skill_id"])); $this->tpl->setVariable("TXT_CMD", $lng->txt("edit")); $ilCtrl->setParameter($this->parent_obj, "se_id", $a_set["id"]); $this->tpl->setVariable("HREF_CMD", $ilCtrl->getLinkTarget($this->parent_obj, "editSelfEvaluation")); }
/** * Get personal selected user skills * * @param int $a_user_id user id * @return array */ static function getSelectedUserSkills($a_user_id) { global $ilDB; include_once "Services/Skill/classes/class.ilSkillTreeNode.php"; include_once "./Services/Skill/classes/class.ilSkillTree.php"; $stree = new ilSkillTree(); $set = $ilDB->query("SELECT * FROM skl_personal_skill " . " WHERE user_id = " . $ilDB->quote($a_user_id, "integer")); $pskills = array(); while ($rec = $ilDB->fetchAssoc($set)) { if ($stree->isInTree($rec["skill_node_id"])) { $pskills[$rec["skill_node_id"]] = array("skill_node_id" => $rec["skill_node_id"], "title" => ilSkillTreeNode::_lookupTitle($rec["skill_node_id"])); } } return $pskills; }
/** * Get node content * * @param array * @return */ function getNodeContent($a_node) { global $lng; // title $title = $a_node["title"]; // root? if ($a_node["type"] == "skrt") { $title = $this->templates ? $lng->txt("skmg_skill_templates") : $lng->txt("skmg_skills"); } else { if ($a_node["type"] == "sktr") { include_once "./Services/Skill/classes/class.ilSkillTemplateReference.php"; $tid = ilSkillTemplateReference::_lookupTemplateId($a_node["child"]); $title .= " (" . ilSkillTreeNode::_lookupTitle($tid) . ")"; } if (ilSkillTreeNode::_lookupSelfEvaluation($a_node["child"])) { $title = "<u>" . $title . "</u>"; } } return $title; }
/** * standard implementation for title, may be overwritten by derived classes */ function buildTitle($a_title, $a_id, $a_type) { if ($a_type == "sktr") { include_once "./Services/Skill/classes/class.ilSkillTemplateReference.php"; $tid = ilSkillTemplateReference::_lookupTemplateId($a_id); $a_title .= " (" . ilSkillTreeNode::_lookupTitle($tid) . ")"; } if (ilSkillTreeNode::_lookupSelfEvaluation($a_id)) { $a_title = "<u>" . $a_title . "</u>"; } return $a_title; }
/** * Assign materials to skill levels * * @param * @return */ function selfEvaluation() { global $ilTabs, $lng, $ilCtrl, $tpl, $ilToolbar; $ilTabs->setBackTarget($lng->txt("back"), $ilCtrl->getLinkTarget($this, "listSkills")); $ilCtrl->saveParameter($this, "skill_id"); $ilCtrl->saveParameter($this, "basic_skill_id"); $ilCtrl->saveParameter($this, "tref_id"); include_once "./Services/Skill/classes/class.ilSkillTreeNode.php"; $tpl->setTitle(ilSkillTreeNode::_lookupTitle((int) $_GET["skill_id"])); $tpl->setTitleIcon(ilUtil::getImagePath("icon_" . ilSkillTreeNode::_lookupType((int) $_GET["skill_id"]) . "_b.png")); // basic skill selection // here basic skill id?? $bs = ilSkillTreeNode::getSkillTreeNodes((int) $_GET["skill_id"], true); $options = array(); foreach ($bs as $b) { $options[$b["id"]] = ilSkillTreeNode::_lookupTitle($b["id"]); } $cur_basic_skill_id = (int) $_POST["basic_skill_id"] > 0 ? (int) $_POST["basic_skill_id"] : ((int) $_GET["basic_skill_id"] > 0 ? (int) $_GET["basic_skill_id"] : key($options)); $ilCtrl->setParameter($this, "basic_skill_id", $cur_basic_skill_id); include_once "./Services/Form/classes/class.ilSelectInputGUI.php"; $si = new ilSelectInputGUI($lng->txt("skmg_skill"), "basic_skill_id"); $si->setOptions($options); $si->setValue($cur_basic_skill_id); $ilToolbar->addInputItem($si, true); $ilToolbar->addFormButton($lng->txt("select"), "selfEvaluation"); $ilToolbar->setFormAction($ilCtrl->getFormAction($this)); // table include_once "./Services/Skill/classes/class.ilSelfEvaluationSimpleTableGUI.php"; $tab = new ilSelfEvaluationSimpleTableGUI($this, "selfEvaluation", (int) $_GET["skill_id"], (int) $_GET["tref_id"], $cur_basic_skill_id); $tpl->setContent($tab->getHTML()); }
/** * Copy a set of skills/skill categories into the clipboard */ static function clipboardCopy($a_tree_id, $a_ids) { global $ilUser; self::clearClipboard(); include_once "./Services/Skill/classes/class.ilSkillTree.php"; $tree = new ilSkillTree(); // put them into the clipboard $time = date("Y-m-d H:i:s", time()); foreach ($a_ids as $id) { $curnode = ""; if ($tree->isInTree($id)) { $curnode = $tree->getNodeData($id); $subnodes = $tree->getSubTree($curnode); foreach ($subnodes as $subnode) { if ($subnode["child"] != $id) { $ilUser->addObjectToClipboard($subnode["child"], $subnode["type"], $subnode["title"], $subnode["parent"], $time, $subnode["lft"]); } } } $order = $curnode["lft"] > 0 ? $curnode["lft"] : (int) ($order + 1); $ilUser->addObjectToClipboard($id, ilSkillTreeNode::_lookupType($id), ilSkillTreeNode::_lookupTitle($id), 0, $time, $order); } }
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 renderSkillsTeaser($a_user_id, $a_skills_id) { global $lng; include_once "Services/Skill/classes/class.ilSkillTreeNode.php"; return "<div style=\"margin:5px\">" . $lng->txt("skills") . ": \"" . ilSkillTreeNode::_lookupTitle($a_skills_id) . "\"</div>"; }
protected function renderSkillsTeaser($a_user_id, $a_skills_id) { // not used // $user_id = $this->getPageContentUserId($a_user_id); include_once "Services/Skill/classes/class.ilSkillTreeNode.php"; return $this->renderTeaser("skills", $this->lng->txt("skills") . ' "' . ilSkillTreeNode::_lookupTitle($a_skills_id) . '"'); }
/** * List items */ function listItems() { global $tpl; $this->setTabs("content"); include_once "./Services/Skill/classes/class.ilSkillTreeNode.php"; $bs = ilSkillTreeNode::getSkillTreeNodes((int) $_GET["obj_id"], false); include_once "./Services/UIComponent/NestedList/classes/class.ilNestedList.php"; $ns = new ilNestedList(); $ns->setListClass("il_Explorer"); foreach ($bs as $b) { $par = $b["id"] == (int) $_GET["obj_id"] ? 0 : $b["parent"]; $ns->addListNode(ilSkillTreeNode::_lookupTitle($b["id"]), $b["id"], $par); } $tpl->setContent($ns->getHTML()); }