private function performSaveForm(ilPropertyFormGUI $form)
 {
     include_once 'Services/MetaData/classes/class.ilMD.php';
     $md_obj =& new ilMD($this->testOBJ->getId(), 0, "tst");
     $md_section = $md_obj->getGeneral();
     // title
     $md_section->setTitle(ilUtil::stripSlashes($form->getItemByPostVar('title')->getValue()));
     $md_section->update();
     // Description
     $md_desc_ids = $md_section->getDescriptionIds();
     if ($md_desc_ids) {
         $md_desc = $md_section->getDescription(array_pop($md_desc_ids));
         $md_desc->setDescription(ilUtil::stripSlashes($form->getItemByPostVar('description')->getValue()));
         $md_desc->update();
     } else {
         $md_desc = $md_section->addDescription();
         $md_desc->setDescription(ilUtil::stripSlashes($form->getItemByPostVar('description')->getValue()));
         $md_desc->save();
     }
     $this->testOBJ->setTitle(ilUtil::stripSlashes($form->getItemByPostVar('title')->getValue()));
     $this->testOBJ->setDescription(ilUtil::stripSlashes($form->getItemByPostVar('description')->getValue()));
     $this->testOBJ->update();
     // pool usage setting
     if ($form->getItemByPostVar('use_pool') instanceof ilFormPropertyGUI) {
         $this->testOBJ->setPoolUsage($form->getItemByPostVar('use_pool')->getChecked());
     }
     // Archiving
     $this->testOBJ->setEnableArchiving($form->getItemByPostVar('enable_archiving')->getChecked());
     // Examview
     $this->testOBJ->setEnableExamview($form->getItemByPostVar('enable_examview')->getChecked());
     $this->testOBJ->setShowExamviewHtml($form->getItemByPostVar('show_examview_html')->getChecked());
     $this->testOBJ->setShowExamviewPdf($form->getItemByPostVar('show_examview_pdf')->getChecked());
     // online status
     $this->testOBJ->setOnline($form->getItemByPostVar('online')->getChecked());
     // activation
     if ($form->getItemByPostVar('activation_type')->getValue() == ilObjectActivation::TIMINGS_ACTIVATION) {
         $this->testOBJ->setActivationLimited(true);
         $this->testOBJ->setActivationVisibility($form->getItemByPostVar('activation_visibility')->getChecked());
         $period = $form->getItemByPostVar("access_period");
         $this->testOBJ->setActivationStartingTime($period->getStart()->get(IL_CAL_UNIX));
         $this->testOBJ->setActivationEndingTime($period->getEnd()->get(IL_CAL_UNIX));
     } else {
         $this->testOBJ->setActivationLimited(false);
     }
     include_once "./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
     $this->testOBJ->setIntroduction($form->getItemByPostVar('introduction')->getValue(), false, ilObjAdvancedEditing::_getUsedHTMLTagsAsString("assessment"));
     $this->testOBJ->setShowInfo($form->getItemByPostVar('showinfo')->getChecked());
     $this->testOBJ->setFinalStatement($form->getItemByPostVar('finalstatement')->getValue(), false, ilObjAdvancedEditing::_getUsedHTMLTagsAsString("assessment"));
     $this->testOBJ->setShowFinalStatement($form->getItemByPostVar('showfinalstatement')->getChecked());
     if ($form->getItemByPostVar('chb_postpone') instanceof ilFormPropertyGUI) {
         $this->testOBJ->setSequenceSettings($form->getItemByPostVar('chb_postpone')->getChecked());
     }
     $this->testOBJ->setShuffleQuestions($form->getItemByPostVar('chb_shuffle_questions')->getChecked());
     $this->testOBJ->setListOfQuestions($form->getItemByPostVar('list_of_questions')->getChecked());
     $listOfQuestionsOptions = $form->getItemByPostVar('list_of_questions_options')->getValue();
     if (is_array($listOfQuestionsOptions)) {
         $this->testOBJ->setListOfQuestionsStart(in_array('chb_list_of_questions_start', $listOfQuestionsOptions));
         $this->testOBJ->setListOfQuestionsEnd(in_array('chb_list_of_questions_end', $listOfQuestionsOptions));
         $this->testOBJ->setListOfQuestionsDescription(in_array('chb_list_of_questions_with_description', $listOfQuestionsOptions));
     } else {
         $this->testOBJ->setListOfQuestionsStart(0);
         $this->testOBJ->setListOfQuestionsEnd(0);
         $this->testOBJ->setListOfQuestionsDescription(0);
     }
     if ($form->getItemByPostVar('mailnotification') instanceof ilFormPropertyGUI) {
         $this->testOBJ->setMailNotification($form->getItemByPostVar('mailnotification')->getValue());
     }
     if ($form->getItemByPostVar('mailnottype') instanceof ilFormPropertyGUI) {
         $this->testOBJ->setMailNotificationType($form->getItemByPostVar('mailnottype')->getChecked());
     }
     if ($form->getItemByPostVar('chb_show_marker') instanceof ilFormPropertyGUI) {
         $this->testOBJ->setShowMarker($form->getItemByPostVar('chb_show_marker')->getChecked());
     }
     if ($form->getItemByPostVar('chb_show_cancel') instanceof ilFormPropertyGUI) {
         $this->testOBJ->setShowCancel($form->getItemByPostVar('chb_show_cancel')->getChecked());
     }
     if ($form->getItemByPostVar('kiosk') instanceof ilFormPropertyGUI) {
         $this->testOBJ->setKioskMode($form->getItemByPostVar('kiosk')->getChecked());
         $kioskOptions = $form->getItemByPostVar('kiosk_options')->getValue();
         if (is_array($kioskOptions)) {
             $this->testOBJ->setShowKioskModeTitle(in_array('kiosk_title', $kioskOptions));
             $this->testOBJ->setShowKioskModeParticipant(in_array('kiosk_participant', $kioskOptions));
             $this->testOBJ->setExamidInKiosk(in_array('examid_in_kiosk', $_POST["kiosk_options"]));
         }
     }
     // redirect after test
     if ($form->getItemByPostVar('redirection_enabled')->getChecked()) {
         $this->testOBJ->setRedirectionMode($form->getItemByPostVar('redirection_mode')->getValue());
     } else {
         $this->testOBJ->setRedirectionMode(REDIRECT_NONE);
     }
     if (strlen($form->getItemByPostVar('redirection_url')->getValue())) {
         $this->testOBJ->setRedirectionUrl($form->getItemByPostVar('redirection_url')->getValue());
     } else {
         $this->testOBJ->setRedirectionUrl(null);
     }
     if ($form->getItemByPostVar('sign_submission')->getChecked()) {
         $this->testOBJ->setSignSubmission(true);
     } else {
         $this->testOBJ->setSignSubmission(false);
     }
     $this->testOBJ->setEnableProcessingTime($form->getItemByPostVar('chb_processing_time')->getChecked());
     if ($this->testOBJ->getEnableProcessingTime()) {
         $processingTime = $form->getItemByPostVar('processing_time');
         $this->testOBJ->setProcessingTime(sprintf("%02d:%02d:%02d", $processingTime->getHours(), $processingTime->getMinutes(), $processingTime->getSeconds()));
     } else {
         $this->testOBJ->setProcessingTime('');
     }
     $this->testOBJ->setResetProcessingTime($form->getItemByPostVar('chb_reset_processing_time')->getChecked());
     if ($form->getItemByPostVar('chb_starting_time')->getChecked()) {
         $startingTimeSetting = $form->getItemByPostVar('starting_time');
         $this->testOBJ->setStartingTime(ilFormat::dateDB2timestamp($startingTimeSetting->getDate()->get(IL_CAL_DATETIME)));
     } else {
         $this->testOBJ->setStartingTime('');
     }
     if ($form->getItemByPostVar('chb_ending_time')->getChecked()) {
         $endingTimeSetting = $form->getItemByPostVar('ending_time');
         $this->testOBJ->setEndingTime(ilFormat::dateDB2timestamp($endingTimeSetting->getDate()->get(IL_CAL_DATETIME)));
     } else {
         $this->testOBJ->setEndingTime('');
     }
     if ($form->getItemByPostVar('forcejs') instanceof ilFormPropertyGUI) {
         $this->testOBJ->setForceJS($form->getItemByPostVar('forcejs')->getChecked());
     }
     if ($form->getItemByPostVar('title_output') instanceof ilFormPropertyGUI) {
         $this->testOBJ->setTitleOutput($form->getItemByPostVar('title_output')->getValue());
     }
     if ($form->getItemByPostVar('password') instanceof ilFormPropertyGUI) {
         $this->testOBJ->setPassword($form->getItemByPostVar('password')->getValue());
     }
     if ($form->getItemByPostVar('allowedUsers') instanceof ilFormPropertyGUI) {
         $this->testOBJ->setAllowedUsers($form->getItemByPostVar('allowedUsers')->getValue());
     }
     if ($form->getItemByPostVar('allowedUsersTimeGap') instanceof ilFormPropertyGUI) {
         $this->testOBJ->setAllowedUsersTimeGap($form->getItemByPostVar('allowedUsersTimeGap')->getValue());
     }
     // Selector for uicode characters
     global $ilSetting;
     if ($ilSetting->get('char_selector_availability') > 0) {
         require_once 'Services/UIComponent/CharSelector/classes/class.ilCharSelectorGUI.php';
         $char_selector = new ilCharSelectorGUI(ilCharSelectorConfig::CONTEXT_TEST);
         $char_selector->addFormProperties($form);
         $char_selector->getFormValues($form);
         $this->testOBJ->setCharSelectorAvailability($char_selector->getConfig()->getAvailability());
         $this->testOBJ->setCharSelectorDefinition($char_selector->getConfig()->getDefinition());
     }
     $this->testOBJ->setAutosave($form->getItemByPostVar('autosave')->getChecked());
     $this->testOBJ->setAutosaveIval($form->getItemByPostVar('autosave_ival')->getValue() * 1000);
     $this->testOBJ->setUsePreviousAnswers($form->getItemByPostVar('chb_use_previous_answers')->getChecked());
     // highscore settings
     $this->testOBJ->setHighscoreEnabled((bool) $form->getItemByPostVar('highscore_enabled')->getChecked());
     $this->testOBJ->setHighscoreAnon((bool) $form->getItemByPostVar('highscore_anon')->getChecked());
     $this->testOBJ->setHighscoreAchievedTS((bool) $form->getItemByPostVar('highscore_achieved_ts')->getChecked());
     $this->testOBJ->setHighscoreScore((bool) $form->getItemByPostVar('highscore_score')->getChecked());
     $this->testOBJ->setHighscorePercentage((bool) $form->getItemByPostVar('highscore_percentage')->getChecked());
     $this->testOBJ->setHighscoreHints((bool) $form->getItemByPostVar('highscore_hints')->getChecked());
     $this->testOBJ->setHighscoreWTime((bool) $form->getItemByPostVar('highscore_wtime')->getChecked());
     $this->testOBJ->setHighscoreOwnTable((bool) $form->getItemByPostVar('highscore_own_table')->getChecked());
     $this->testOBJ->setHighscoreTopTable((bool) $form->getItemByPostVar('highscore_top_table')->getChecked());
     $this->testOBJ->setHighscoreTopNum((int) $form->getItemByPostVar('highscore_top_num')->getValue());
     if (!$this->testOBJ->participantDataExist()) {
         // question set type
         if ($form->getItemByPostVar('question_set_type') instanceof ilFormPropertyGUI) {
             $this->testOBJ->setQuestionSetType($form->getItemByPostVar('question_set_type')->getValue());
         }
         // anonymity setting
         $this->testOBJ->setAnonymity($form->getItemByPostVar('anonymity')->getValue());
         // nr of tries (max passes)
         $this->testOBJ->setNrOfTries($form->getItemByPostVar('nr_of_tries')->getValue());
         // fixed participants setting
         if ($form->getItemByPostVar('fixedparticipants') instanceof ilFormPropertyGUI) {
             $this->testOBJ->setFixedParticipants($form->getItemByPostVar('fixedparticipants')->getChecked());
         }
     }
     // store settings to db
     $this->testOBJ->saveToDb(true);
     // Update ecs export settings
     include_once 'Modules/Test/classes/class.ilECSTestSettings.php';
     $ecs = new ilECSTestSettings($this->testOBJ);
     $ecs->handleSettingsUpdate();
 }
