/**
  * Standard Version of Fill Row. Most likely to
  * be overwritten by derived class.
  */
 protected function fillRow($a_set)
 {
     global $lng, $ilCtrl;
     $lng->loadLanguageModule("assessment");
     include_once "./Modules/Scorm2004/classes/class.ilSCORM2004NodeFactory.php";
     $node_object = ilSCORM2004NodeFactory::getInstance($this->slm_object, $a_set["child"], false);
     $tr_data = $node_object->getObjectives();
     // learning objectives
     foreach ($tr_data as $data) {
         $this->tpl->setCurrentBlock("objective");
         $this->tpl->setVariable("TXT_LEARNING_OBJECTIVE", ilSCORM2004Sco::convertLists($data->getObjectiveID()));
         $this->tpl->setVariable("IMG_LOBJ", ilUtil::getImagePath("icon_lobj.svg"));
         $this->tpl->parseCurrentBlock();
     }
     // pages
     include_once "./Modules/Scorm2004/classes/class.ilSCORM2004Page.php";
     include_once "./Modules/TestQuestionPool/classes/class.assQuestion.php";
     $childs = $this->tree->getChilds($a_set["child"]);
     foreach ($childs as $child) {
         // get question ids
         include_once "./Services/COPage/classes/class.ilPCQuestion.php";
         $qids = ilPCQuestion::_getQuestionIdsForPage("sahs", $child["child"]);
         if (count($qids) > 0) {
             // output questions
             foreach ($qids as $qid) {
                 $this->tpl->setCurrentBlock("question");
                 //$qtitle = assQuestion::_getTitle($qid);
                 $qtype = assQuestion::_getQuestionType($qid);
                 //$qtext = assQuestion::_getQuestionText($qid);
                 $qtext = assQuestion::_getQuestionTitle($qid);
                 $this->tpl->setVariable("TXT_QUESTION", $qtext);
                 $this->tpl->setVariable("TXT_QTYPE", $lng->txt($qtype));
                 $this->tpl->setVariable("IMG_QST", ilUtil::getImagePath("icon_tst.svg"));
                 $this->tpl->parseCurrentBlock();
             }
             // output page title
             $page_title = ilSCORM2004Node::_lookupTitle($child["child"]);
             $this->tpl->setCurrentBlock("page");
             $this->tpl->setVariable("TXT_PAGE_TITLE", $page_title);
             $this->tpl->setVariable("IMG_PAGE", ilUtil::getImagePath("icon_pg.svg"));
             $ilCtrl->setParameterByClass("ilscorm2004pagenodegui", "obj_id", $child["child"]);
             $this->tpl->setVariable("HREF_EDIT_PAGE", $ilCtrl->getLinkTargetByClass("ilscorm2004pagenodegui", "edit"));
             $this->tpl->parseCurrentBlock();
         }
     }
     // sco title
     $this->tpl->setVariable("TXT_SCO_TITLE", $a_set["title"]);
     $this->tpl->setVariable("IMG_SCO", ilUtil::getImagePath("icon_sco.svg"));
     $ilCtrl->setParameterByClass("ilscorm2004scogui", "obj_id", $a_set["child"]);
     $this->tpl->setVariable("HREF_EDIT_SCO", $ilCtrl->getLinkTargetByClass("ilscorm2004scogui", "showProperties"));
 }
