24 include_once
"./classes/class.ilObjectGUI.php";
25 include_once
"./Modules/Survey/classes/inc.SurveyConstants.php";
55 $lng->loadLanguageModule(
"survey");
57 $this->ctrl->saveParameter($this, array(
"ref_id",
"calling_survey",
"new_for_survey"));
67 global $ilAccess, $ilNavigationHistory;
69 if ((!$ilAccess->checkAccess(
"read",
"",
$_GET[
"ref_id"])) && (!$ilAccess->checkAccess(
"visible",
"",
$_GET[
"ref_id"])))
72 $ilias->raiseError($this->lng->txt(
"permission_denied"), $ilias->error_obj->MESSAGE);
76 $ilAccess->checkAccess(
"read",
"",
$_GET[
"ref_id"]))
78 $ilNavigationHistory->addItem(
$_GET[
"ref_id"],
79 "ilias.php?baseClass=ilObjSurveyQuestionPoolGUI&cmd=questions&ref_id=".
$_GET[
"ref_id"],
"spl");
84 $cmd = $this->ctrl->getCmd(
"questions");
85 $next_class = $this->ctrl->getNextClass($this);
86 $this->ctrl->setReturn($this,
"questions");
87 if (
$_GET[
"q_id"] < 1)
89 $q_type = (
$_POST[
"sel_question_types"] !=
"")
90 ?
$_POST[
"sel_question_types"]
91 :
$_GET[
"sel_question_types"];
96 include_once
"./Services/MetaData/classes/class.ilMDEditorGUI.php";
97 $md_gui =&
new ilMDEditorGUI($this->object->getId(), 0, $this->
object->getType());
98 $md_gui->
addObserver($this->
object,
'MDUpdateListener',
'General');
100 $this->ctrl->forwardCommand($md_gui);
103 case 'ilpermissiongui':
104 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
106 $ret =& $this->ctrl->forwardCommand($perm_gui);
109 case "ilsurveyphrasesgui":
110 include_once(
"./Modules/SurveyQuestionPool/classes/class.ilSurveyPhrasesGUI.php");
112 $ret =& $this->ctrl->forwardCommand($phrases_gui);
115 case 'ilobjectcopygui':
116 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
119 $this->ctrl->forwardCommand($cp);
128 include_once
"./Modules/SurveyQuestionPool/classes/class.SurveyQuestionGUI.php";
130 $q_gui->object->setObjId($this->object->getId());
131 $q_gui->setQuestionTabs();
132 $ret =& $this->ctrl->forwardCommand($q_gui);
135 if (strtolower(
$_GET[
"baseClass"]) !=
"iladministrationgui" &&
158 if (!strlen(
$_POST[
'Fobject'][
'title']))
161 $this->ctrl->setParameter($this,
'new_type',
$_GET[
'new_type']);
162 $this->ctrl->redirect($this,
'create');
172 "&baseClass=ilObjSurveyQuestionPoolGUI");
180 $save = ((strcmp($this->ctrl->getCmd(),
"save") == 0)) ?
true :
false;
182 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
184 $form->setFormAction($this->ctrl->getFormAction($this,
'properties'));
185 $form->setTitle($this->lng->txt(
"properties"));
186 $form->setMultipart(
false);
187 $form->setId(
"properties");
191 $online->
setInfo($this->lng->txt(
"spl_online_property_description"));
192 $online->setChecked($this->object->getOnline());
193 $form->addItem($online);
196 $tablecols =
new ilCustomInputGUI($this->lng->txt(
'spl_browsercolumns'),
'browsercolumn');
197 $tablecols->
setInfo($this->lng->txt(
"spl_browsercolumns_description"));
199 $description->
setChecked($qplSetting->get(
"description", 1) ?
true :
false);
201 $type->setChecked($qplSetting->get(
"type", 1) ?
true :
false);
203 $author->
setChecked($qplSetting->get(
"author", 1) ?
true :
false);
205 $created->
setChecked($qplSetting->get(
"created", 1) ?
true :
false);
207 $updated->
setChecked($qplSetting->get(
"updated", 1) ?
true :
false);
208 $tablecols->addSubitem($description);
209 $tablecols->addSubitem(
$type);
210 $tablecols->addSubitem($author);
211 $tablecols->addSubitem($created);
212 $tablecols->addSubitem($updated);
213 $form->addItem($tablecols);
215 $form->addCommandButton(
"saveProperties", $this->lng->txt(
"save"));
221 $this->tpl->setVariable(
"ADM_CONTENT", $form->getHTML());
229 $qpl_online =
$_POST[
"online"];
230 if (strlen($qpl_online) == 0) $qpl_online =
"0";
231 $this->
object->setOnline($qpl_online);
232 $this->
object->saveToDb();
235 $qplSetting->set(
'description', (
$_POST[
"description"]) ? 1 : 0);
236 $qplSetting->set(
'type', (
$_POST[
"type"]) ? 1 : 0);
237 $qplSetting->set(
'author', (
$_POST[
"author"]) ? 1 : 0);
238 $qplSetting->set(
'created', (
$_POST[
"created"]) ? 1 : 0);
239 $qplSetting->set(
'updated', (
$_POST[
"updated"]) ? 1 : 0);
241 $this->ctrl->redirect($this,
"properties");
250 if (count(
$_POST[
"q_id"]) > 0)
254 $this->
object->copyToClipboard($value);
262 $this->ctrl->redirect($this,
"questions");
270 if (count(
$_POST[
"q_id"]) > 0)
274 $this->
object->moveToClipboard($value);
282 $this->ctrl->redirect($this,
"questions");
290 if (is_array(
$_POST[
'q_id']) && count(
$_POST[
'q_id']) > 0)
310 $checked_questions =
$_POST[
'q_id'];
311 if (count($checked_questions) > 0)
313 if ($rbacsystem->checkAccess(
'write', $this->ref_id))
324 elseif (count($checked_questions) == 0)
330 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.il_svy_qpl_confirm_delete_questions.html",
"Modules/SurveyQuestionPool");
331 $infos = $this->
object->getQuestionInfos($checked_questions);
332 $colors = array(
"tblrow1",
"tblrow2");
334 include_once
"./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
335 foreach ($infos as
$data)
337 $this->tpl->setCurrentBlock(
"row");
338 $this->tpl->setVariable(
"COLOR_CLASS", $colors[$counter % 2]);
339 $this->tpl->setVariable(
"TXT_TITLE", $data[
"title"]);
340 $this->tpl->setVariable(
"TXT_DESCRIPTION", $data[
"description"]);
342 $this->tpl->parseCurrentBlock();
345 foreach ($checked_questions as $id)
347 $this->tpl->setCurrentBlock(
"hidden");
348 $this->tpl->setVariable(
"HIDDEN_NAME",
"q_id[]");
349 $this->tpl->setVariable(
"HIDDEN_VALUE", $id);
350 $this->tpl->parseCurrentBlock();
353 $this->tpl->setCurrentBlock(
"adm_content");
354 $this->tpl->setVariable(
"TXT_TITLE", $this->lng->txt(
"title"));
355 $this->tpl->setVariable(
"TXT_DESCRIPTION", $this->lng->txt(
"description"));
356 $this->tpl->setVariable(
"TXT_TYPE", $this->lng->txt(
"question_type"));
357 $this->tpl->setVariable(
"BTN_CONFIRM", $this->lng->txt(
"confirm"));
358 $this->tpl->setVariable(
"BTN_CANCEL", $this->lng->txt(
"cancel"));
359 $this->tpl->setVariable(
"FORM_ACTION", $this->ctrl->getFormAction($this));
360 $this->tpl->parseCurrentBlock();
370 foreach (
$_POST[
'q_id'] as $q_id)
372 $this->
object->removeQuestion($q_id);
374 $this->ctrl->redirect($this,
"questions");
383 $this->ctrl->redirect($this,
"questions");
391 if (array_key_exists(
"spl_clipboard",
$_SESSION))
393 $this->
object->pasteFromClipboard();
399 $this->ctrl->redirect($this,
"questions");
407 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.il_svy_import_question.html",
"Modules/SurveyQuestionPool");
408 $this->tpl->setCurrentBlock(
"adm_content");
409 $this->tpl->setVariable(
"TEXT_IMPORT_QUESTION", $this->lng->txt(
"import_question"));
410 $this->tpl->setVariable(
"TEXT_SELECT_FILE", $this->lng->txt(
"select_file"));
411 $this->tpl->setVariable(
"TEXT_UPLOAD", $this->lng->txt(
"upload"));
412 $this->tpl->setVariable(
"FORM_ACTION", $this->ctrl->getFormAction($this));
413 $this->tpl->parseCurrentBlock();
422 $source = $_FILES[
"qtidoc"][
"tmp_name"];
424 if (($source ==
'none') || (!$source) || $_FILES[
"qtidoc"][
"error"] > UPLOAD_ERR_OK)
429 if (strpos(
"xml", $_FILES[
"qtidoc"][
"type"]) !== FALSE)
437 $this->
object->createImportDirectory();
440 $full_path = $this->
object->getImportDirectory().
"/".$_FILES[
"qtidoc"][
"name"];
442 include_once
"./Services/Utilities/classes/class.ilUtil.php";
444 $_FILES[
"qtidoc"][
"name"], $full_path);
445 $source = $full_path;
446 $this->
object->importObject($source, TRUE);
449 $this->ctrl->redirect($this,
"questions");
454 include_once
"./Modules/SurveyQuestionPool/classes/tables/class.ilSurveyQuestionsTableGUI.php";
456 $table_gui->writeFilterToSession();
457 $this->ctrl->redirect($this,
'questions');
462 include_once
"./Modules/SurveyQuestionPool/classes/tables/class.ilSurveyQuestionsTableGUI.php";
464 $table_gui->resetFilter();
465 $this->ctrl->redirect($this,
'questions');
476 $this->
object->purgeQuestions();
479 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.il_svy_qpl_questionbrowser.html",
"Modules/SurveyQuestionPool");
480 include_once
"./Modules/SurveyQuestionPool/classes/tables/class.ilSurveyQuestionsTableGUI.php";
482 $table_gui->
setEditable($rbacsystem->checkAccess(
'write',
$_GET[
'ref_id']));
483 $arrFilter = array();
484 foreach ($table_gui->getFilterItems() as $item)
486 if ($item->getValue() !==
false)
488 $arrFilter[$item->getPostVar()] = $item->getValue();
491 $data = $this->
object->getQuestionsData($arrFilter);
492 $table_gui->setData(
$data);
493 $this->tpl->setVariable(
'TABLE', $table_gui->getHTML());
495 if ($rbacsystem->checkAccess(
'write',
$_GET[
'ref_id']))
497 $this->tpl->setCurrentBlock(
"QTypes");
498 $types =& ilObjSurveyQuestionPool::_getQuestionTypes();
499 $lastquestiontype = $ilUser->getPref(
"svy_lastquestiontype");
500 foreach ($types as $translation =>
$data)
502 if (
$data[
"type_tag"] == $lastquestiontype)
504 $this->tpl->setVariable(
"QUESTION_TYPE_SELECTED",
" selected=\"selected\"");
506 $this->tpl->setVariable(
"QUESTION_TYPE_ID",
$data[
"type_tag"]);
507 $this->tpl->setVariable(
"QUESTION_TYPE", $translation);
508 $this->tpl->parseCurrentBlock();
510 $this->tpl->setVariable(
"QUESTION_ADD", $this->lng->txt(
"create"));
511 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this,
'questions'));
512 $this->tpl->parseCurrentBlock();
518 $this->update = $this->
object->update();
527 include_once
"./Modules/SurveyQuestionPool/classes/tables/class.ilSurveyQuestionPoolExportTableGUI.php";
529 $export_dir = $this->
object->getExportDirectory();
530 $export_files = $this->
object->getExportFiles($export_dir);
532 foreach ($export_files as $exp_file)
534 $file_arr = explode(
"__", $exp_file);
537 $table_gui->setData(
$data);
538 $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
548 if ($rbacsystem->checkAccess(
"write", $this->ref_id))
550 include_once(
"./Modules/SurveyQuestionPool/classes/class.ilSurveyQuestionpoolExport.php");
552 $survey_exp->buildExportFile($questions);
553 $this->ctrl->redirect($this,
"export");
566 if(!isset(
$_POST[
"file"]))
569 $this->ctrl->redirect($this,
"export");
572 if (count(
$_POST[
"file"]) > 1)
575 $this->ctrl->redirect($this,
"export");
579 $export_dir = $this->
object->getExportDirectory();
580 include_once
"./Services/Utilities/classes/class.ilUtil.php";
590 if(!isset(
$_POST[
"file"]))
593 $this->ctrl->redirect($this,
"export");
597 include_once
"./Modules/SurveyQuestionPool/classes/tables/class.ilSurveyQuestionPoolExportTableGUI.php";
599 $export_dir = $this->
object->getExportDirectory();
601 foreach (
$_POST[
'file'] as $exp_file)
603 $file_arr = explode(
"__", $exp_file);
606 $table_gui->setData(
$data);
607 $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
616 session_unregister(
"ilExportFiles");
617 $this->ctrl->redirect($this,
"export");
625 $export_dir = $this->
object->getExportDirectory();
628 $exp_file = $export_dir.
"/".
$file;
629 $exp_dir = $export_dir.
"/".substr($file, 0, strlen($file) - 4);
630 if (@is_file($exp_file))
634 if (@is_dir($exp_dir))
636 include_once
"./Services/Utilities/classes/class.ilUtil.php";
640 $this->ctrl->redirect($this,
"export");
651 if (!$rbacsystem->checkAccess(
"create",
$_GET[
"ref_id"]))
653 $this->ilias->raiseError($this->lng->txt(
"permission_denied"),$this->ilias->error_obj->MESSAGE);
656 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
657 $this->tpl->setVariable(
"BTN_NAME",
"uploadSpl");
658 $this->tpl->setVariable(
"TXT_UPLOAD", $this->lng->txt(
"upload"));
659 $this->tpl->setVariable(
"TXT_IMPORT_SPL", $this->lng->txt(
"import_spl"));
660 $this->tpl->setVariable(
"TXT_SELECT_MODE", $this->lng->txt(
"select_mode"));
661 $this->tpl->setVariable(
"TXT_SELECT_FILE", $this->lng->txt(
"select_file"));
669 if ($_FILES[
"xmldoc"][
"error"] > UPLOAD_ERR_OK)
675 include_once
"./Modules/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPool.php";
679 $newObj->setType(
$_GET[
"new_type"]);
681 $newObj->setTitle(
"dummy");
683 $newObj->create(
true);
685 $newObj->createReference();
687 $newObj->putInTree(
$_GET[
"ref_id"]);
689 $newObj->setPermissions(
$_GET[
"ref_id"]);
691 $newObj->notify(
"new",
$_GET[
"ref_id"],
$_GET[
"parent_non_rbac_id"],
$_GET[
"ref_id"],$newObj->getRefId());
694 $newObj->createImportDirectory();
697 $file = pathinfo($_FILES[
"xmldoc"][
"name"]);
698 $full_path = $newObj->getImportDirectory().
"/".$_FILES[
"xmldoc"][
"name"];
699 include_once
"./Services/Utilities/classes/class.ilUtil.php";
701 $_FILES[
"xmldoc"][
"name"], $full_path);
704 $qtiresult = $newObj->importObject($full_path);
708 $this->ctrl->redirect($this,
"cancel");
710 return $newObj->getRefId();
720 if (!$rbacsystem->checkAccess(
"create",
$_GET[
"ref_id"], $new_type))
722 $this->ilias->raiseError($this->lng->txt(
"permission_denied"),$this->ilias->error_obj->MESSAGE);
728 include_once(
"./Modules/Survey/classes/class.ilObjSurvey.php");
730 $this->tpl->setCurrentBlock(
"adm_content");
734 $data[
"fields"] = array();
735 include_once
"./Services/Utilities/classes/class.ilUtil.php";
739 foreach (
$data[
"fields"] as
$key => $val)
741 $this->tpl->setVariable(
"TXT_".strtoupper(
$key), $this->lng->txt(
$key));
742 $this->tpl->setVariable(strtoupper(
$key), $val);
744 if ($this->prepare_output)
746 $this->tpl->parseCurrentBlock();
750 $this->ctrl->setParameter($this,
"new_type", $this->type);
751 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
752 $this->tpl->setVariable(
"TXT_HEADER", $this->lng->txt($new_type.
"_new"));
753 $this->tpl->setVariable(
"TXT_CANCEL", $this->lng->txt(
"cancel"));
754 $this->tpl->setVariable(
"TXT_SUBMIT", $this->lng->txt($new_type.
"_add"));
755 $this->tpl->setVariable(
"CMD_SUBMIT",
"save");
756 $this->tpl->setVariable(
"TARGET",
' target="'.
758 $this->tpl->setVariable(
"TXT_REQUIRED_FLD", $this->lng->txt(
"required_field"));
760 $this->tpl->setVariable(
"TXT_IMPORT_SPL", $this->lng->txt(
"import_spl"));
761 $this->tpl->setVariable(
"TXT_SPL_FILE", $this->lng->txt(
"spl_upload_file"));
762 $this->tpl->setVariable(
"NEW_TYPE", $this->type);
763 $this->tpl->setVariable(
"TXT_IMPORT", $this->lng->txt(
"import"));
766 $this->tpl->setVariable(
"ALT_IMG",$this->lng->txt(
"obj_spl"));
768 $this->tpl->setVariable(
"ALT_IMG2",$this->lng->txt(
"obj_spl"));
770 $this->tpl->parseCurrentBlock();
779 if (strcmp($_FILES[
"xmldoc"][
"tmp_name"],
"") == 0)
785 $this->ctrl->setParameter($this,
"new_type", $this->type);
791 "&baseClass=ilObjSurveyQuestionPoolGUI");
800 $ilUser->writePref(
"svy_lastquestiontype",
$_POST[
"sel_question_types"]);
801 include_once
"./Modules/SurveyQuestionPool/classes/class.SurveyQuestionGUI.php";
803 $q_gui->object->setObjId($this->object->getId());
804 $q_gui->object->createNewQuestion();
805 $this->ctrl->setParameterByClass(get_class($q_gui),
"q_id", $q_gui->object->getId());
806 $this->ctrl->setParameterByClass(get_class($q_gui),
"sel_question_types",
$_POST[
"sel_question_types"]);
807 $this->ctrl->redirectByClass(get_class($q_gui),
"editQuestion");
815 include_once
"./Modules/SurveyQuestionPool/classes/class.SurveyQuestionGUI.php";
817 $this->ctrl->setParameterByClass(get_class($q_gui),
"sel_question_types", $q_gui->getQuestionType());
818 $this->ctrl->setParameterByClass(get_class($q_gui),
"q_id",
$_GET[
"q_id"]);
819 $this->ctrl->redirectByClass(get_class($q_gui),
"editQuestion");
827 include_once
"./Modules/SurveyQuestionPool/classes/class.SurveyQuestionGUI.php";
829 $q_gui->object->createNewQuestion();
830 $this->ctrl->setParameterByClass(get_class($q_gui),
"q_id", $q_gui->object->getId());
831 $this->ctrl->setParameterByClass(get_class($q_gui),
"sel_question_types", $q_gui->getQuestionType());
832 $this->ctrl->redirectByClass(get_class($q_gui),
"editQuestion");
840 include_once
"./Modules/SurveyQuestionPool/classes/class.SurveyQuestionGUI.php";
842 $this->ctrl->setParameterByClass(get_class($q_gui),
"sel_question_types", $q_gui->getQuestionType());
843 $this->ctrl->setParameterByClass(get_class($q_gui),
"q_id",
$_GET[
"preview"]);
844 $this->ctrl->redirectByClass(get_class($q_gui),
"preview");
850 switch ($this->ctrl->getCmd())
857 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
""),
"",
$_GET[
"ref_id"]);
860 if (
$_GET[
"q_id"] > 0)
862 include_once
"./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
864 $this->ctrl->setParameterByClass($q_type,
"q_id",
$_GET[
"q_id"]);
876 $next_class = $this->ctrl->getNextClass($this);
880 case "ilpermissiongui":
881 case "ilmdeditorgui":
882 case "ilsurveyphrasesgui":
888 if ((
$_GET[
"calling_survey"] > 0) || (
$_GET[
"new_for_survey"] > 0))
return;
890 $force_active = ($this->ctrl->getCmdClass() ==
"" ||
891 $this->ctrl->getCmd() ==
"")
896 if (is_array(
$_GET[
"sort"]))
898 $force_active =
true;
901 $tabs_gui->addTarget(
"survey_questions",
902 $this->ctrl->getLinkTarget($this,
'questions'),
903 array(
"questions",
"filterQuestionBrowser",
"filter",
"reset",
"createQuestion",
904 "importQuestions",
"deleteQuestions",
"copy",
"paste",
905 "exportQuestions",
"confirmDeleteQuestions",
"cancelDeleteQuestions",
906 "confirmPasteQuestions",
"cancelPasteQuestions",
"uploadQuestions",
907 "editQuestion",
"addMaterial",
"removeMaterial",
"save",
"cancel",
908 "cancelExplorer",
"linkChilds",
"addGIT",
"addST",
"addPG",
"preview",
909 "moveCategory",
"deleteCategory",
"addPhrase",
"addCategory",
"savePhrase",
910 "addSelectedPhrase",
"cancelViewPhrase",
"confirmSavePhrase",
"cancelSavePhrase",
911 "insertBeforeCategory",
"insertAfterCategory",
"confirmDeleteCategory",
912 "cancelDeleteCategory",
"categories",
"saveCategories",
913 "savePhrase",
"addPhrase"
915 array(
"ilobjsurveyquestionpoolgui",
"ilsurveyphrasesgui"),
"", $force_active);
920 $tabs_gui->addTarget(
"properties",
921 $this->ctrl->getLinkTarget($this,
'properties'),
924 if ($rbacsystem->checkAccess(
'write', $this->ref_id))
927 $tabs_gui->addTarget(
"meta_data",
928 $this->ctrl->getLinkTargetByClass(
'ilmdeditorgui',
'listSection'),
929 "",
"ilmdeditorgui");
932 $tabs_gui->addTarget(
"manage_phrases",
933 $this->ctrl->getLinkTargetByClass(
"ilsurveyphrasesgui",
"phrases"),
934 array(
"phrases",
"deletePhrase",
"confirmDeletePhrase",
"cancelDeletePhrase"),
935 "ilsurveyphrasesgui",
"");
939 $tabs_gui->addTarget(
"export",
940 $this->ctrl->getLinkTarget($this,
'export'),
941 array(
"export",
"createExportFile",
"confirmDeleteExportFile",
942 "downloadExportFile",
"cancelDeleteExportFile",
"deleteExportFile"),
945 if ($ilAccess->checkAccess(
"edit_permission",
"", $this->ref_id))
947 $tabs_gui->addTarget(
"perm_settings",
948 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm"), array(
"perm",
"info",
"owner"),
'ilpermissiongui');
958 public static function _goto($a_target)
961 if ($ilAccess->checkAccess(
"write",
"", $a_target))
963 $_GET[
"baseClass"] =
"ilObjSurveyQuestionPoolGUI";
964 $_GET[
"cmd"] =
"questions";
965 $_GET[
"ref_id"] = $a_target;
966 include_once(
"ilias.php");
969 else if ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID))
971 $_GET[
"cmd"] =
"frameset";
972 $_GET[
"target"] =
"";
973 $_GET[
"ref_id"] = ROOT_FOLDER_ID;
976 include(
"repository.php");
979 $ilErr->raiseError($lng->txt(
"msg_no_perm_read_lm"), $ilErr->FATAL);