Exemplo n.º 2
0
 /**
  * Save Test
  */
 protected function saveTest()
 {
     $this->ctrl->setParameter($this, 'tt', (int) $_REQUEST['tt']);
     $this->setTestType((int) $_REQUEST['tt']);
     $settings = ilLOSettings::getInstanceByObjId($this->getParentObject()->getId());
     include_once './Modules/Course/classes/Objectives/class.ilLOTestAssignmentForm.php';
     $form_helper = new ilLOTestAssignmentForm($this, $this->getParentObject(), $this->getTestType());
     $form = $form_helper->initForm(FALSE);
     if ($form->checkInput()) {
         $mode = $form->getInput('mode');
         if ($mode == self::TEST_NEW) {
             $tst = new ilObjTest();
             $tst->setType('tst');
             $tst->setTitle($form->getInput('title'));
             $tst->setDescription($form->getInput('desc'));
             $tst->create();
             $tst->createReference();
             $tst->putInTree($this->getParentObject()->getRefId());
             $tst->setPermissions($this->getParentObject()->getRefId());
             // apply settings template
             $this->applySettingsTemplate($tst);
             $tst->setQuestionSetType($form->getInput('qtype'));
             $tst->saveToDb();
             if ($this->getTestType() == self::TEST_TYPE_IT) {
                 $this->getSettings()->setInitialTest($tst->getRefId());
             } else {
                 $this->getSettings()->setQualifiedTest($tst->getRefId());
             }
             $this->getSettings()->update();
         } else {
             if ($this->getTestType() == self::TEST_TYPE_IT) {
                 $this->getSettings()->setInitialTest($form->getInput('tst'));
             } else {
                 $this->getSettings()->setQualifiedTest($form->getInput('tst'));
             }
             $this->getSettings()->update();
             $tst = new ilObjTest($settings->getTestByType($this->getTestType()), true);
             $this->applySettingsTemplate($tst);
             $tst->saveToDb();
         }
         $this->updateStartObjects();
         ilUtil::sendSuccess($this->lng->txt('settings_saved'));
         $this->ctrl->redirect($this, 'testOverview');
     }
     // Error
     ilUtil::sendFailure($this->lng->txt('err_check_input'));
     $form->setValuesByPost();
     $this->testSettings($form);
 }