Ejemplo n.º 2
0
 /**
  * Get's the repository object ID of a parent object, if possible
  * 
  * see ilWebAccessChecker 
  */
 function getParentObjectIdForUsage($a_usage, $a_include_all_access_obj_ids = false)
 {
     if (is_int(strpos($a_usage["type"], ":"))) {
         $us_arr = explode(":", $a_usage["type"]);
         $type = $us_arr[1];
         $cont_type = $us_arr[0];
     } else {
         $type = $a_usage["type"];
     }
     $id = $a_usage["id"];
     $obj_id = false;
     switch ($type) {
         // RTE / tiny mce
         case "html":
             switch ($cont_type) {
                 case "qpl":
                     // Question Pool *Question* Text (Test)
                     include_once "./Modules/TestQuestionPool/classes/class.assQuestion.php";
                     $qinfo = assQuestion::_getQuestionInfo($id);
                     if ($qinfo["original_id"] > 0) {
                         include_once "./Modules/Test/classes/class.ilObjTest.php";
                         $obj_id = ilObjTest::_lookupTestObjIdForQuestionId($id);
                         // usage in test
                     } else {
                         $obj_id = $qinfo["obj_fi"];
                         // usage in pool
                     }
                     break;
                 case "spl":
                     // Question Pool *Question* Text (Survey)
                     include_once "./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
                     $quest = SurveyQuestion::_instanciateQuestion($id);
                     if ($quest) {
                         $parent_id = $quest->getObjId();
                         // pool question copy - find survey, do not use pool itself
                         if ($quest->getOriginalId() && ilObject::_lookupType($parent_id) == "spl") {
                             $obj_id = SurveyQuestion::_lookupSurveyObjId($id);
                         } else {
                             $obj_id = $parent_id;
                         }
                         unset($quest);
                     }
                     break;
                 case "exca":
                     // Exercise assignment
                     $returned_pk = $a_usage['id'];
                     // we are just checking against exercise object
                     include_once 'Modules/Exercise/classes/class.ilObjExercise.php';
                     $obj_id = ilObjExercise::lookupExerciseIdForReturnedId($returned_pk);
                     break;
                 case "frm":
                     // Forum
                     $post_pk = $a_usage['id'];
                     include_once 'Modules/Forum/classes/class.ilForumPost.php';
                     include_once 'Modules/Forum/classes/class.ilForum.php';
                     $oPost = new ilForumPost($post_pk);
                     $frm_pk = $oPost->getForumId();
                     $obj_id = ilForum::_lookupObjIdForForumId($frm_pk);
                     break;
                     // temporary items (per user)
                 // temporary items (per user)
                 case "frm~":
                 case "exca~":
                     $obj_id = $a_usage['id'];
                     break;
                     // "old" category pages
                 // "old" category pages
                 case "cat":
                     // InfoScreen Text
                 // InfoScreen Text
                 case "tst":
                 case "svy":
                     // data collection
                 // data collection
                 case "dcl":
                     $obj_id = $id;
                     break;
             }
             break;
             // page editor
         // page editor
         case "pg":
             switch ($cont_type) {
                 // question feedback // parent obj id is q id
                 case "qfbg":
                     include_once './Services/COPage/classes/class.ilPageObject.php';
                     $id = ilPageObject::lookupParentId($id, 'qfbg');
                     // note: no break here, we only altered the $id to the question id
                 // note: no break here, we only altered the $id to the question id
                 case "qpl":
                     // Question Pool Question Pages
                     include_once "./Modules/TestQuestionPool/classes/class.assQuestion.php";
                     $qinfo = assQuestion::_getQuestionInfo($id);
                     if ($qinfo["original_id"] > 0) {
                         include_once "./Modules/Test/classes/class.ilObjTest.php";
                         $obj_id = ilObjTest::_lookupTestObjIdForQuestionId($id);
                         // usage in test
                     } else {
                         $obj_id = $qinfo["obj_fi"];
                         // usage in pool
                     }
                     if ($obj_id == 0) {
                         include_once "./Services/COPage/classes/class.ilPCQuestion.php";
                         $pinfo = ilPCQuestion::_getPageForQuestionId($id, "lm");
                         if ($pinfo && $pinfo["parent_type"] == "lm") {
                             include_once "./Modules/LearningModule/classes/class.ilLMObject.php";
                             $obj_id = ilLMObject::_lookupContObjID($pinfo["page_id"]);
                         }
                         $pinfo = ilPCQuestion::_getPageForQuestionId($id, "sahs");
                         if ($pinfo && $pinfo["parent_type"] == "sahs") {
                             include_once "./Modules/SCORM2004/classes/class.ilSCORM2004Node.php";
                             $obj_id = ilSCORM2004Node::_lookupSLMID($pinfo["page_id"]);
                         }
                     }
                     break;
                 case "lm":
                 case "dbk":
                     // learning modules
                     include_once "./Modules/LearningModule/classes/class.ilLMObject.php";
                     $obj_id = ilLMObject::_lookupContObjID($id);
                     break;
                 case "gdf":
                     // glossary definition
                     include_once "./Modules/Glossary/classes/class.ilGlossaryDefinition.php";
                     include_once "./Modules/Glossary/classes/class.ilGlossaryTerm.php";
                     $term_id = ilGlossaryDefinition::_lookupTermId($id);
                     $obj_id = ilGlossaryTerm::_lookGlossaryID($term_id);
                     break;
                 case "wpg":
                     // wiki page
                     include_once 'Modules/Wiki/classes/class.ilWikiPage.php';
                     $obj_id = ilWikiPage::lookupObjIdByPage($id);
                     break;
                 case "sahs":
                     // sahs page
                     // can this implementation be used for other content types, too?
                     include_once './Services/COPage/classes/class.ilPageObject.php';
                     $obj_id = ilPageObject::lookupParentId($id, 'sahs');
                     break;
                 case "prtf":
                     // portfolio
                     include_once "Modules/Portfolio/classes/class.ilPortfolioPage.php";
                     $obj_id = ilPortfolioPage::findPortfolioForPage($id);
                     break;
                 case "prtt":
                     // portfolio template
                     include_once "Modules/Portfolio/classes/class.ilPortfolioTemplatePage.php";
                     $obj_id = ilPortfolioTemplatePage::findPortfolioForPage($id);
                     break;
                 case "blp":
                     // blog
                     include_once './Services/COPage/classes/class.ilPageObject.php';
                     $obj_id = ilPageObject::lookupParentId($id, 'blp');
                     break;
                 case "impr":
                     // imprint page - always id 1
                     // fallthrough
                 // imprint page - always id 1
                 // fallthrough
                 case "crs":
                 case "grp":
                 case "cat":
                 case "fold":
                 case "root":
                 case "cont":
                 case "cstr":
                     // repository pages
                     $obj_id = $id;
                     break;
             }
             break;
             // Media Pool
         // Media Pool
         case "mep":
             $obj_id = $id;
             break;
             // News Context Object (e.g. MediaCast)
         // News Context Object (e.g. MediaCast)
         case "news":
             include_once "./Services/News/classes/class.ilNewsItem.php";
             $obj_id = ilNewsItem::_lookupContextObjId($id);
             break;
     }
     return $obj_id;
 }
