4require_once
'./Services/Object/classes/class.ilObjectGUI.php';
5require_once
'./Modules/TestQuestionPool/classes/class.assQuestionGUI.php';
6require_once
'./Modules/TestQuestionPool/classes/class.ilObjQuestionPool.php';
7require_once
'./Modules/TestQuestionPool/exceptions/class.ilTestQuestionPoolException.php';
8require_once
'./Modules/Test/classes/inc.AssessmentConstants.php';
9require_once
'./Modules/Test/classes/class.ilObjAssessmentFolder.php';
10require_once
'./Modules/Test/classes/class.ilObjTest.php';
51 $rbacsystem =
$DIC[
'rbacsystem'];
52 $lng->loadLanguageModule(
"assessment");
56 $this->ctrl->saveParameter($this, array(
57 "ref_id",
"test_ref_id",
"calling_test",
"test_express_mode",
"q_id",
'tax_node',
'calling_consumer',
'consumer_context'
59 $this->ctrl->saveParameter($this,
"calling_consumer");
60 $this->ctrl->saveParameterByClass(
'ilAssQuestionPageGUI',
'calling_consumer');
61 $this->ctrl->saveParameterByClass(
'ilAssQuestionPageGUI',
'consumer_context');
62 $this->ctrl->saveParameterByClass(
'ilobjquestionpoolgui',
'calling_consumer');
63 $this->ctrl->saveParameterByClass(
'ilobjquestionpoolgui',
'consumer_context');
65 parent::__construct(
"",
$_GET[
"ref_id"],
true,
false);
84 $ilLocator =
$DIC[
'ilLocator'];
85 $ilAccess =
$DIC[
'ilAccess'];
86 $ilNavigationHistory =
$DIC[
'ilNavigationHistory'];
90 $ilTabs =
$DIC[
'ilTabs'];
93 $ilPluginAdmin =
$DIC[
'ilPluginAdmin'];
94 $ilias =
$DIC[
'ilias'];
96 $writeAccess = $ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"]);
98 if ((!$ilAccess->checkAccess(
"read",
"",
$_GET[
"ref_id"])) && (!$ilAccess->checkAccess(
"visible",
"",
$_GET[
"ref_id"]))) {
100 $ilias =
$DIC[
'ilias'];
101 $ilias->raiseError($this->lng->txt(
"permission_denied"), $ilias->error_obj->MESSAGE);
106 $ilAccess->checkAccess(
"read",
"",
$_GET[
"ref_id"])) {
107 if (
'qpl' == $this->object->getType()) {
108 $ilNavigationHistory->addItem(
110 "ilias.php?baseClass=ilObjQuestionPoolGUI&cmd=questions&ref_id=" .
$_GET[
"ref_id"],
116 $cmd = $this->ctrl->getCmd(
"questions");
117 $next_class = $this->ctrl->getNextClass($this);
119 if (in_array($next_class, array(
'',
'ilobjquestionpoolgui')) && $cmd ==
'questions') {
125 $this->ctrl->setReturn($this,
"questions");
130 if (
$_GET[
"q_id"] < 1) {
131 $q_type = (
$_POST[
"sel_question_types"] !=
"")
132 ?
$_POST[
"sel_question_types"]
133 :
$_GET[
"sel_question_types"];
135 if ($cmd !=
"createQuestion" && $cmd !=
"createQuestionForTest"
136 && $next_class !=
"ilassquestionpagegui") {
137 if ((
$_GET[
"test_ref_id"] !=
"") or (
$_GET[
"calling_test"])) {
144 switch ($next_class) {
145 case "ilcommonactiondispatchergui":
146 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
148 $this->ctrl->forwardCommand($gui);
151 case 'ilobjectmetadatagui':
152 if (!$ilAccess->checkAccess(
'write',
'', $this->object->getRefId())) {
153 $ilErr->raiseError($this->lng->txt(
'permission_denied'),
$ilErr->WARNING);
155 include_once
'Services/Object/classes/class.ilObjectMetaDataGUI.php';
157 $this->ctrl->forwardCommand($md_gui);
160 case 'ilassquestionpreviewgui':
162 $this->ctrl->saveParameter($this,
"q_id");
164 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionPreviewGUI.php';
167 $gui->initQuestion((
int)
$_GET[
'q_id'], $this->object->getId());
168 $gui->initPreviewSettings($this->object->getRefId());
169 $gui->initPreviewSession(
$ilUser->getId(), $this->fetchAuthoringQuestionIdParamater());
170 $gui->initHintTracking();
171 $gui->initStyleSheets();
174 $ilHelp =
$DIC[
'ilHelp'];
175 $ilHelp->setScreenIdComponent(
"qpl");
177 $this->ctrl->forwardCommand($gui);
180 case "ilassquestionpagegui":
181 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
182 $this->tpl->setCurrentBlock(
"ContentStyle");
184 $this->tpl->parseCurrentBlock();
187 $this->tpl->setCurrentBlock(
"SyntaxStyle");
189 $this->tpl->parseCurrentBlock();
191 include_once
"./Modules/TestQuestionPool/classes/class.assQuestionGUI.php";
194 $q_gui->setQuestionTabs();
195 $q_gui->outAdditionalOutput();
196 $q_gui->object->setObjId($this->object->getId());
198 $q_gui->setTargetGuiClass(
null);
199 $q_gui->setQuestionActionCmd(
null);
201 if ($this->object->getType() ==
'qpl') {
202 $q_gui->addHeaderAction();
205 $question = $q_gui->object;
206 $this->ctrl->saveParameter($this,
"q_id");
207 include_once(
"./Modules/TestQuestionPool/classes/class.ilAssQuestionPageGUI.php");
208 $this->lng->loadLanguageModule(
"content");
209 $this->ctrl->setReturnByClass(
"ilAssQuestionPageGUI",
"view");
210 $this->ctrl->setReturn($this,
"questions");
212 $page_gui->obj->addUpdateListener(
216 $page_gui->setEditPreview(
true);
217 $page_gui->setEnabledTabs(
false);
218 if (strlen($this->ctrl->getCmd()) == 0 && !isset(
$_POST[
"editImagemapForward_x"])) {
219 $this->ctrl->setCmdClass(get_class($page_gui));
220 $this->ctrl->setCmd(
"preview");
222 $page_gui->setQuestionHTML(array($q_gui->object->getId() => $q_gui->getPreview(
true)));
223 $page_gui->setTemplateTargetVar(
"ADM_CONTENT");
224 $page_gui->setOutputMode(
"edit");
225 $page_gui->setHeader($question->getTitle());
226 $page_gui->setPresentationTitle($question->getTitle());
227 $ret = $this->ctrl->forwardCommand($page_gui);
231 case 'ilpermissiongui':
232 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
234 $ret = $this->ctrl->forwardCommand($perm_gui);
237 case 'ilobjectcopygui':
238 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
241 $this->ctrl->forwardCommand($cp);
244 case "ilquestionpoolexportgui":
245 require_once
'Modules/TestQuestionPool/classes/class.ilQuestionPoolExportGUI.php';
247 $exp_gui->addFormat(
'xml', $this->lng->txt(
'qpl_export_xml'));
248 $exp_gui->addFormat(
'xls', $this->lng->txt(
'qpl_export_excel'), $this,
'createExportExcel');
249 $ret = $this->ctrl->forwardCommand($exp_gui);
252 case "ilinfoscreengui":
256 case 'ilassquestionhintsgui':
259 $this->ctrl->setReturn($this,
"questions");
262 require_once
'Modules/TestQuestionPool/classes/class.assQuestionGUI.php';
264 $questionGUI->object->setObjId($this->object->getId());
265 $questionGUI->setQuestionTabs();
267 $ilHelp =
$DIC[
'ilHelp'];
268 $ilHelp->setScreenIdComponent(
"qpl");
270 if ($this->object->getType() ==
'qpl' && $writeAccess) {
271 $questionGUI->addHeaderAction();
275 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionHintsGUI.php';
278 $gui->setEditingEnabled(
279 $DIC->access()->checkAccess(
'write',
'', $this->object->getRefId())
286 case 'illocalunitconfigurationgui':
287 if (!$ilAccess->checkAccess(
'write',
'', $this->object->getRefId())) {
288 $ilErr->raiseError($this->lng->txt(
'permission_denied'),
$ilErr->WARNING);
291 require_once
'Modules/TestQuestionPool/classes/class.assQuestionGUI.php';
293 $questionGUI->object->setObjId($this->object->getId());
294 $questionGUI->setQuestionTabs();
296 $this->ctrl->setReturn($this,
'questions');
298 require_once
'Modules/TestQuestionPool/classes/class.ilLocalUnitConfigurationGUI.php';
299 require_once
'Modules/TestQuestionPool/classes/class.ilUnitConfigurationRepository.php';
306 case 'ilassquestionfeedbackeditinggui':
309 $this->ctrl->setReturn($this,
"questions");
312 require_once
'Modules/TestQuestionPool/classes/class.assQuestionGUI.php';
314 $questionGUI->object->setObjId($this->object->getId());
315 $questionGUI->setQuestionTabs();
317 $ilHelp =
$DIC[
'ilHelp'];
318 $ilHelp->setScreenIdComponent(
"qpl");
320 if ($this->object->getType() ==
'qpl' && $writeAccess) {
321 $questionGUI->addHeaderAction();
325 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionFeedbackEditingGUI.php';
331 case 'ilobjquestionpoolsettingsgeneralgui':
332 require_once
'Modules/TestQuestionPool/classes/class.ilObjQuestionPoolSettingsGeneralGUI.php';
334 $this->ctrl->forwardCommand($gui);
337 case "ilobjtaxonomygui":
339 require_once
'Modules/TestQuestionPool/classes/class.ilObjQuestionPoolTaxonomyEditingCommandForwarder.php';
349 $forwarder->forward();
353 case 'ilquestionpoolskilladministrationgui':
355 require_once
'Modules/TestQuestionPool/classes/class.ilQuestionPoolSkillAdministrationGUI.php';
369 $this->ctrl->forwardCommand($gui);
373 case 'ilquestionbrowsertablegui':
377 case "ilobjquestionpoolgui":
380 if ($cmd ==
'questions') {
381 $this->ctrl->setParameter($this,
'q_id',
'');
385 $ret = $this->$cmd();
389 $this->ctrl->setReturn($this,
"questions");
390 include_once
"./Modules/TestQuestionPool/classes/class.assQuestionGUI.php";
393 $q_gui->object->setObjId($this->object->getId());
394 if ($this->object->getType() ==
'qpl') {
395 $q_gui->setTaxonomyIds($this->object->getTaxonomyIds());
396 $this->
object->addQuestionChangeListeners($q_gui->object);
398 $q_gui->addHeaderAction();
401 $q_gui->setQuestionTabs();
403 $ilHelp =
$DIC[
'ilHelp'];
404 $ilHelp->setScreenIdComponent(
"qpl");
405 $ret = $this->ctrl->forwardCommand($q_gui);
409 if (!(strtolower(
$_GET[
"baseClass"]) ==
"iladministrationgui"
410 || strtolower(
$_GET[
'baseClass']) ==
'ilrepositorygui')
423 $DIC->ctrl()->redirectByClass(
'ilQuestionPoolExportGUI');
431 $file = explode(
"_",
$_GET[
"file_id"]);
432 include_once(
"./Modules/File/classes/class.ilObjFile.php");
433 $fileObj =
new ilObjFile($file[count($file) - 1],
false);
434 $fileObj->sendFile();
443 include_once(
"./Modules/TestQuestionPool/classes/class.ilAssQuestionPageGUI.php");
445 $page_gui->showMediaFullscreen();
462 $_POST[
"filter_text"] =
"";
463 $_POST[
"sel_filter_type"] =
"";
472 include_once(
"./Modules/TestQuestionPool/classes/class.ilAssQuestionPage.php");
474 $pg_obj->send_paragraph(
$_GET[
"par_id"],
$_GET[
"downloadtitle"]);
483 $this->ctrl->setParameter($this,
'new_type', $_REQUEST[
'new_type']);
484 if ($_FILES[
"xmldoc"][
"error"] > UPLOAD_ERR_OK) {
486 if (!$questions_only) {
487 $this->ctrl->redirect($this,
'create');
492 include_once
"./Modules/TestQuestionPool/classes/class.ilObjQuestionPool.php";
497 $file = pathinfo($_FILES[
"xmldoc"][
"name"]);
498 $full_path = $basedir .
"/" . $_FILES[
"xmldoc"][
"name"];
499 $DIC[
'ilLog']->write(__METHOD__ .
": full path " . $full_path);
500 include_once
"./Services/Utilities/classes/class.ilUtil.php";
501 ilUtil::moveUploadedFile($_FILES[
"xmldoc"][
"tmp_name"], $_FILES[
"xmldoc"][
"name"], $full_path);
502 $DIC[
'ilLog']->write(__METHOD__ .
": full path " . $full_path);
503 if (strcmp($_FILES[
"xmldoc"][
"type"],
"text/xml") == 0) {
504 $qti_file = $full_path;
511 $subdir = basename($file[
"basename"],
"." . $file[
"extension"]);
518 include_once
"./Services/QTI/classes/class.ilQTIParser.php";
520 $result = $qtiParser->startParsing();
521 $founditems = &$qtiParser->getFoundItems();
522 if (count($founditems) == 0) {
529 if (!$questions_only) {
530 $this->ctrl->redirect($this,
'create');
537 foreach ($founditems as $item) {
538 if (strlen($item[
"type"])) {
545 if ($complete == 0) {
550 if (!$questions_only) {
551 $this->ctrl->redirect($this,
'create');
556 $_SESSION[
"qpl_import_xml_file"] = $xml_file;
557 $_SESSION[
"qpl_import_qti_file"] = $qti_file;
558 $_SESSION[
"qpl_import_subdir"] = $subdir;
560 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.qpl_import_verification.html",
"Modules/TestQuestionPool");
562 require_once
'Modules/TestQuestionPool/classes/tables/class.ilQuestionPoolImportVerificationTableGUI.php';
566 foreach ($founditems as $item) {
568 'title' => $item[
'title'],
569 'ident' => $item[
'ident'],
572 include_once
"./Services/QTI/classes/class.ilQTIItem.php";
573 switch ($item[
"type"]) {
575 $type = $this->lng->txt(
"assClozeTest");
578 $type = $this->lng->txt(
"assImagemapQuestion");
581 $type = $this->lng->txt(
"assJavaApplet");
584 $type = $this->lng->txt(
"assMatchingQuestion");
587 $type = $this->lng->txt(
"assMultipleChoice");
590 $type = $this->lng->txt(
"assKprimChoice");
593 $type = $this->lng->txt(
"assLongMenu");
596 $type = $this->lng->txt(
"assSingleChoice");
599 $type = $this->lng->txt(
"assOrderingQuestion");
602 $type = $this->lng->txt(
"assTextQuestion");
605 $type = $this->lng->txt(
"assNumeric");
608 $type = $this->lng->txt(
"assTextSubset");
611 $type = $this->lng->txt($item[
"type"]);
615 if (strcmp(
$type,
"-" . $item[
"type"] .
"-") == 0) {
617 $ilPluginAdmin =
$DIC[
'ilPluginAdmin'];
618 $pl_names = $ilPluginAdmin->getActivePluginsForSlot(
IL_COMP_MODULE,
"TestQuestionPool",
"qst");
619 foreach ($pl_names as $pl_name) {
621 if (strcmp($pl->getQuestionType(), $item[
"type"]) == 0) {
622 $type = $pl->getQuestionTypeTranslation();
633 $this->tpl->setCurrentBlock(
"import_qpl");
634 if (is_file($xml_file)) {
636 $fh = @fopen($xml_file,
"r") or die(
"");
637 $xml = @fread($fh, filesize($xml_file));
639 if (preg_match(
"/<ContentObject.*?MetaData.*?General.*?Title[^>]*?>([^<]*?)</",
$xml, $matches)) {
640 $this->tpl->setVariable(
"VALUE_NEW_QUESTIONPOOL", $matches[1]);
643 $this->tpl->setVariable(
"TEXT_CREATE_NEW_QUESTIONPOOL", $this->lng->txt(
"qpl_import_create_new_qpl"));
644 $this->tpl->parseCurrentBlock();
646 $this->tpl->setCurrentBlock(
"adm_content");
647 $this->tpl->setVariable(
"FOUND_QUESTIONS_INTRODUCTION", $this->lng->txt(
"qpl_import_verify_found_questions"));
648 if ($questions_only) {
649 $this->tpl->setVariable(
"VERIFICATION_HEADING", $this->lng->txt(
"import_questions_into_qpl"));
650 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
652 $this->tpl->setVariable(
"VERIFICATION_HEADING", $this->lng->txt(
"import_qpl"));
654 $this->ctrl->setParameter($this,
"new_type", $this->type);
655 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
658 $value_questions_only = 0;
659 if ($questions_only) {
660 $value_questions_only = 1;
662 $this->tpl->setVariable(
"VALUE_QUESTIONS_ONLY", $value_questions_only);
663 $this->tpl->setVariable(
"VERIFICATION_TABLE",
$table->getHtml());
664 $this->tpl->setVariable(
"VERIFICATION_FORM_NAME",
$table->getFormName());
666 $this->tpl->parseCurrentBlock();
676 if (
$_POST[
"questions_only"] == 1) {
679 include_once(
"./Modules/TestQuestionPool/classes/class.ilObjQuestionPool.php");
683 $newObj->setType(
$_GET[
"new_type"]);
685 $newObj->setTitle(
"dummy");
687 $newObj->setDescription(
"questionpool import");
689 $newObj->create(
true);
691 $newObj->createReference();
693 $newObj->putInTree(
$_GET[
"ref_id"]);
695 $newObj->setPermissions(
$_GET[
"ref_id"]);
698 if (is_file(
$_SESSION[
"qpl_import_dir"] .
'/' .
$_SESSION[
"qpl_import_subdir"] .
"/manifest.xml")) {
701 $fileName =
$_SESSION[
"qpl_import_subdir"] .
'.zip';
702 $fullPath =
$_SESSION[
"qpl_import_dir"] .
'/' . $fileName;
704 include_once(
"./Services/Export/classes/class.ilImport.php");
706 $map = $imp->getMapping();
707 $map->addMapping(
"Modules/TestQuestionPool",
"qpl",
"new_id", $newObj->getId());
708 $imp->importObject($newObj, $fullPath, $fileName,
"qpl",
"Modules/TestQuestionPool",
true);
711 include_once
"./Services/QTI/classes/class.ilQTIParser.php";
713 $result = $qtiParser->startParsing();
716 if (strlen(
$_SESSION[
"qpl_import_xml_file"])) {
717 include_once(
"./Modules/LearningModule/classes/class.ilContObjParser.php");
719 $contParser->setQuestionMapping($qtiParser->getImportMapping());
720 $contParser->startParsing();
723 $newObj->fromXML(
$_SESSION[
"qpl_import_xml_file"]);
727 if (isset(
$_POST[
"qpl_new"]) && strlen(
$_POST[
"qpl_new"])) {
728 $newObj->setTitle(
$_POST[
"qpl_new"]);
736 include_once
"./Services/Utilities/classes/class.ilUtil.php";
739 if (
$_POST[
"questions_only"] == 1) {
740 $this->ctrl->redirect($this,
"questions");
742 ilUtil::sendSuccess($this->lng->txt(
"object_imported"),
true);
744 "&baseClass=ilObjQuestionPoolGUI");
750 if (
$_POST[
"questions_only"] == 1) {
751 $this->ctrl->redirect($this,
"questions");
753 $this->ctrl->redirect($this,
"cancel");
762 $upload_valid =
true;
764 if (
$form->checkInput()) {
766 $form->setValuesByPost();
770 $form->setValuesByPost();
784 $this->tpl->setContent(
$form->getHtml());
792 require_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
794 $form->setTitle($this->lng->txt(
'import_question'));
795 $form->setFormAction($this->ctrl->getFormAction($this,
'upload'));
797 $file =
new ilFileInputGUI($this->lng->txt(
'select_file'),
'xmldoc');
798 $file->setRequired(
true);
799 $form->addItem($file);
801 $form->addCommandButton(
'upload', $this->lng->txt(
'upload'));
802 $form->addCommandButton(
'questions', $this->lng->txt(
'cancel'));
813 $addContEditMode =
$_POST[
'add_quest_cont_edit_mode'];
818 include_once
"./Modules/TestQuestionPool/classes/class.assQuestionGUI.php";
820 $this->
object->addQuestionChangeListeners($q_gui->object);
821 $q_gui->object->setObjId($this->object->getId());
822 $q_gui->object->setAdditionalContentEditingMode($addContEditMode);
823 $q_gui->object->createNewQuestion();
824 $this->ctrl->setParameterByClass(get_class($q_gui),
"q_id", $q_gui->object->getId());
825 $this->ctrl->setParameterByClass(get_class($q_gui),
"sel_question_types",
$_POST[
"sel_question_types"]);
826 $this->ctrl->redirectByClass(get_class($q_gui),
"editQuestion");
834 if (!$_REQUEST[
'q_id']) {
835 require_once
'Modules/Test/classes/class.ilObjAssessmentFolder.php';
837 $addContEditMode = $_REQUEST[
'add_quest_cont_edit_mode'];
842 include_once
"./Modules/TestQuestionPool/classes/class.assQuestionGUI.php";
844 $q_gui->object->setObjId($this->object->getId());
845 $q_gui->object->setAdditionalContentEditingMode($addContEditMode);
846 $q_gui->object->createNewQuestion();
848 $class = get_class($q_gui);
849 $qId = $q_gui->object->getId();
851 $class =
$_GET[
"sel_question_types"] .
'gui';
852 $qId = $_REQUEST[
'q_id'];
855 $this->ctrl->setParameterByClass($class,
"q_id", $qId);
856 $this->ctrl->setParameterByClass($class,
"sel_question_types", $_REQUEST[
"sel_question_types"]);
857 $this->ctrl->setParameterByClass($class,
"prev_qid", $_REQUEST[
"prev_qid"]);
859 $this->ctrl->redirectByClass($class,
"editQuestion");
869 ilUtil::sendSuccess($this->lng->txt(
"object_added"),
true);
872 "&baseClass=ilObjQuestionPoolGUI");
879 $this->editQuestionForm(
$type);
888 $rbacsystem =
$DIC[
'rbacsystem'];
890 $questionIdsToDelete = isset(
$_POST[
'q_id']) ? (array)
$_POST[
'q_id'] : array();
891 if (0 === count($questionIdsToDelete) && isset(
$_GET[
'q_id'])) {
892 $questionIdsToDelete = array(
$_GET[
'q_id']);
895 $questionIdsToDelete = array_filter(array_map(
'intval', $questionIdsToDelete));
896 if (0 === count($questionIdsToDelete)) {
898 $this->ctrl->redirect($this,
"questions");
902 $deleteable_questions = &$this->
object->getDeleteableQuestionDetails($questionIdsToDelete);
903 include_once
"./Modules/TestQuestionPool/classes/tables/class.ilQuestionBrowserTableGUI.php";
904 $table_gui =
new ilQuestionBrowserTableGUI($this,
'questions', (($rbacsystem->checkAccess(
'write', (
int)
$_GET[
'ref_id']) ?
true :
false)),
true);
905 $table_gui->setShowRowsSelector(
false);
906 $table_gui->setLimit(PHP_INT_MAX);
907 $table_gui->setEditable($rbacsystem->checkAccess(
'write', (
int)
$_GET[
'ref_id']));
908 $table_gui->setData($deleteable_questions);
909 $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
920 $this->
object->deleteQuestion($value);
921 $this->
object->cleanupClipboard($value);
923 if (count(
$_POST[
"q_id"])) {
924 ilUtil::sendSuccess($this->lng->txt(
"qpl_questions_deleted"),
true);
927 $this->ctrl->setParameter($this,
'q_id',
'');
929 $this->ctrl->redirect($this,
"questions");
937 $this->ctrl->redirect($this,
"questions");
946 if (count(
$_POST[
"q_id"]) > 0) {
947 include_once(
"./Modules/TestQuestionPool/classes/class.ilQuestionpoolExport.php");
949 $export_file = $qpl_exp->buildExportFile();
952 include_once
"./Services/Utilities/classes/class.ilUtil.php";
958 $this->ctrl->redirect($this,
"questions");
964 $enableComments =
$DIC->rbac()->system()->checkAccess(
'write',
$_GET[
'ref_id']);
966 require_once
'Services/Taxonomy/classes/class.ilObjTaxonomy.php';
969 include_once
"./Modules/TestQuestionPool/classes/tables/class.ilQuestionBrowserTableGUI.php";
971 $table_gui->resetOffset();
972 $table_gui->writeFilterToSession();
978 require_once
'Services/Taxonomy/classes/class.ilObjTaxonomy.php';
981 include_once
"./Modules/TestQuestionPool/classes/tables/class.ilQuestionBrowserTableGUI.php";
983 $table_gui->resetOffset();
984 $table_gui->resetFilter();
990 require_once
'Modules/TestQuestionPool/classes/questions/class.ilAssQuestionSkillAssignmentImportFails.php';
992 $qsaImportFails->deleteRegisteredImportFails();
994 $this->ctrl->redirect($this,
'infoScreen');
1003 $rbacsystem =
$DIC[
'rbacsystem'];
1008 $ilPluginAdmin =
$DIC[
'ilPluginAdmin'];
1010 if (get_class($this->
object) ==
"ilObjTest") {
1011 if (
$_GET[
"calling_test"] > 0) {
1013 $q_id =
$_GET[
"q_id"];
1015 if ($_REQUEST[
'test_express_mode']) {
1017 ilUtil::redirect(
"ilias.php?ref_id=" .
$ref_id .
"&q_id=" . $q_id .
"&test_express_mode=1&cmd=showPage&cmdClass=iltestexpresspageobjectgui&baseClass=ilObjTestGUI");
1019 ilUtil::redirect(
"ilias.php?ref_id=" .
$ref_id .
"&test_express_mode=1&cmd=showPage&cmdClass=iltestexpresspageobjectgui&baseClass=ilObjTestGUI");
1025 } elseif (isset(
$_GET[
'calling_consumer']) && (
int)
$_GET[
'calling_consumer']) {
1031 require_once
'Services/Link/classes/class.ilLink.php';
1035 $this->
object->purgeQuestions();
1039 require_once
'Modules/TestQuestionPool/classes/questions/class.ilAssQuestionSkillAssignmentImportFails.php';
1041 if ($qsaImportFails->failedImportsRegistered()) {
1042 require_once
'Services/UIComponent/Button/classes/class.ilLinkButton.php';
1044 $button->setUrl($this->ctrl->getLinkTarget($this,
'renoveImportFails'));
1045 $button->setCaption(
'ass_skl_import_fails_remove_btn');
1047 ilUtil::sendFailure($qsaImportFails->getFailedImportsMessage($this->lng) .
'<br />' . $button->render());
1050 require_once
'Services/Taxonomy/classes/class.ilObjTaxonomy.php';
1054 $table_gui->setPreventDoubleSubmission(
false);
1056 if ($rbacsystem->checkAccess(
'write',
$_GET[
'ref_id'])) {
1059 require_once
'Services/UIComponent/Button/classes/class.ilLinkButton.php';
1061 $btn->setCaption(
'ass_create_question');
1062 $btn->setUrl($this->ctrl->getLinkTarget($this,
'createQuestionForm'));
1063 $btn->setPrimary(
true);
1068 $btnImport->setCaption(
'import');
1069 $btnImport->setUrl($this->ctrl->getLinkTarget($this,
'importQuestions'));
1070 $toolbar->addButtonInstance($btnImport);
1072 if (array_key_exists(
"qpl_clipboard",
$_SESSION) && count(
$_SESSION[
'qpl_clipboard'])) {
1074 $btnPaste->setCaption(
'paste');
1075 $btnPaste->setUrl($this->ctrl->getLinkTarget($this,
'paste'));
1076 $toolbar->addButtonInstance($btnPaste);
1079 $this->tpl->setContent(
1080 $this->ctrl->getHTML(
$toolbar) . $this->ctrl->getHTML($table_gui)
1083 $this->tpl->setContent($this->ctrl->getHTML($table_gui));
1086 if ($this->object->getShowTaxonomies()) {
1087 $this->lng->loadLanguageModule(
'tax');
1089 require_once
'Services/Taxonomy/classes/class.ilTaxonomyExplorerGUI.php';
1091 foreach ($taxIds as $taxId) {
1092 if ($taxId != $this->object->getNavTaxonomyId()) {
1100 'ilobjquestionpoolgui',
1104 if (!$taxExp->handleCommand()) {
1105 $this->tpl->setLeftContent($taxExp->getHTML() .
" ");
1118 $qId = (int)
$_GET[
'q_id'];
1120 if ($this->object->checkQuestionParent($qId)) {
1130 $ilHelp =
$DIC[
'ilHelp'];
1132 $ilHelp->setScreenId(
'assQuestions');
1135 $ilHelp->setSubScreenId(
'createQuestion_editMode');
1137 $ilHelp->setSubScreenId(
'createQuestion');
1142 $this->tpl->setContent($this->ctrl->getHTML(
$form));
1152 require_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
1154 $form->setTitle($this->lng->txt(
'ass_create_question'));
1155 $form->setFormAction($this->ctrl->getFormAction($this));
1160 foreach ($this->object->getQuestionTypes(
false,
true,
false) as $translation =>
$data) {
1164 require_once(
"Services/Form/classes/class.ilSelectInputGUI.php");
1174 $ri =
new ilRadioGroupInputGUI($this->lng->txt(
"tst_add_quest_cont_edit_mode"),
"add_quest_cont_edit_mode");
1177 $this->lng->txt(
'tst_add_quest_cont_edit_mode_default'),
1182 $this->lng->txt(
'tst_add_quest_cont_edit_mode_page_object'),
1188 $form->addItem($ri,
true);
1192 $form->addItem($hi,
true);
1197 $form->addCommandButton(
'createQuestion', $this->lng->txt(
'create'));
1198 $form->addCommandButton(
'questions', $this->lng->txt(
'cancel'));
1206 public function printObject()
1212 $ilToolbar =
$DIC[
'ilToolbar'];
1214 $ilToolbar->setFormAction($this->ctrl->getFormAction($this,
'print'));
1215 require_once
'Services/Form/classes/class.ilSelectInputGUI.php';
1217 $mode->setOptions(array(
1218 'overview' => $this->lng->txt(
'overview'),
1219 'detailed' => $this->lng->txt(
'detailed_output_solutions'),
1220 'detailed_printview' => $this->lng->txt(
'detailed_output_printview')
1224 $ilToolbar->setFormName(
'printviewOptions');
1225 $ilToolbar->addInputItem($mode,
true);
1226 $ilToolbar->addFormButton($this->lng->txt(
'submit'),
'print');
1228 include_once
"./Modules/TestQuestionPool/classes/tables/class.ilQuestionPoolPrintViewTableGUI.php";
1230 $data = $this->
object->getPrintviewQuestions();
1233 $totalPoints +=
$d[
'points'];
1235 $table_gui->setTotalPoints($totalPoints);
1236 $table_gui->initColumns();
1237 $table_gui->setData(
$data);
1238 $this->tpl->setContent($table_gui->getHTML());
1244 $this->
update = $this->
object->update();
1245 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"),
true);
1253 if (array_key_exists(
"qpl_clipboard",
$_SESSION)) {
1254 if ($this->object->pasteFromClipboard()) {
1255 ilUtil::sendSuccess($this->lng->txt(
"qpl_paste_success"),
true);
1262 $this->ctrl->redirect($this,
"questions");
1270 if (isset(
$_POST[
"q_id"]) && is_array(
$_POST[
"q_id"]) && count(
$_POST[
"q_id"]) > 0) {
1272 $this->
object->copyToClipboard($value);
1275 } elseif (isset(
$_GET[
'q_id']) &&
$_GET[
'q_id'] > 0) {
1276 $this->
object->copyToClipboard((
int)
$_GET[
'q_id']);
1281 $this->ctrl->redirect($this,
"questions");
1289 if (isset(
$_POST[
"q_id"]) && is_array(
$_POST[
"q_id"]) && count(
$_POST[
"q_id"]) > 0) {
1291 $this->
object->moveToClipboard($value);
1294 } elseif (isset(
$_GET[
'q_id']) &&
$_GET[
'q_id'] > 0) {
1295 $this->
object->moveToClipboard((
int)
$_GET[
'q_id']);
1300 $this->ctrl->redirect($this,
"questions");
1306 $rbacsystem =
$DIC[
'rbacsystem'];
1307 if ($rbacsystem->checkAccess(
"write",
$_GET[
'ref_id'])) {
1308 include_once(
"./Modules/TestQuestionPool/classes/class.ilQuestionpoolExport.php");
1309 $question_ids = &$this->
object->getAllQuestionIds();
1311 $qpl_exp->buildExportFile();
1312 $this->ctrl->redirectByClass(
"ilquestionpoolexportgui",
"");
1321 include_once
"./Modules/TestQuestionPool/classes/class.assQuestionGUI.php";
1323 $this->ctrl->redirectByClass(get_class($q_gui),
"editQuestion");
1328 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
1330 $form->setTarget(
"_top");
1331 $form->setFormAction($this->ctrl->getFormAction($this));
1332 $form->setTitle($this->lng->txt(
"import_qpl"));
1334 include_once(
"./Services/Form/classes/class.ilFileInputGUI.php");
1335 $fi =
new ilFileInputGUI($this->lng->txt(
"import_file"),
"xmldoc");
1336 $fi->setSuffixes(array(
"zip"));
1337 $fi->setRequired(
true);
1338 $form->addItem($fi);
1340 $form->addCommandButton(
"importFile", $this->lng->txt(
"import"));
1341 $form->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
1352 if (
$form->checkInput()) {
1357 $this->tpl->setContent(
$form->getHTML());
1363 $ilLocator =
$DIC[
'ilLocator'];
1364 switch ($this->ctrl->getCmd()) {
1370 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
""),
"",
$_GET[
"ref_id"]);
1373 if (
$_GET[
"q_id"] > 0) {
1374 include_once
"./Modules/TestQuestionPool/classes/class.assQuestionGUI.php";
1377 $q_gui->object->setObjId($this->object->getId());
1378 $title = $q_gui->object->getTitle();
1382 $ilLocator->addItem(
$title, $this->ctrl->getLinkTargetByClass(get_class($q_gui),
"editQuestion"));
1385 $this->ctrl->setParameter($this,
'q_id',
'');
1386 $this->ctrl->redirect($this);
1396 parent::setTitleAndDescription();
1397 if (
$_GET[
"q_id"] > 0) {
1398 include_once
"./Modules/TestQuestionPool/classes/class.assQuestionGUI.php";
1401 $q_gui->object->setObjId($this->object->getId());
1402 $title = $q_gui->object->getTitle();
1406 $this->tpl->setTitle(
$title);
1407 $this->tpl->setDescription($q_gui->object->getComment());
1411 $this->ctrl->setParameter($this,
'q_id',
'');
1412 $this->ctrl->redirect($this);
1415 $this->tpl->setTitle($this->object->getTitle());
1416 $this->tpl->setDescription($this->object->getLongDescription());
1429 $ilAccess =
$DIC[
'ilAccess'];
1430 $ilHelp =
$DIC[
'ilHelp'];
1432 $currentUserHasWriteAccess = $ilAccess->checkAccess(
"write",
"", $this->object->getRefId());
1434 $ilHelp->setScreenIdComponent(
"qpl");
1436 $next_class = strtolower($this->ctrl->getNextClass());
1437 switch ($next_class) {
1439 case "ilpermissiongui":
1440 case "ilobjectmetadatagui":
1441 case "ilquestionpoolexportgui":
1442 case "ilquestionpoolskilladministrationgui":
1445 case 'ilobjtaxonomygui':
1446 case 'ilobjquestionpoolsettingsgeneralgui':
1448 if ($currentUserHasWriteAccess) {
1459 $force_active =
false;
1460 $commands =
$_POST[
"cmd"];
1461 if (is_array($commands)) {
1462 foreach ($commands as
$key => $value) {
1463 if (preg_match(
"/^delete_.*/",
$key, $matches) ||
1464 preg_match(
"/^addSelectGap_.*/",
$key, $matches) ||
1465 preg_match(
"/^addTextGap_.*/",
$key, $matches) ||
1466 preg_match(
"/^deleteImage_.*/",
$key, $matches) ||
1467 preg_match(
"/^upload_.*/",
$key, $matches) ||
1468 preg_match(
"/^addSuggestedSolution_.*/",
$key, $matches)
1470 $force_active =
true;
1474 if (array_key_exists(
"imagemap_x",
$_POST)) {
1475 $force_active =
true;
1477 if (!$force_active) {
1478 $force_active = ((strtolower($this->ctrl->getCmdClass()) == strtolower(get_class($this)) || strlen($this->ctrl->getCmdClass()) == 0) &&
1479 $this->ctrl->getCmd() ==
"")
1483 $this->tabs_gui->addTarget(
1485 $this->ctrl->getLinkTarget($this,
"questions"),
1486 array(
"questions",
"filter",
"resetFilter",
"createQuestion",
1487 "importQuestions",
"deleteQuestions",
"filterQuestionBrowser",
1488 "view",
"preview",
"editQuestion",
"exec_pg",
1489 "addItem",
"upload",
"save",
"cancel",
"addSuggestedSolution",
1490 "cancelExplorer",
"linkChilds",
"removeSuggestedSolution",
1491 "add",
"addYesNo",
"addTrueFalse",
"createGaps",
"saveEdit",
1492 "setMediaMode",
"uploadingImage",
"uploadingImagemap",
"addArea",
1493 "deletearea",
"saveShape",
"back",
"addPair",
"uploadingJavaapplet",
1494 "addParameter",
"assessment",
"addGIT",
"addST",
"addPG",
"delete",
1495 "toggleGraphicalAnswers",
"deleteAnswer",
"deleteImage",
"removeJavaapplet"),
1501 if ($ilAccess->checkAccess(
"read",
"", $this->ref_id) || $ilAccess->checkAccess(
"visible",
"", $this->ref_id)) {
1502 $this->tabs_gui->addTarget(
1504 $this->ctrl->getLinkTarget($this,
"infoScreen"),
1505 array(
"infoScreen",
"showSummary")
1509 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
'ref_id'])) {
1511 $this->tabs_gui->addTarget(
1513 $this->ctrl->getLinkTargetByClass(
'ilObjQuestionPoolSettingsGeneralGUI'),
1515 array(
'ilObjQuestionPoolSettingsGeneralGUI',
'ilObjTaxonomyGUI')
1520 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionSkillAssignmentsGUI.php';
1522 $link = $this->ctrl->getLinkTargetByClass(
1523 array(
'ilQuestionPoolSkillAdministrationGUI',
'ilAssQuestionSkillAssignmentsGUI'),
1527 $this->tabs_gui->addTarget(
'qpl_tab_competences', $link, array(), array());
1532 $this->tabs_gui->addTarget(
1534 $this->ctrl->getLinkTarget($this,
'print'),
1540 if ($ilAccess->checkAccess(
"write",
"", $this->object->getRefId())) {
1542 include_once
"Services/Object/classes/class.ilObjectMetaDataGUI.php";
1544 $mdtab = $mdgui->getTab();
1546 $this->tabs_gui->addTarget(
1560 if ($currentUserHasWriteAccess) {
1561 $this->tabs_gui->addTarget(
1563 $this->ctrl->getLinkTargetByClass(
"ilquestionpoolexportgui",
""),
1565 "ilquestionpoolexportgui"
1569 if ($ilAccess->checkAccess(
"edit_permission",
"", $this->object->getRefId())) {
1570 $this->tabs_gui->addTarget(
1572 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm"),
1573 array(
"perm",
"info",
"owner"),
1585 if (!$this->object->isSkillServiceEnabled()) {
1598 $tabs->addSubTabTarget(
1599 'qpl_settings_subtab_general',
1600 $this->ctrl->getLinkTargetByClass(
'ilObjQuestionPoolSettingsGeneralGUI'),
1602 'ilObjQuestionPoolSettingsGeneralGUI'
1605 $tabs->addSubTabTarget(
1606 'qpl_settings_subtab_taxonomies',
1607 $this->ctrl->getLinkTargetByClass(
'ilObjTaxonomyGUI',
'editAOTaxonomySettings'),
1620 $this->ctrl->setCmd(
"showSummary");
1621 $this->ctrl->setCmdClass(
"ilinfoscreengui");
1632 $ilAccess =
$DIC[
'ilAccess'];
1634 if (!$ilAccess->checkAccess(
"visible",
"", $this->ref_id)) {
1635 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"));
1638 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
1640 $info->enablePrivateNotes();
1643 $info->addMetaDataSections($this->object->getId(), 0, $this->object->getType());
1645 $this->ctrl->forwardCommand(
$info);
1659 $ilAccess =
$DIC[
'ilAccess'];
1663 if ($ilAccess->checkAccess(
"write",
"", $a_target) || $ilAccess->checkAccess(
'read',
'', $a_target)) {
1664 $_GET[
'cmdClass'] =
'ilObjQuestionPoolGUI';
1665 $_GET[
'cmd'] =
'questions';
1666 $_GET[
'baseClass'] =
'ilRepositoryGUI';
1667 $_GET[
"ref_id"] = $a_target;
1668 include_once(
"ilias.php");
1670 } elseif ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID)) {
1672 $lng->txt(
"msg_no_perm_read_item"),
1691 $rbacsystem =
$DIC[
'rbacsystem'];
1694 $ilPluginAdmin =
$DIC[
'ilPluginAdmin'];
1696 $writeAccess = (bool) $rbacsystem->checkAccess(
'write',
$_GET[
'ref_id']);
1697 $enableCommenting = $writeAccess;
1699 include_once
"./Modules/TestQuestionPool/classes/tables/class.ilQuestionBrowserTableGUI.php";
1701 $table_gui->setEditable($writeAccess);
1703 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionList.php';
1705 $questionList->setParentObjId($this->object->getId());
1707 foreach ($table_gui->getFilterItems() as $item) {
1708 if (substr($item->getPostVar(), 0, strlen(
'tax_')) ==
'tax_') {
1709 $v = $item->getValue();
1711 if (is_array($v) && count($v) && !(
int) $v[0]) {
1715 $taxId = substr($item->getPostVar(), strlen(
'tax_'));
1717 $questionList->addTaxonomyFilter(
1720 $this->object->getId(),
1721 $this->object->getType()
1723 } elseif ($item->getValue() !==
false) {
1724 $questionList->addFieldFilter($item->getPostVar(), $item->getValue());
1728 if ($this->object->isNavTaxonomyActive() && (
int)
$_GET[
'tax_node']) {
1729 require_once
'Services/Taxonomy/classes/class.ilTaxonomyTree.php';
1730 $taxTree =
new ilTaxonomyTree($this->object->getNavTaxonomyId());
1731 $rootNodeId = $taxTree->readRootId();
1733 if ((
int)
$_GET[
'tax_node'] != $rootNodeId) {
1734 $questionList->addTaxonomyFilter(
1735 $this->object->getNavTaxonomyId(),
1736 array((
int)
$_GET[
'tax_node']),
1737 $this->object->getId(),
1738 $this->object->getType()
1743 $questionList->load();
1744 $data = $questionList->getQuestionDataArray();
1746 $table_gui->setQuestionData(
$data);
An exception for terminatinating execution or to throw for unit testing.
static _getQuestionGUI($question_type, $question_id=-1)
Creates a question gui representation and returns the alias to the question gui note: please do not u...
const EDIT_CONTEXT_AUTHORING
const RENDER_PURPOSE_PREVIEW
Abstract basic class which is to be extended by the concrete assessment question type classes.
const ADDITIONAL_CONTENT_EDITING_MODE_DEFAULT
constant for additional content editing mode "default"
static _getQuestionTypeName($type_tag)
Return the translation for a given question type tag.
const ADDITIONAL_CONTENT_EDITING_MODE_PAGE_OBJECT
constant for additional content editing mode "pageobject"
const CMD_SHOW_SKILL_QUEST_ASSIGNS
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
Class ilLocalUnitConfigurationGUI.
static isAdditionalQuestionContentEditingModePageObjectEnabled()
returns the fact wether content editing with ilias page editor is enabled for questions or not
Class ilObjQuestionPoolGUI.
addSettingsSubTabs(ilTabsGUI $tabs)
renoveImportFailsObject()
importFileObject($parent_id=null, $a_catch_errors=true)
form for new questionpool object import
filterQuestionBrowserObject()
uploadQplObject($questions_only=false)
imports question(s) into the questionpool
confirmDeleteQuestionsObject()
delete questions
afterSave(ilObject $a_new_object)
save object @access public
updateObject()
updates object entry in object_data
fetchAuthoringQuestionIdParamater()
download_paragraphObject()
download source code paragraph
deleteQuestionsObject()
delete questions confirmation screen
& createQuestionForTestObject()
create new question
filterObject()
set question list filter
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually,...
questionsObject()
list questions of question pool
getTabs()
adds tabs to tab gui object
addLocatorItems()
should be overwritten to add object specific items (repository items are preloaded)
importVerifiedFileObject()
imports question(s) into the questionpool (after verification)
uploadObject()
imports question(s) into the questionpool
moveObject()
mark one or more question objects for moving
& createQuestionObject()
create new question
buildCreateQuestionForm()
pasteObject()
paste questios from the clipboard into the question pool
resetQuestionBrowserObject()
initImportForm($a_new_type)
Init object import form.
cancelDeleteQuestionsObject()
Cancel question deletion.
& editQuestionForTestObject()
edit question
setTitleAndDescription()
called by prepare output
exportQuestionObject()
export question
infoScreenForward()
show information screen
executeCommand()
execute command
static _goto($a_target)
Redirect script to call a test with the question pool reference id.
buildQuestionBrowserTableGUI($taxIds)
__construct()
Constructor @access public.
createQuestionFormObject()
copyObject()
copy one or more question objects to the clipboard
downloadFileObject()
download file
exportObject()
Gateway for exports initiated from workspace, as there is a generic forward to {objTypeMainGUI}::expo...
resetFilterObject()
resets filter
importQuestionsObject(ilPropertyFormGUI $form=null)
display the import form to import questions into the questionpool
fullscreenObject()
show fullscreen view
static isSkillManagementGloballyActivated()
static _createImportDirectory()
creates data directory for import files (data_dir/qpl_data/qpl_<id>/import, depending on data directo...
static _getImportDirectory()
get import directory of lm
static _setImportDirectory($a_import_dir=null)
set import directory
static getSyntaxStylePath()
get syntax style path
static getContentStylePath($a_style_id, $add_random=true)
get content style path
static getUsageOfObject($a_obj_id, $a_include_titles=false)
Get usage of object.
static _setImportDirectory($a_import_dir=null)
set import directory
static _getIcon($a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
GUI class for the workflow of copying objects.
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
Class ilObjectGUI Basic methods of all Output classes.
prepareOutput($a_show_subobjects=true)
prepare output
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
getCreationMode()
get creation mode
Class ilObject Basic functions for all objects.
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
getRefId()
get reference id @access public
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static getPluginObject(string $a_ctype, string $a_cname, string $a_slot_id, string $a_pname)
Export User Interface Class.
Class ilQuestionPoolImportVerificationTableGUI.
Export class for questionpools.
This class represents an option in a radio group.
Taxonomy explorer GUI class.
Class ilUnitConfigurationRepository.
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
static redirect($a_script)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
static unzip($a_file, $overwrite=false, $a_flat=false)
unzip file
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
for( $i=6;$i< 13;$i++) for($i=1; $i< 13; $i++) $d
if(!empty($this->data['faventry'])) $tabs
const CLOZE_TEST_IDENTIFIER
Question identifier constants.
const IMAGEMAP_QUESTION_IDENTIFIER
const SINGLE_CHOICE_QUESTION_IDENTIFIER
const TEXTSUBSET_QUESTION_IDENTIFIER
const NUMERIC_QUESTION_IDENTIFIER
const JAVAAPPLET_QUESTION_IDENTIFIER
const TEXT_QUESTION_IDENTIFIER
const LONG_MENU_QUESTION_IDENTIFIER
const KPRIM_CHOICE_QUESTION_IDENTIFIER
const MATCHING_QUESTION_IDENTIFIER
const MULTIPLE_CHOICE_QUESTION_IDENTIFIER
const ORDERING_QUESTION_IDENTIFIER
update($pash, $contents, Config $config)
if(empty($password)) $table
if(isset($_POST['submit'])) $form