Exemplo n.º 3
0
 /**
  * imports question(s) into the questionpool (after verification)
  */
 function importVerifiedFileObject()
 {
     include_once "./Modules/Test/classes/class.ilObjTest.php";
     // create new questionpool object
     $newObj = new ilObjTest(0, true);
     // set type of questionpool object
     $newObj->setType($_GET["new_type"]);
     // set title of questionpool object to "dummy"
     $newObj->setTitle("dummy");
     // set description of questionpool object
     $newObj->setDescription("test import");
     // create the questionpool class in the ILIAS database (object_data table)
     $newObj->create(true);
     // create a reference for the questionpool object in the ILIAS database (object_reference table)
     $newObj->createReference();
     // put the questionpool object in the administration tree
     $newObj->putInTree($_GET["ref_id"]);
     // get default permissions and set the permissions for the questionpool object
     $newObj->setPermissions($_GET["ref_id"]);
     // notify the questionpool object and all its parent objects that a "new" object was created
     $newObj->notify("new", $_GET["ref_id"], $_GET["parent_non_rbac_id"], $_GET["ref_id"], $newObj->getRefId());
     // empty mark schema
     $newObj->mark_schema->flush();
     // start parsing of QTI files
     include_once "./Services/QTI/classes/class.ilQTIParser.php";
     // Handle selection of "no questionpool" as qpl_id = -1 -> use test object id instead.
     // TODO: chek if empty strings in $_POST["qpl_id"] relates to a bug or not
     if ($_POST["qpl_id"] == "-1") {
         $qpl_id = $newObj->id;
     } else {
         $qpl_id = $_POST["qpl_id"];
     }
     $qtiParser = new ilQTIParser($_SESSION["tst_import_qti_file"], IL_MO_PARSE_QTI, $qpl_id, $_POST["ident"]);
     $qtiParser->setTestObject($newObj);
     $result = $qtiParser->startParsing();
     $newObj->saveToDb();
     // import page data
     include_once "./Modules/LearningModule/classes/class.ilContObjParser.php";
     $contParser = new ilContObjParser($newObj, $_SESSION["tst_import_xml_file"], $_SESSION["tst_import_subdir"]);
     $contParser->setQuestionMapping($qtiParser->getImportMapping());
     $contParser->startParsing();
     // import test results
     if (@file_exists($_SESSION["tst_import_results_file"])) {
         include_once "./Modules/Test/classes/class.ilTestResultsImportParser.php";
         $results = new ilTestResultsImportParser($_SESSION["tst_import_results_file"], $newObj);
         $results->startParsing();
     }
     // delete import directory
     ilUtil::delDir(ilObjTest::_getImportDirectory());
     ilUtil::sendSuccess($this->lng->txt("object_imported"), true);
     $newObj->updateMetaData();
     ilUtil::redirect("ilias.php?ref_id=" . $newObj->getRefId() . "&baseClass=ilObjTestGUI");
 }
 /**
  * Save the form input of the properties form
  *
  * @access	public
  */
 function savePropertiesObject()
 {
     if (!array_key_exists("tst_properties_confirmation", $_POST)) {
         $hasErrors = $this->propertiesObject(true);
     } else {
         $hasErrors = false;
     }
     if (!$hasErrors) {
         $template_settings = null;
         $template = $this->object->getTemplate();
         if ($template) {
             include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
             $template = new ilSettingsTemplate($template, ilObjAssessmentFolderGUI::getSettingsTemplateConfig());
             $template_settings = $template->getSettings();
         }
         include_once 'Services/MetaData/classes/class.ilMD.php';
         $md_obj =& new ilMD($this->object->getId(), 0, "tst");
         $md_section = $md_obj->getGeneral();
         // title
         $md_section->setTitle(ilUtil::stripSlashes($_POST['title']));
         $md_section->update();
         // Description
         $md_desc_ids = $md_section->getDescriptionIds();
         if ($md_desc_ids) {
             $md_desc = $md_section->getDescription(array_pop($md_desc_ids));
             $md_desc->setDescription(ilUtil::stripSlashes($_POST['description']));
             $md_desc->update();
         } else {
             $md_desc = $md_section->addDescription();
             $md_desc->setDescription(ilUtil::stripSlashes($_POST['description']));
             $md_desc->save();
         }
         $this->object->setTitle(ilUtil::stripSlashes($_POST['title']));
         $this->object->setDescription(ilUtil::stripSlashes($_POST['description']));
         $this->object->update();
         $total = $this->object->evalTotalPersons();
         $randomtest_switch = false;
         // Check the values the user entered in the form
         if (!$total) {
             if (!strlen($_POST["random_test"])) {
                 $random_test = 0;
             } else {
                 $random_test = $_POST["random_test"];
             }
             if (!array_key_exists("tst_properties_confirmation", $_POST)) {
                 if (!$random_test && $this->object->areRandomTestQuestionpoolsConfigured()) {
                     // user tries to change from a random test with existing random question pools to a non random test
                     $this->confirmChangeProperties(self::SWITCH_RANDOM_TEST_SETTING_TO_DISABLED);
                     return;
                 } elseif ($random_test && $this->object->doesNonRandomTestQuestionsExist()) {
                     // user tries to change from a non random test with existing questions to a random test
                     $this->confirmChangeProperties(self::SWITCH_RANDOM_TEST_SETTING_TO_ENABLED);
                     return;
                 }
             }
         } else {
             $random_test = $this->object->isRandomTest();
         }
         // buffer online status sent by form in local variable and store
         // it to model after the following if block, because the new status
         // gets reset when random test setting is switched
         $online = $_POST["online"];
         $randomtest_switch = $this->isRandomTestSettingSwitched($random_test);
         if (!$total) {
             if ($randomtest_switch && $this->object->isOnline() && $online) {
                 // reset online status that is stored to model later on
                 // due to fact that the random test setting has been changed
                 $online = false;
                 $info = $this->lng->txt("tst_set_offline_due_to_switched_random_test_setting");
                 ilUtil::sendInfo($info, true);
             }
             $this->object->setAnonymity($_POST["anonymity"]);
             $this->object->setRandomTest($random_test);
             $this->object->setNrOfTries($_POST["nr_of_tries"]);
         }
         // store effective online status to model
         $this->object->setOnline($online);
         // activation
         if ($_POST["activation_type"] == ilObjectActivation::TIMINGS_ACTIVATION) {
             $this->object->setActivationLimited(true);
             $this->object->setActivationVisibility($_POST["activation_visibility"]);
             $date = new ilDateTime($_POST['act_starting_time']['date'] . ' ' . $_POST['act_starting_time']['time'], IL_CAL_DATETIME);
             $this->object->setActivationStartingTime($date->get(IL_CAL_UNIX));
             $date = new ilDateTime($_POST['act_ending_time']['date'] . ' ' . $_POST['act_ending_time']['time'], IL_CAL_DATETIME);
             $this->object->setActivationEndingTime($date->get(IL_CAL_UNIX));
         } else {
             $this->object->setActivationLimited(false);
         }
         include_once "./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
         $this->object->setIntroduction($_POST["introduction"], false, ilObjAdvancedEditing::_getUsedHTMLTagsAsString("assessment"));
         $this->object->setShowInfo($_POST["showinfo"] ? 1 : 0);
         $this->object->setFinalStatement($_POST["finalstatement"], false, ilObjAdvancedEditing::_getUsedHTMLTagsAsString("assessment"));
         $this->object->setShowFinalStatement($_POST["showfinalstatement"] ? 1 : 0);
         $this->object->setSequenceSettings($_POST["chb_postpone"] ? 1 : 0);
         $this->object->setShuffleQuestions($_POST["chb_shuffle_questions"] ? 1 : 0);
         $this->object->setListOfQuestions($_POST["list_of_questions"]);
         if (is_array($_POST["list_of_questions_options"])) {
             $this->object->setListOfQuestionsStart(in_array('chb_list_of_questions_start', $_POST["list_of_questions_options"]) ? 1 : 0);
             $this->object->setListOfQuestionsEnd(in_array('chb_list_of_questions_end', $_POST["list_of_questions_options"]) ? 1 : 0);
             $this->object->setListOfQuestionsDescription(in_array('chb_list_of_questions_with_description', $_POST["list_of_questions_options"]) ? 1 : 0);
         } else {
             $this->object->setListOfQuestionsStart(0);
             $this->object->setListOfQuestionsEnd(0);
             $this->object->setListOfQuestionsDescription(0);
         }
         $this->object->setMailNotification($_POST["mailnotification"]);
         $this->object->setMailNotificationType($_POST["mailnottype"]);
         $this->object->setShowMarker($_POST["chb_show_marker"] ? 1 : 0);
         $this->object->setShowCancel($_POST["chb_show_cancel"] ? 1 : 0);
         $this->object->setKioskMode($_POST["kiosk"] ? 1 : 0);
         $this->object->setShowKioskModeTitle(is_array($_POST["kiosk_options"]) && in_array('kiosk_title', $_POST["kiosk_options"]) ? 1 : 0);
         $this->object->setShowKioskModeParticipant(is_array($_POST["kiosk_options"]) && in_array('kiosk_participant', $_POST["kiosk_options"]) ? 1 : 0);
         $this->object->setEnableProcessingTime($_POST["chb_processing_time"] ? 1 : 0);
         if ($this->object->getEnableProcessingTime()) {
             $this->object->setProcessingTime(sprintf("%02d:%02d:%02d", $_POST["processing_time"]["hh"], $_POST["processing_time"]["mm"], $_POST["processing_time"]["ss"]));
         } else {
             $this->object->setProcessingTime('');
         }
         $this->object->setResetProcessingTime($_POST["chb_reset_processing_time"] ? 1 : 0);
         if ($_POST['chb_starting_time']) {
             $this->object->setStartingTime(ilFormat::dateDB2timestamp($_POST['starting_time']['date'] . ' ' . $_POST['starting_time']['time']));
         } else {
             $this->object->setStartingTime('');
         }
         if ($_POST['chb_ending_time']) {
             $this->object->setEndingTime(ilFormat::dateDB2timestamp($_POST['ending_time']['date'] . ' ' . $_POST['ending_time']['time']));
         } else {
             $this->object->setEndingTime('');
         }
         $this->object->setUsePreviousAnswers($_POST["chb_use_previous_answers"] ? 1 : 0);
         $this->object->setForceJS($_POST["forcejs"] ? 1 : 0);
         $this->object->setTitleOutput($_POST["title_output"]);
         $this->object->setPassword($_POST["password"]);
         $this->object->setAllowedUsers($_POST["allowedUsers"]);
         $this->object->setAllowedUsersTimeGap($_POST["allowedUsersTimeGap"]);
         $this->object->setAutosave($_POST['autosave']);
         $this->object->setAutosaveIval($_POST['autosave_ival']);
         if ($this->object->isRandomTest()) {
             $this->object->setUsePreviousAnswers(0);
         }
         $invited_users = $this->object->getInvitedUsers();
         if (!($total && count($invited_users) == 0)) {
             $fixed_participants = 0;
             if (array_key_exists("fixedparticipants", $_POST)) {
                 if ($_POST["fixedparticipants"]) {
                     $fixed_participants = 1;
                 }
             }
             $this->object->setFixedParticipants($fixed_participants);
             if (!$fixed_participants) {
                 $invited_users = $this->object->getInvitedUsers();
                 foreach ($invited_users as $user_object) {
                     $this->object->disinviteUser($user_object["usr_id"]);
                 }
             }
         }
         $this->object->setHighscoreEnabled((bool) $_POST['highscore_enabled']);
         $this->object->setHighscoreAnon((bool) $_POST['highscore_anon']);
         $this->object->setHighscoreAchievedTS((bool) $_POST['highscore_achieved_ts']);
         $this->object->setHighscoreScore((bool) $_POST['highscore_score']);
         $this->object->setHighscorePercentage((bool) $_POST['highscore_percentage']);
         $this->object->setHighscoreHints((bool) $_POST['highscore_hints']);
         $this->object->setHighscoreWTime((bool) $_POST['highscore_wtime']);
         $this->object->setHighscoreOwnTable((bool) $_POST['highscore_own_table']);
         $this->object->setHighscoreTopTable((bool) $_POST['highscore_top_table']);
         $this->object->setHighscoreTopNum((int) $_POST['highscore_top_num']);
         //$this->object->setExpressModeQuestionPoolAllowed($_POST['express_allow_question_pool']);
         $this->object->setEnabledViewMode($_POST['enabled_view_mode']);
         $this->object->setPoolUsage($_POST['use_pool']);
         $this->object->saveToDb(true);
         // Update ecs export settings
         include_once 'Modules/Test/classes/class.ilECSTestSettings.php';
         $ecs = new ilECSTestSettings($this->object);
         $ecs->handleSettingsUpdate();
         ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
         if ($randomtest_switch) {
             if ($this->object->isRandomTest()) {
                 $this->object->removeNonRandomTestData();
             } else {
                 $this->object->removeRandomTestData();
             }
         }
         $this->ctrl->redirect($this, 'properties');
     }
 }