Ejemplo n.º 3
0
 /**
  * Get question ids
  *
  * note: this method must be called afer exportXMLPageContent
  */
 function getQuestionIds()
 {
     include_once "./Services/COPage/classes/class.ilPCQuestion.php";
     return ilPCQuestion::_getQuestionIdsForPage($this->content_object->getType(), $this->getId());
 }
Ejemplo n.º 4
0
 function exportXMLPageObjects($a_target_dir, &$a_xml_writer, $a_inst, &$expLog)
 {
     global $ilBench;
     include_once "./Modules/Scorm2004/classes/class.ilSCORM2004PageNode.php";
     include_once "./Modules/Scorm2004/classes/class.ilSCORM2004Page.php";
     $tree = new ilTree($this->slm_id);
     $tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node');
     $tree->setTreeTablePK("slm_id");
     $pages = $tree->getSubTree($tree->getNodeData($this->getId()), true, 'page');
     foreach ($pages as $page) {
         $expLog->write(date("[y-m-d H:i:s] ") . "Page Object " . $page["obj_id"]);
         // export xml to writer object
         $page_obj = new ilSCORM2004Page($page["obj_id"]);
         $page_obj->exportXML($a_xml_writer, "normal", $a_inst);
         //collect media objects
         $mob_ids = $page_obj->getMediaObjectIds();
         foreach ($mob_ids as $mob_id) {
             $this->mob_ids[$mob_id] = $mob_id;
         }
         // collect all file items
         $file_ids = $page_obj->getFileItemIds();
         foreach ($file_ids as $file_id) {
             $this->file_ids[$file_id] = $file_id;
         }
         include_once "./Services/COPage/classes/class.ilPCQuestion.php";
         $q_ids = ilPCQuestion::_getQuestionIdsForPage("sahs", $page["obj_id"]);
         if (count($q_ids) > 0) {
             include_once "./Modules/TestQuestionPool/classes/class.assQuestion.php";
             foreach ($q_ids as $q_id) {
                 $q_obj =& assQuestion::_instanciateQuestion($q_id);
                 $qti_file = fopen($a_target_dir . "/qti_" . $q_id . ".xml", "w");
                 fwrite($qti_file, $q_obj->toXML());
                 fclose($qti_file);
             }
         }
         unset($page_obj);
     }
 }
