/** * Import lm from directory * * @param * @return */ function importFromDirectory($a_directory, $a_validate = true) { global $lng; // determine filename of xml file $subdir = basename($a_directory); $xml_file = $a_directory . "/" . $subdir . ".xml"; // check directory exists within zip file if (!is_dir($a_directory)) { return sprintf($lng->txt("cont_no_subdir_in_zip"), $subdir); } // check whether xml file exists within zip file if (!is_file($xml_file)) { return sprintf($lng->txt("cont_zip_file_invalid"), $subdir . "/" . $subdir . ".xml"); } // import questions $qti_file = $a_directory . "/qti.xml"; $qtis = array(); if (is_file($qti_file)) { include_once "./Services/QTI/classes/class.ilQTIParser.php"; include_once "./Modules/Test/classes/class.ilObjTest.php"; $qtiParser = new ilQTIParser($qti_file, IL_MO_VERIFY_QTI, 0, ""); $result = $qtiParser->startParsing(); $founditems =& $qtiParser->getFoundItems(); $testObj = new ilObjTest(0, true); if (count($founditems) > 0) { $qtiParser = new ilQTIParser($qti_file, IL_MO_PARSE_QTI, 0, ""); $qtiParser->setTestObject($testObj); $result = $qtiParser->startParsing(); $qtis = array_merge($qtis, $qtiParser->getImportMapping()); } } include_once "./Modules/LearningModule/classes/class.ilContObjParser.php"; $contParser = new ilContObjParser($this, $xml_file, $subdir, $qmapping); $contParser->setQuestionMapping($qtis); $contParser->startParsing(); ilObject::_writeImportId($this->getId(), $this->getImportId()); $this->MDUpdateListener('General'); // import style $style_file = $a_directory . "/style.xml"; $style_zip_file = $a_directory . "/style.zip"; if (is_file($style_zip_file)) { require_once "./Services/Style/classes/class.ilObjStyleSheet.php"; $style = new ilObjStyleSheet(); $style->import($style_zip_file); $this->writeStyleSheetId($style->getId()); } else { if (is_file($style_file)) { require_once "./Services/Style/classes/class.ilObjStyleSheet.php"; $style = new ilObjStyleSheet(); $style->import($style_file); $this->writeStyleSheetId($style->getId()); } } // // validate if ($a_validate) { $mess = $this->validatePages(); } if ($mess == "") { // handle internal links to this learning module include_once "./Services/COPage/classes/class.ilPageObject.php"; ilPageObject::_handleImportRepositoryLinks($this->getImportId(), $this->getType(), $this->getRefId()); } return $mess; }