/** * Perform import */ protected function doImportRole() { global $rbacreview; $form = $this->initImportForm(); if ($form->checkInput()) { try { include_once './Services/Export/classes/class.ilImport.php'; // For global roles set import id to parent of current ref_id (adm) if ($this->isAdminRoleFolder()) { $parent_ref = $GLOBALS['tree']->getParentId($this->getCurrentObject()->getRefId()); } else { $parent_ref = $this->getCurrentObject()->getRefId(); } $imp = new ilImport($parent_ref); $imp->getMapping()->addMapping('Services/AccessControl', 'rolf', 0, $rbacreview->getRoleFolderIdOfObject($parent_ref)); $imp->importObject(null, $_FILES["importfile"]["tmp_name"], $_FILES["importfile"]["name"], 'role'); ilUtil::sendSuccess($this->lng->txt('rbac_role_imported'), true); $this->ctrl->redirect($this, 'perm'); return; } catch (Exception $e) { ilUtil::sendFailure($e->getMessage()); $form->setValuesByPost(); $this->displayImportRoleForm($form); return; } } $form->setValuesByPost(); ilUtil::sendFailure($this->lng->txt('err_check_input')); $this->displayImportRoleForm($form); }
/** * Import lm from zip file * * @param * @return */ function importFromZipFile($a_tmp_file, $a_filename, $a_validate = true, $a_import_into_help_module = 0) { global $lng; // create import directory $this->createImportDirectory(); // copy uploaded file to import directory $file = pathinfo($a_filename); $full_path = $this->getImportDirectory() . "/" . $a_filename; ilUtil::moveUploadedFile($a_tmp_file, $a_filename, $full_path); // unzip file ilUtil::unzip($full_path); $subdir = basename($file["basename"], "." . $file["extension"]); $mess = $this->importFromDirectory($this->getImportDirectory() . "/" . $subdir, $a_validate); // this should only be true for help modules if ($a_import_into_help_module > 0) { // search the zip file $dir = $this->getImportDirectory() . "/" . $subdir; $files = ilUtil::getDir($dir); foreach ($files as $file) { if (is_int(strpos($file["entry"], "__help_")) && is_int(strpos($file["entry"], ".zip"))) { include_once "./Services/Export/classes/class.ilImport.php"; $imp = new ilImport(); $imp->getMapping()->addMapping('Services/Help', 'help_module', 0, $a_import_into_help_module); include_once "./Modules/LearningModule/classes/class.ilLMObject.php"; $chaps = ilLMObject::getObjectList($this->getId(), "st"); foreach ($chaps as $chap) { $chap_arr = explode("_", $chap["import_id"]); $imp->getMapping()->addMapping('Services/Help', 'help_chap', $chap_arr[count($chap_arr) - 1], $chap["obj_id"]); } $imp->importEntity($dir . "/" . $file["entry"], $file["entry"], "help", "Services/Help", true); } } } // delete import directory ilUtil::delDir($this->getImportDirectory()); return $mess; }
/** * display status information or report errors messages * in case of error * * @access public */ function importFileObject() { $new_type = $_REQUEST["new_type"]; // create permission is already checked in createObject. This check here is done to prevent hacking attempts if (!$this->checkPermissionBool("create", "", $new_type)) { $ilErr->raiseError($this->lng->txt("no_create_permission")); } $this->lng->loadLanguageModule($new_type); $this->ctrl->setParameter($this, "new_type", $new_type); $form = $this->initImportForm($new_type); if ($form->checkInput()) { $this->ctrl->setParameter($this, "new_type", ""); $upload = $_FILES["importfile"]; // create and insert object in objecttree include_once "./Modules/Glossary/classes/class.ilObjGlossary.php"; $newObj = new ilObjGlossary(); $newObj->setType($new_type); $newObj->setTitle($upload["name"]); $newObj->create(true); $this->putObjectInTree($newObj); // create import directory $newObj->createImportDirectory(); // copy uploaded file to import directory $file = pathinfo($upload["name"]); $full_path = $newObj->getImportDirectory() . "/" . $upload["name"]; ilUtil::moveUploadedFile($upload["tmp_name"], $upload["name"], $full_path); // unzip file ilUtil::unzip($full_path); // determine filename of xml file $subdir = basename($file["basename"], "." . $file["extension"]); $xml_file = $newObj->getImportDirectory() . "/" . $subdir . "/" . $subdir . ".xml"; // check whether this is a new export file. // this is the case if manifest.xml exits //echo "1-".$newObj->getImportDirectory()."/".$subdir."/manifest.xml"."-"; if (is_file($newObj->getImportDirectory() . "/" . $subdir . "/manifest.xml")) { include_once "./Services/Export/classes/class.ilImport.php"; $imp = new ilImport((int) $_GET["ref_id"]); $map = $imp->getMapping(); $map->addMapping("Modules/Glossary", "glo", "new_id", $newObj->getId()); $imp->importObject($newObj, $full_path, $upload["name"], "glo", "Modules/Glossary", true); ilUtil::sendSuccess($this->lng->txt("glo_added"), true); ilUtil::redirect("ilias.php?baseClass=ilGlossaryEditorGUI&ref_id=" . $newObj->getRefId()); } // check whether subdirectory exists within zip file if (!is_dir($newObj->getImportDirectory() . "/" . $subdir)) { $this->ilias->raiseError(sprintf($this->lng->txt("cont_no_subdir_in_zip"), $subdir), $this->ilias->error_obj->MESSAGE); } // check whether xml file exists within zip file if (!is_file($xml_file)) { $this->ilias->raiseError(sprintf($this->lng->txt("cont_zip_file_invalid"), $subdir . "/" . $subdir . ".xml"), $this->ilias->error_obj->MESSAGE); } include_once "./Modules/LearningModule/classes/class.ilContObjParser.php"; $contParser = new ilContObjParser($newObj, $xml_file, $subdir); $contParser->startParsing(); ilObject::_writeImportId($newObj->getId(), $newObj->getImportId()); // delete import directory ilUtil::delDir($newObj->getImportDirectory()); ilUtil::sendSuccess($this->lng->txt("glo_added"), true); ilUtil::redirect("ilias.php?baseClass=ilGlossaryEditorGUI&ref_id=" . $newObj->getRefId()); } // display form to correct errors $form->setValuesByPost(); $tpl->setContent($form->getHtml()); }