Ejemplo n.º 5
0
 function sahs_questions()
 {
     global $tpl, $lng, $ilCtrl;
     $this->setTabs();
     $this->setLocator();
     include_once "./Services/Table/classes/class.ilTableGUI.php";
     include_once "./Modules/Scorm2004/classes/class.ilSCORM2004Page.php";
     include_once "./Modules/TestQuestionPool/classes/class.assQuestion.php";
     include_once "./Services/COPage/classes/class.ilPCQuestionGUI.php";
     // load template for table
     $tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
     $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.scormeditor_sco_question.html", "Modules/Scorm2004");
     $tbl = new ilTableGUI();
     $tbl->setTitle("Questions for " . $this->node_object->getTitle());
     $tbl->setHeaderNames(array("Question", "Page"));
     $cols = array("question", "page");
     $tbl->setHeaderVars($cols, $header_params);
     $tbl->setColumnWidth(array("50%", "50%"));
     $tbl->disable("sort");
     $tbl->disable("footer");
     $tree = new ilTree($this->slm_object->getId());
     $tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node');
     $tree->setTreeTablePK("slm_id");
     foreach ($tree->getSubTree($tree->getNodeData($this->node_object->getId()), true, 'page') as $page) {
         // get question ids
         include_once "./Services/COPage/classes/class.ilPCQuestion.php";
         $qids = ilPCQuestion::_getQuestionIdsForPage("sahs", $page["obj_id"]);
         if (count($qids) > 0) {
             // output questions
             foreach ($qids as $qid) {
                 $tpl->setCurrentBlock("tbl_content");
                 $tpl->setVariable("TXT_PAGE_TITLE", $page["title"]);
                 $ilCtrl->setParameterByClass("ilscorm2004pagenodegui", "obj_id", $page["obj_id"]);
                 $tpl->setVariable("HREF_EDIT_PAGE", $ilCtrl->getLinkTargetByClass("ilscorm2004pagenodegui", "edit"));
                 $qtitle = assQuestion::_getTitle($qid);
                 $tpl->setVariable("TXT_QUESTION", $qtitle);
                 $ilCtrl->setParameterByClass("ilscorm2004pagenodegui", "obj_id", $page["obj_id"]);
                 //$tpl->setVariable("HREF_EDIT_QUESTION", $ilCtrl->getLinkTargetByClass("ilscorm2004pagenodegui", "edit"));
                 $tpl->setVariable("CSS_ROW", ilUtil::switchColor($i++, "tblrow1", "tblrow2"));
                 $tpl->parseCurrentBlock();
             }
         }
     }
     $tbl->render();
 }
Ejemplo n.º 6
0
 /**
  * Modify page content after xsl
  *
  * @param string $a_output
  * @return string
  */
 function modifyPageContentPostXsl($a_output, $a_mode)
 {
     global $lng;
     if ($this->getPage()->getPageConfig()->getEnableSelfAssessment()) {
         // #14154
         $q_ids = $this->getPage()->getQuestionIds();
         if (sizeof($q_ids)) {
             include_once "./Modules/TestQuestionPool/classes/class.assQuestionGUI.php";
             foreach ($q_ids as $q_id) {
                 $q_gui = assQuestionGUI::_getQuestionGUI("", $q_id);
                 if (!$q_gui->object->isComplete()) {
                     $a_output = str_replace("{{{{{Question;il__qst_" . $q_id . "}}}}}", "<i>" . $lng->txt("cont_empty_question") . "</i>", $a_output);
                 }
             }
             // this exports the questions which is needed below
             $qhtml = $this->getQuestionJsOfPage($a_mode == "edit" ? true : false, $a_mode);
             require_once './Modules/Scorm2004/classes/class.ilQuestionExporter.php';
             $a_output = "<script>" . ilQuestionExporter::questionsJS($q_ids) . "</script>" . $a_output;
             if (!self::$initial_done) {
                 $a_output = "<script>var ScormApi=null; var questions = new Array();</script>" . $a_output;
                 self::$initial_done = true;
             }
         }
     } else {
         // set by T&A components
         $qhtml = $this->getPage()->getPageConfig()->getQuestionHTML();
     }
     if (is_array($qhtml)) {
         foreach ($qhtml as $k => $h) {
             $a_output = str_replace("{{{{{Question;il__qst_{$k}" . "}}}}}", " " . $h, $a_output);
         }
     }
     return $a_output;
 }
Ejemplo n.º 7
0
 /**
  * Reset initial state (for exports)
  */
 static function resetInitialState()
 {
     self::$initial_done = false;
 }
Ejemplo n.º 8
0
 /**
  * export page html
  */
 function exportPageHTML(&$a_lm_gui, $a_target_dir, $a_lm_page_id, $a_frame = "", $a_exp_id_map = array())
 {
     global $tpl, $ilBench;
     //echo "<br>B: export Page HTML ($a_lm_page_id)"; flush();
     // template workaround: reset of template
     $tpl = new ilTemplate("tpl.main.html", true, true);
     $tpl->addBlockFile("CONTENT", "content", "tpl.adm_content.html");
     include_once "./Services/COPage/classes/class.ilPCQuestion.php";
     ilPCQuestion::resetInitialState();
     $_GET["obj_id"] = $a_lm_page_id;
     $_GET["frame"] = $a_frame;
     if ($a_frame == "") {
         //if ($nid = ilLMObject::_lookupNID($a_lm_gui->lm->getId(), $a_lm_page_id, "pg"))
         if (is_array($a_exp_id_map) && isset($a_exp_id_map[$a_lm_page_id])) {
             $file = $a_target_dir . "/lm_pg_" . $a_exp_id_map[$a_lm_page_id] . ".html";
         } else {
             $file = $a_target_dir . "/lm_pg_" . $a_lm_page_id . ".html";
         }
     } else {
         if ($a_frame != "toc") {
             $file = $a_target_dir . "/frame_" . $a_lm_page_id . "_" . $a_frame . ".html";
         } else {
             $file = $a_target_dir . "/frame_" . $a_frame . ".html";
         }
     }
     // return if file is already existing
     if (@is_file($file)) {
         return;
     }
     $content =& $a_lm_gui->layout("main.xml", false);
     // open file
     if (!($fp = @fopen($file, "w+"))) {
         die("<b>Error</b>: Could not open \"" . $file . "\" for writing" . " in <b>" . __FILE__ . "</b> on line <b>" . __LINE__ . "</b><br />");
     }
     // set file permissions
     chmod($file, 0770);
     // write xml data into the file
     fwrite($fp, $content);
     // close file
     fclose($fp);
     if ($this->first_page_id == $a_lm_page_id && $a_frame == "") {
         copy($file, $a_target_dir . "/index.html");
     }
     // write frames of frameset
     $frameset = $a_lm_gui->getCurrentFrameSet();
     foreach ($frameset as $frame) {
         $this->exportPageHTML($a_lm_gui, $a_target_dir, $a_lm_page_id, $frame);
     }
 }
 /**
  * Get a content object of the page
  *
  * @param string hier ID
  * @param string PC ID
  *
  * @return object page content object
  */
 function &getContentObject($a_hier_id, $a_pc_id = "")
 {
     //echo ":".$a_hier_id.":";
     //echo "Content:".htmlentities($this->getXMLFromDOM()).":<br>";
     //echo "ilPageObject::getContentObject:hierid:".$a_hier_id.":<br>";
     $cont_node =& $this->getContentNode($a_hier_id, $a_pc_id);
     //echo "ilPageObject::getContentObject:nodename:".$cont_node->node_name().":<br>";
     if (!is_object($cont_node)) {
         return false;
     }
     switch ($cont_node->node_name()) {
         case "PageContent":
             $child_node =& $cont_node->first_child();
             //echo "<br>nodename:".$child_node->node_name();
             switch ($child_node->node_name()) {
                 case "Paragraph":
                     require_once "./Services/COPage/classes/class.ilPCParagraph.php";
                     $par =& new ilPCParagraph($this->dom);
                     $par->setNode($cont_node);
                     $par->setHierId($a_hier_id);
                     $par->setPcId($a_pc_id);
                     return $par;
                 case "Table":
                     if ($child_node->get_attribute("DataTable") == "y") {
                         require_once "./Services/COPage/classes/class.ilPCDataTable.php";
                         $tab =& new ilPCDataTable($this->dom);
                         $tab->setNode($cont_node);
                         $tab->setHierId($a_hier_id);
                     } else {
                         require_once "./Services/COPage/classes/class.ilPCTable.php";
                         $tab =& new ilPCTable($this->dom);
                         $tab->setNode($cont_node);
                         $tab->setHierId($a_hier_id);
                     }
                     $tab->setPcId($a_pc_id);
                     return $tab;
                 case "MediaObject":
                     if ($_GET["pgEdMediaMode"] != "") {
                         echo "ilPageObject::error media";
                         exit;
                     }
                     //require_once("./Services/MediaObjects/classes/class.ilObjMediaObject.php");
                     require_once "./Services/COPage/classes/class.ilPCMediaObject.php";
                     $mal_node =& $child_node->first_child();
                     //echo "ilPageObject::getContentObject:nodename:".$mal_node->node_name().":<br>";
                     $id_arr = explode("_", $mal_node->get_attribute("OriginId"));
                     $mob_id = $id_arr[count($id_arr) - 1];
                     // allow deletion of non-existing media objects
                     if (!ilObject::_exists($mob_id) && in_array("delete", $_POST)) {
                         $mob_id = 0;
                     }
                     //$mob =& new ilObjMediaObject($mob_id);
                     $mob = new ilPCMediaObject($this->dom);
                     $mob->readMediaObject($mob_id);
                     //$mob->setDom($this->dom);
                     $mob->setNode($cont_node);
                     $mob->setHierId($a_hier_id);
                     $mob->setPcId($a_pc_id);
                     return $mob;
                 case "List":
                     require_once "./Services/COPage/classes/class.ilPCList.php";
                     $list = new ilPCList($this->dom);
                     $list->setNode($cont_node);
                     $list->setHierId($a_hier_id);
                     $list->setPcId($a_pc_id);
                     return $list;
                 case "FileList":
                     require_once "./Services/COPage/classes/class.ilPCFileList.php";
                     $file_list = new ilPCFileList($this->dom);
                     $file_list->setNode($cont_node);
                     $file_list->setHierId($a_hier_id);
                     $file_list->setPcId($a_pc_id);
                     return $file_list;
                     // note: assessment handling is forwarded to assessment gui classes
                 // note: assessment handling is forwarded to assessment gui classes
                 case "Question":
                     require_once "./Services/COPage/classes/class.ilPCQuestion.php";
                     $pc_question = new ilPCQuestion($this->dom);
                     $pc_question->setNode($cont_node);
                     $pc_question->setHierId($a_hier_id);
                     $pc_question->setPcId($a_pc_id);
                     return $pc_question;
                 case "Section":
                     require_once "./Services/COPage/classes/class.ilPCSection.php";
                     $sec = new ilPCSection($this->dom);
                     $sec->setNode($cont_node);
                     $sec->setHierId($a_hier_id);
                     $sec->setPcId($a_pc_id);
                     return $sec;
                 case "Resources":
                     require_once "./Services/COPage/classes/class.ilPCResources.php";
                     $res = new ilPCResources($this->dom);
                     $res->setNode($cont_node);
                     $res->setHierId($a_hier_id);
                     $res->setPcId($a_pc_id);
                     return $res;
                 case 'LoginPageElement':
                     include_once './Services/COPage/classes/class.ilPCLoginPageElements.php';
                     $res = new ilPCLoginPageElements($this->dom);
                     $res->setNode($cont_node);
                     $res->setHierId($a_hier_id);
                     $res->setPcId($a_pcid);
                     return $res;
                 case "Map":
                     require_once "./Services/COPage/classes/class.ilPCMap.php";
                     $map = new ilPCMap($this->dom);
                     $map->setNode($cont_node);
                     $map->setHierId($a_hier_id);
                     $map->setPcId($a_pc_id);
                     return $map;
                 case "Tabs":
                     require_once "./Services/COPage/classes/class.ilPCTabs.php";
                     $map = new ilPCTabs($this->dom);
                     $map->setNode($cont_node);
                     $map->setHierId($a_hier_id);
                     $map->setPcId($a_pc_id);
                     return $map;
                 case "Plugged":
                     require_once "./Services/COPage/classes/class.ilPCPlugged.php";
                     $plugged = new ilPCPlugged($this->dom);
                     $plugged->setNode($cont_node);
                     $plugged->setHierId($a_hier_id);
                     $plugged->setPcId($a_pc_id);
                     return $plugged;
                     //Page-Layout-Support
                 //Page-Layout-Support
                 case "PlaceHolder":
                     require_once "./Services/COPage/classes/class.ilPCPlaceHolder.php";
                     $placeholder = new ilPCPlaceHolder($this->dom);
                     $placeholder->setNode($cont_node);
                     $placeholder->setHierId($a_hier_id);
                     $placeholder->setPcId($a_pc_id);
                     return $placeholder;
                 case "ContentInclude":
                     require_once "./Services/COPage/classes/class.ilPCContentInclude.php";
                     $inc =& new ilPCContentInclude($this->dom);
                     $inc->setNode($cont_node);
                     $inc->setHierId($a_hier_id);
                     $inc->setPcId($a_pc_id);
                     return $inc;
                 case "InteractiveImage":
                     require_once "./Services/COPage/classes/class.ilPCInteractiveImage.php";
                     $iim = new ilPCInteractiveImage($this->dom);
                     $iim->setNode($cont_node);
                     $iim->setHierId($a_hier_id);
                     $iim->setPcId($a_pc_id);
                     return $iim;
                 case "Profile":
                     require_once "./Services/COPage/classes/class.ilPCProfile.php";
                     $prof = new ilPCProfile($this->dom);
                     $prof->setNode($cont_node);
                     $prof->setHierId($a_hier_id);
                     $prof->setPcId($a_pc_id);
                     return $prof;
                 case "Verification":
                     require_once "./Services/COPage/classes/class.ilPCVerification.php";
                     $vrfc = new ilPCVerification($this->dom);
                     $vrfc->setNode($cont_node);
                     $vrfc->setHierId($a_hier_id);
                     $vrfc->setPcId($a_pc_id);
                     return $vrfc;
                 case "Blog":
                     require_once "./Services/COPage/classes/class.ilPCBlog.php";
                     $blog = new ilPCBlog($this->dom);
                     $blog->setNode($cont_node);
                     $blog->setHierId($a_hier_id);
                     $blog->setPcId($a_pc_id);
                     return $blog;
                 case "QuestionOverview":
                     require_once "./Services/COPage/classes/class.ilPCQuestionOverview.php";
                     $qover = new ilPCQuestionOverview($this->dom);
                     $qover->setNode($cont_node);
                     $qover->setHierId($a_hier_id);
                     $qover->setPcId($a_pc_id);
                     return $qover;
                 case "Skills":
                     require_once "./Services/COPage/classes/class.ilPCSkills.php";
                     $skill = new ilPCSkills($this->dom);
                     $skill->setNode($cont_node);
                     $skill->setHierId($a_hier_id);
                     $skill->setPcId($a_pc_id);
                     return $skill;
             }
             break;
         case "TableData":
             require_once "./Services/COPage/classes/class.ilPCTableData.php";
             $td =& new ilPCTableData($this->dom);
             $td->setNode($cont_node);
             $td->setHierId($a_hier_id);
             return $td;
         case "ListItem":
             require_once "./Services/COPage/classes/class.ilPCListItem.php";
             $td =& new ilPCListItem($this->dom);
             $td->setNode($cont_node);
             $td->setHierId($a_hier_id);
             return $td;
         case "FileItem":
             require_once "./Services/COPage/classes/class.ilPCFileItem.php";
             $file_item =& new ilPCFileItem($this->dom);
             $file_item->setNode($cont_node);
             $file_item->setHierId($a_hier_id);
             return $file_item;
             /*			case "Tab":
             				require_once("./Services/COPage/classes/class.ilPCTab.php");
             				$tab =& new ilPCTab($this->dom);
             				$tab->setNode($cont_node);
             				$tab->setHierId($a_hier_id);
             				return $tab;*/
     }
 }