4 require_once
'Modules/Test/classes/class.ilTestSettingsGUI.php';
5 require_once
'Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php';
103 require_once
'Modules/Test/classes/class.ilTestQuestionSetConfigFactory.php';
106 parent::__construct($testGUI->object);
118 if (!$this->access->checkAccess(
"write",
"", $this->testGUI->ref_id)) {
120 $this->ctrl->redirect($this->testGUI,
"infoScreen");
127 $nextClass = $this->ctrl->getNextClass();
129 switch ($nextClass) {
131 $cmd = $this->ctrl->getCmd(self::CMD_SHOW_FORM) .
'Cmd';
138 $this->tpl->addJavascript(
"./Services/JavaScript/js/Basic.js");
140 if (
$form === null) {
144 $formHTML = $this->ctrl->getHTML(
$form);
147 $this->tpl->setContent($formHTML . $msgHTML);
152 require_once
'Modules/Test/classes/confirmations/class.ilTestSettingsChangeConfirmationGUI.php';
155 $confirmation->setFormAction($this->ctrl->getFormAction($this));
156 $confirmation->setCancel($this->lng->txt(
'cancel'), self::CMD_SHOW_FORM);
157 $confirmation->setConfirm($this->lng->txt(
'confirm'), self::CMD_CONFIRMED_SAVE_FORM);
159 $confirmation->setOldQuestionSetType($oldQuestionSetType);
160 $confirmation->setNewQuestionSetType($newQuestionSetType);
161 $confirmation->setQuestionLossInfoEnabled($hasQuestionsWithoutQuestionpool);
162 $confirmation->build();
164 $confirmation->populateParametersFromPropertyForm($form, $this->activeUser->getTimeZone());
166 $this->tpl->setContent($this->ctrl->getHTML($confirmation));
171 if ($this->settingsTemplate) {
172 $title = $this->settingsTemplate->getTitle();
174 if ($this->settingsTemplate->getAutoGenerated()) {
181 $link = $this->ctrl->getLinkTarget($this, self::CMD_SHOW_RESET_TPL_CONFIRM);
182 $link =
"<a href=\"" . $link .
"\">" . $this->lng->txt(
"test_using_template_link") .
"</a>";
184 $msgHTML =
$tpl->getMessageHTML(
185 sprintf($this->lng->txt(
"test_using_template"),
$title, $link),
189 $msgHTML =
"<div style=\"margin-top:10px\">$msgHTML</div>";
208 if ($isConfirmedSave) {
212 $_FILES[
'tile_image'] = array(
213 'name' =>
'',
'type' =>
'',
'size' =>
'',
'tmp_name' =>
'',
'error' =>
'' 220 $form->setValuesByPost();
233 $currentQuestionSetConfig = $this->testQuestionSetConfigFactory->getQuestionSetConfig();
234 if (
$form->getItemByPostVar(
'online')->getChecked() && !$this->testOBJ->isComplete($currentQuestionSetConfig)) {
235 $form->getItemByPostVar(
'online')->setAlert(
236 $this->lng->txt(
"cannot_switch_to_online_no_questions_andor_no_mark_steps")
245 $qstSetSetting =
$form->getItemByPostVar(
'question_set_type');
246 $qTitleSetting =
$form->getItemByPostVar(
'title_output');
249 $qstSetSetting->setAlert($this->lng->txt(
'tst_conflicting_setting'));
250 $qTitleSetting->setAlert($this->lng->txt(
'tst_conflicting_setting'));
258 $obligationsSetting =
$form->getItemByPostVar(
'obligations_enabled');
259 $answerFixationSetting =
$form->getItemByPostVar(
'answer_fixation_handling');
261 if ($obligationsSetting->getChecked() && $answerFixationSetting->getValue() != self::ANSWER_FIXATION_NONE) {
262 $obligationsSetting->setAlert($this->lng->txt(
'tst_conflicting_setting'));
263 $answerFixationSetting->setAlert($this->lng->txt(
'tst_conflicting_setting'));
271 $postponeSetting =
$form->getItemByPostVar(
'postpone');
272 $answerFixationSetting =
$form->getItemByPostVar(
'answer_fixation_handling');
273 $conflictModes = array(self::ANSWER_FIXATION_ON_FOLLOWUP_QUESTION, self::ANSWER_FIXATION_ON_IFB_OR_FUQST);
275 if ($postponeSetting->getValue() && in_array($answerFixationSetting->getValue(), $conflictModes)) {
276 $postponeSetting->setAlert($this->lng->txt(
'tst_conflicting_setting'));
277 $answerFixationSetting->setAlert($this->lng->txt(
'tst_conflicting_setting'));
285 $shuffleSetting =
$form->getItemByPostVar(
'chb_shuffle_questions');
286 $answerFixationSetting =
$form->getItemByPostVar(
'answer_fixation_handling');
287 $conflictModes = array(self::ANSWER_FIXATION_ON_FOLLOWUP_QUESTION, self::ANSWER_FIXATION_ON_IFB_OR_FUQST);
289 if ($shuffleSetting->getChecked() && in_array($answerFixationSetting->getValue(), $conflictModes)) {
290 $shuffleSetting->setAlert($this->lng->txt(
'tst_conflicting_setting'));
291 $answerFixationSetting->setAlert($this->lng->txt(
'tst_conflicting_setting'));
302 $questionSetTypeRelatingDataCleanupRequired =
false;
304 $oldQuestionSetType = $this->testOBJ->getQuestionSetType();
306 $newQuestionSetType =
$form->getItemByPostVar(
'question_set_type')->getValue();
308 if (!$this->testOBJ->participantDataExist() && $newQuestionSetType != $oldQuestionSetType) {
309 $oldQuestionSetConfig = $this->testQuestionSetConfigFactory->getQuestionSetConfigByType(
313 if ($oldQuestionSetConfig->doesQuestionSetRelatedDataExist()) {
314 if (!$isConfirmedSave) {
320 $this->testOBJ->hasQuestionsWithoutQuestionpool()
332 $questionSetTypeRelatingDataCleanupRequired =
true;
335 if (
$form->getItemByPostVar(
'online')->getChecked()) {
336 $form->getItemByPostVar(
'online')->setChecked(
false);
338 if (!$this->testOBJ->getOfflineStatus()) {
339 $infoMsg[] = $this->lng->txt(
"tst_set_offline_due_to_switched_question_set_type_setting");
341 $infoMsg[] = $this->lng->txt(
"tst_cannot_online_due_to_switched_quest_set_type_setting");
346 $newQuestionSetType = $oldQuestionSetType;
352 $form->getItemByPostVar(
'chb_use_previous_answers')->setChecked(
false);
361 if ($questionSetTypeRelatingDataCleanupRequired) {
362 $oldQuestionSetConfig->removeQuestionSetRelatedData();
367 if (!$this->testOBJ->participantDataExist() && !$this->testOBJ->getFixedParticipants()) {
368 foreach ($this->testOBJ->getInvitedUsers() as $usrId => $usrData) {
369 $this->testOBJ->disinviteUser($usrId);
375 if (count($infoMsg)) {
379 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"),
true);
380 $this->ctrl->redirect($this, self::CMD_SHOW_FORM);
388 require_once
'Services/Utilities/classes/class.ilConfirmationGUI.php';
391 $confirmationGUI->setFormAction($this->ctrl->getFormAction($this));
392 $confirmationGUI->setHeaderText($this->lng->txt(
"test_confirm_template_reset"));
393 $confirmationGUI->setCancel($this->lng->txt(
'cancel'), self::CMD_SHOW_FORM);
394 $confirmationGUI->setConfirm($this->lng->txt(
'confirm'), self::CMD_CONFIRMED_RESET_TPL);
396 $this->tpl->setContent($this->ctrl->getHTML($confirmationGUI));
404 $this->testOBJ->setTemplate(null);
405 $this->testOBJ->saveToDB();
407 ilUtil::sendSuccess($this->lng->txt(
"test_template_reset"),
true);
408 $this->ctrl->redirect($this, self::CMD_SHOW_FORM);
433 return $ilSetting->get(
'char_selector_availability') > 0;
439 require_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
441 $form->setFormAction($this->ctrl->getFormAction($this));
442 $form->addCommandButton(self::CMD_SAVE_FORM, $this->lng->txt(
"save"));
443 $form->setTableWidth(
"100%");
444 $form->setId(
"test_properties");
457 include_once
'Modules/Test/classes/class.ilECSTestSettings.php';
459 $ecs->addSettingsToForm(
$form,
'tst');
464 $this->testOBJ->getType()
470 if ($orgunitServiceActive || $skillServiceActive) {
472 $otherHead->setTitle($this->lng->txt(
'obj_features'));
473 $form->addItem($otherHead);
476 require_once
'Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
482 if ($skillServiceActive) {
483 $skillService =
new ilCheckboxInputGUI($this->lng->txt(
'tst_activate_skill_service'),
'skill_service');
484 $skillService->
setInfo($this->lng->txt(
'tst_activate_skill_service_desc'));
485 $skillService->setChecked($this->testOBJ->isSkillServiceEnabled());
486 if ($this->testOBJ->participantDataExist()) {
487 $skillService->setDisabled(
true);
489 $form->addItem($skillService);
510 if (!$this->testOBJ->participantDataExist()) {
513 $this->testOBJ->setSkillServiceEnabled($form->
getItemByPostVar(
'skill_service')->getChecked());
517 require_once
'Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
523 $this->testOBJ->saveToDb(
true);
526 include_once
'Modules/Test/classes/class.ilECSTestSettings.php';
528 $ecs->handleSettingsUpdate();
537 $header->setTitle($this->lng->txt(
"tst_general_properties"));
542 include_once
'Services/MetaData/classes/class.ilMD.php';
543 $md_obj =
new ilMD($this->testOBJ->getId(), 0,
"tst");
547 $title->setRequired(
true);
548 $title->setValue($md_section->getTitle());
551 $ids = $md_section->getDescriptionIds();
553 $desc_obj = $md_section->getDescription(array_pop($ids));
558 $desc->setValue($desc_obj->getDescription());
563 $pool_usage =
new ilRadioGroupInputGUI($this->lng->txt(
'test_question_pool_usage'),
'use_pool');
565 $optional_qpl =
new ilRadioOption($this->lng->txt(
'test_question_pool_usage_optional'), 1);
566 $optional_qpl->
setInfo($this->lng->txt(
'test_question_pool_usage_optional_info'));
567 $pool_usage->addOption($optional_qpl);
569 $tst_directly =
new ilRadioOption($this->lng->txt(
'test_question_pool_usage_tst_directly'), 0);
570 $tst_directly->
setInfo($this->lng->txt(
'test_question_pool_usage_tst_directly_info'));
571 $pool_usage->addOption($tst_directly);
573 $pool_usage->setValue($this->testOBJ->getPoolUsage() ? 1 : 0);
577 $questSetType =
new ilRadioGroupInputGUI($this->lng->txt(
"tst_question_set_type"),
'question_set_type');
579 $this->lng->txt(
"tst_question_set_type_fixed"),
581 $this->lng->txt(
"tst_question_set_type_fixed_desc")
583 $questSetType->addOption($questSetTypeFixed);
585 $this->lng->txt(
"tst_question_set_type_random"),
587 $this->lng->txt(
"tst_question_set_type_random_desc")
589 $questSetType->addOption($questSetTypeRandom);
591 $this->lng->txt(
"tst_question_set_type_dynamic"),
593 $this->lng->txt(
"tst_question_set_type_dynamic_desc")
595 $questSetType->addOption($questSetTypeContinues);
596 $questSetType->
setValue($this->testOBJ->getQuestionSetType());
597 if ($this->testOBJ->participantDataExist()) {
598 $questSetType->setDisabled(
true);
604 if ($this->testOBJ->participantDataExist()) {
607 $rb =
new ilRadioOption($this->lng->txt(
'tst_anonymity_no_anonymization'), 0);
608 $anonymity->addOption($rb);
609 $rb =
new ilRadioOption($this->lng->txt(
'tst_anonymity_anonymous_test'), 1);
610 $anonymity->addOption($rb);
611 $anonymity->
setValue((
int) $this->testOBJ->getAnonymity());
620 include_once
'Services/MetaData/classes/class.ilMD.php';
621 $md_obj =
new ilMD($this->testOBJ->getId(), 0,
"tst");
629 $md_desc_ids = $md_section->getDescriptionIds();
631 $md_desc = $md_section->getDescription(array_pop($md_desc_ids));
635 $md_desc = $md_section->addDescription();
642 $this->testOBJ->setOfflineStatus(!$form->
getItemByPostVar(
'online')->getChecked());
643 $this->testOBJ->update();
647 $this->testOBJ->setPoolUsage((
int) $form->
getItemByPostVar(
'use_pool')->getValue());
650 if (!$this->testOBJ->participantDataExist()) {
653 $this->testOBJ->setQuestionSetType($form->
getItemByPostVar(
'question_set_type')->getValue());
658 if (!$this->testOBJ->participantDataExist() && $this->
formPropertyExists($form,
'anonymity')) {
659 $this->testOBJ->setAnonymity($form->
getItemByPostVar(
'anonymity')->getValue());
668 include_once
"Services/Object/classes/class.ilObjectActivation.php";
669 $this->lng->loadLanguageModule(
'rep');
672 $section->setTitle($this->lng->txt(
'rep_activation_availability'));
676 $act_obj_info = $act_ref_info =
"";
678 $act_obj_info =
' ' . $this->lng->txt(
'rep_activation_online_object_info');
679 $act_ref_info = $this->lng->txt(
'rep_activation_access_ref_info');
683 $online->
setChecked(!$this->testOBJ->getOfflineStatus());
684 $online->setInfo($this->lng->txt(
'tst_activation_online_info') . $act_obj_info);
687 $act_type =
new ilCheckboxInputGUI($this->lng->txt(
'rep_visibility_until'),
'activation_type');
688 $act_type->
setChecked($this->testOBJ->isActivationLimited());
691 $this->tpl->addJavaScript(
'./Services/Form/js/date_duration.js');
692 include_once
"Services/Form/classes/class.ilDateDurationInputGUI.php";
695 $dur->setShowTime(
true);
696 $date = $this->testOBJ->getActivationStartingTime();
698 $dur->setStartText($this->lng->txt(
'rep_activation_limited_start'));
699 $date = $this->testOBJ->getActivationEndingTime();
701 $dur->setEndText($this->lng->txt(
'rep_activation_limited_end'));
702 $act_type->addSubItem($dur);
704 $visible =
new ilCheckboxInputGUI($this->lng->txt(
'rep_activation_limited_visibility'),
'activation_visibility');
705 $visible->
setInfo($this->lng->txt(
'tst_activation_limited_visibility_info'));
706 $visible->setChecked($this->testOBJ->getActivationVisibility());
707 $act_type->addSubItem($visible);
719 $this->testOBJ->setActivationLimited(
true);
720 $this->testOBJ->setActivationVisibility($form->
getItemByPostVar(
'activation_visibility')->getChecked());
723 $this->testOBJ->setActivationStartingTime($period->getStart()->get(
IL_CAL_UNIX));
724 $this->testOBJ->setActivationEndingTime($period->getEnd()->get(
IL_CAL_UNIX));
726 $this->testOBJ->setActivationLimited(
false);
738 $section->setTitle($this->lng->txt(
'tst_presentation_settings_section'));
741 $DIC->object()->commonSettings()->legacyForm($form, $this->testOBJ)->addTileImage();
751 $DIC->object()->commonSettings()->legacyForm($form, $this->testOBJ)->saveTileImage();
760 $section->setTitle($this->lng->txt(
'tst_settings_header_intro'));
764 $introEnabled =
new ilCheckboxInputGUI($this->lng->txt(
"tst_introduction"),
'intro_enabled');
765 $introEnabled->
setChecked($this->testOBJ->isIntroductionEnabled());
766 $introEnabled->setInfo($this->lng->txt(
'tst_introduction_desc'));
768 $intro =
new ilTextAreaInputGUI($this->lng->txt(
"tst_introduction_text"),
"introduction");
770 $intro->setValue($this->testOBJ->prepareTextareaOutput($this->testOBJ->getIntroduction(),
false,
true));
773 $intro->setUseRte(
true);
774 $intro->addPlugin(
"latex");
775 $intro->addButton(
"latex");
776 $intro->setRTESupport($this->testOBJ->getId(),
"tst",
"assessment");
777 $intro->setRteTagSet(
'full');
778 $introEnabled->addSubItem($intro);
783 $showinfo->setChecked($this->testOBJ->getShowInfo());
784 $showinfo->setInfo($this->lng->txt(
"showinfo_desc"));
794 $this->testOBJ->setIntroductionEnabled($form->
getItemByPostVar(
'intro_enabled')->getChecked());
799 $this->testOBJ->setIntroduction(
'');
804 $this->testOBJ->setShowInfo($form->
getItemByPostVar(
'showinfo')->getChecked());
814 $header->setTitle($this->lng->txt(
"tst_settings_header_execution"));
818 $startingtime =
new ilDateTimeInputGUI($this->lng->txt(
"tst_starting_time"),
'starting_time');
819 $startingtime->
setInfo($this->lng->txt(
"tst_starting_time_desc"));
820 $startingtime->setShowTime(
true);
821 if ($this->testOBJ->getStartingTime() != 0) {
824 $startingtime->setDate(null);
828 if ($this->testOBJ->participantDataExist()) {
829 $startingtime->setDisabled(
true);
833 $endingtime =
new ilDateTimeInputGUI($this->lng->txt(
"tst_ending_time"),
'ending_time');
834 $endingtime->
setInfo($this->lng->txt(
"tst_ending_time_desc"));
835 $endingtime->setShowTime(
true);
836 if ($this->testOBJ->getEndingTime() != 0) {
839 $endingtime->setDate(null);
844 $pwEnabled =
new ilCheckboxInputGUI($this->lng->txt(
'tst_password'),
'password_enabled');
845 $pwEnabled->
setChecked($this->testOBJ->isPasswordEnabled());
846 $pwEnabled->setInfo($this->lng->txt(
"tst_password_details"));
851 $password->setValue($this->testOBJ->getPassword());
856 $fixedparticipants =
new ilCheckboxInputGUI($this->lng->txt(
'participants_invitation'),
"fixedparticipants");
858 $fixedparticipants->setChecked($this->testOBJ->getFixedParticipants());
859 $fixedparticipants->setInfo($this->lng->txt(
"participants_invitation_description"));
860 if ($this->testOBJ->participantDataExist()) {
861 $fixedparticipants->setDisabled(
true);
863 $form->
addItem($fixedparticipants);
866 $simulLimited =
new ilCheckboxInputGUI($this->lng->txt(
"tst_allowed_users"),
'limitUsers');
867 $simulLimited->
setInfo($this->lng->txt(
"tst_allowed_users_desc"));
868 $simulLimited->setChecked($this->testOBJ->isLimitUsersEnabled());
871 $simul =
new ilNumberInputGUI($this->lng->txt(
"tst_allowed_users_max"),
"allowedUsers");
873 $simul->allowDecimals(
false);
874 $simul->setMinValue(1);
875 $simul->setMinvalueShouldBeGreater(
false);
877 $simul->setValue(($this->testOBJ->getAllowedUsers()) ? $this->testOBJ->getAllowedUsers() :
'');
878 $simulLimited->addSubItem($simul);
881 $idle =
new ilNumberInputGUI($this->lng->txt(
"tst_allowed_users_time_gap"),
"allowedUsersTimeGap");
882 $idle->
setInfo($this->lng->txt(
"tst_allowed_users_time_gap_desc"));
884 $idle->setSuffix($this->lng->txt(
"seconds"));
885 $idle->setValue(($this->testOBJ->getAllowedUsersTimeGap()) ? $this->testOBJ->getAllowedUsersTimeGap() : 300);
886 $simulLimited->addSubItem($idle);
897 if (!$this->testOBJ->participantDataExist()) {
901 $this->testOBJ->setStartingTime($starting_time->getUnixtime());
902 $this->testOBJ->setStartingTimeEnabled(
true);
904 $this->testOBJ->setStartingTime(null);
905 $this->testOBJ->setStartingTimeEnabled(
false);
912 $this->testOBJ->setEndingTime($ending_time->getUnixtime());
913 $this->testOBJ->setEndingTimeEnabled(
true);
915 $this->testOBJ->setEndingTime(null);
916 $this->testOBJ->setEndingTimeEnabled(
false);
920 $this->testOBJ->setPasswordEnabled($form->
getItemByPostVar(
'password_enabled')->getChecked());
923 $this->testOBJ->setPassword($form->
getItemByPostVar(
'password')->getValue());
925 $this->testOBJ->setPassword(
'');
929 if ($this->
formPropertyExists($form,
'fixedparticipants') && !$this->testOBJ->participantDataExist()) {
930 $this->testOBJ->setFixedParticipants($form->
getItemByPostVar(
'fixedparticipants')->getChecked());
934 $this->testOBJ->setLimitUsersEnabled($form->
getItemByPostVar(
'limitUsers')->getChecked());
937 $this->testOBJ->setAllowedUsers($form->
getItemByPostVar(
'allowedUsers')->getValue());
938 $this->testOBJ->setAllowedUsersTimeGap($form->
getItemByPostVar(
'allowedUsersTimeGap')->getValue());
940 $this->testOBJ->setAllowedUsers(
'');
952 $header->setTitle($this->lng->txt(
"tst_settings_header_test_run"));
956 $limitPasses =
new ilCheckboxInputGUI($this->lng->txt(
"tst_limit_nr_of_tries"),
'limitPasses');
957 $limitPasses->
setInfo($this->lng->txt(
"tst_nr_of_tries_desc"));
958 $limitPasses->setChecked($this->testOBJ->getNrOfTries() > 0);
959 $nr_of_tries =
new ilNumberInputGUI($this->lng->txt(
"tst_nr_of_tries"),
"nr_of_tries");
961 $nr_of_tries->allowDecimals(
false);
962 $nr_of_tries->setMinValue(1);
963 $nr_of_tries->setMinvalueShouldBeGreater(
false);
964 $nr_of_tries->setValue($this->testOBJ->getNrOfTries() ? $this->testOBJ->getNrOfTries() : 1);
965 $nr_of_tries->setRequired(
true);
966 if ($this->testOBJ->participantDataExist()) {
967 $limitPasses->setDisabled(
true);
968 $nr_of_tries->setDisabled(
true);
970 $limitPasses->addSubItem($nr_of_tries);
974 $pass_waiting_enabled =
new ilCheckboxInputGUI($this->lng->txt(
'tst_pass_waiting_enabled'),
'pass_waiting_enabled');
975 $pass_waiting_enabled->
setInfo($this->lng->txt(
'tst_pass_waiting_info'));
976 $pass_waiting_enabled->setChecked($this->testOBJ->isPassWaitingEnabled());
979 $duration =
new ilDurationInputGUI($this->lng->txt(
"tst_pass_waiting_time"),
"pass_waiting");
982 $duration->setShowDays(
true);
983 $duration->setShowHours(
true);
984 $duration->setShowMinutes(
true);
986 $pw_time_array = explode(
':', $this->testOBJ->getPassWaiting());
987 $duration->setMonths($pw_time_array[0]);
988 $duration->setDays($pw_time_array[1]);
989 $duration->setHours($pw_time_array[2]);
990 $duration->setMinutes($pw_time_array[3]);
991 $duration->setRequired(
false);
992 $pass_waiting_enabled->addSubItem($duration);
994 $form->
addItem($pass_waiting_enabled);
997 $processing =
new ilCheckboxInputGUI($this->lng->txt(
"tst_processing_time"),
"chb_processing_time");
998 $processing->
setInfo($this->lng->txt(
"tst_processing_time_desc"));
999 $processing->setValue(1);
1002 $processing->setChecked(
true);
1004 $processing->setChecked($this->testOBJ->getEnableProcessingTime());
1008 $processingtime =
new ilNumberInputGUI($this->lng->txt(
"tst_processing_time_duration"),
'processing_time');
1010 $processingtime->setMinValue(1);
1011 $processingtime->setMinvalueShouldBeGreater(
false);
1012 $processingtime->setValue($this->testOBJ->getProcessingTimeAsMinutes());
1013 $processingtime->setSize(5);
1014 $processingtime->setSuffix($this->lng->txt(
'minutes'));
1015 $processingtime->setInfo($this->lng->txt(
"tst_processing_time_duration_desc"));
1016 $processing->addSubItem($processingtime);
1020 $resetprocessing->setValue(1);
1021 $resetprocessing->setOptionTitle($this->lng->txt(
"tst_reset_processing_time"));
1022 $resetprocessing->setChecked($this->testOBJ->getResetProcessingTime());
1023 $resetprocessing->setInfo($this->lng->txt(
"tst_reset_processing_time_desc"));
1024 $processing->addSubItem($resetprocessing);
1027 if ($this->testOBJ->participantDataExist()) {
1028 $processing->setDisabled(
true);
1029 $processingtime->setDisabled(
true);
1030 $resetprocessing->setDisabled(
true);
1032 $duration->setDisabled(
true);
1033 $pass_waiting_enabled->setDisabled(
true);
1039 $kiosk->setChecked($this->testOBJ->getKioskMode());
1040 $kiosk->setInfo($this->lng->txt(
"kiosk_description"));
1045 $kiosktitle->addOption(
new ilCheckboxOption($this->lng->txt(
"kiosk_show_participant"),
'kiosk_participant',
''));
1047 if ($this->testOBJ->getShowKioskModeTitle()) {
1048 array_push(
$values,
'kiosk_title');
1050 if ($this->testOBJ->getShowKioskModeParticipant()) {
1051 array_push(
$values,
'kiosk_participant');
1053 $kiosktitle->setValue(
$values);
1054 $kiosktitle->setInfo($this->lng->txt(
"kiosk_options_desc"));
1055 $kiosk->addSubItem($kiosktitle);
1059 $examIdInPass =
new ilCheckboxInputGUI($this->lng->txt(
'examid_in_test_pass'),
'examid_in_test_pass');
1060 $examIdInPass->
setInfo($this->lng->txt(
'examid_in_test_pass_desc'));
1061 $examIdInPass->setChecked($this->testOBJ->isShowExamIdInTestPassEnabled());
1062 $form->
addItem($examIdInPass);
1070 if (!$this->testOBJ->participantDataExist()) {
1074 $this->testOBJ->setNrOfTries($form->
getItemByPostVar(
'nr_of_tries')->getValue());
1076 $this->testOBJ->setNrOfTries(0);
1085 $pass_waiting_duration[] = sprintf(
"%'.02d", $pass_waiting_values->getMonths());
1086 $pass_waiting_duration[] = sprintf(
"%'.03d", $pass_waiting_values->getDays());
1087 $pass_waiting_duration[] = sprintf(
"%'.02d", $pass_waiting_values->getHours());
1088 $pass_waiting_duration[] = sprintf(
"%'.02d", $pass_waiting_values->getMinutes());
1089 $pass_waiting_duration[] = sprintf(
"%'.02d", $pass_waiting_values->getSeconds());
1091 $pass_waiting_string = implode(
':', $pass_waiting_duration);
1092 $this->testOBJ->setPassWaiting($pass_waiting_string);
1094 $this->testOBJ->setPassWaiting(
"00:000:00:00:00");
1098 $this->testOBJ->setEnableProcessingTime($form->
getItemByPostVar(
'chb_processing_time')->getChecked());
1099 if ($this->testOBJ->getEnableProcessingTime()) {
1100 $this->testOBJ->setProcessingTimeByMinutes($form->
getItemByPostVar(
'processing_time')->getValue());
1101 $this->testOBJ->setResetProcessingTime($form->
getItemByPostVar(
'chb_reset_processing_time')->getChecked());
1103 $this->testOBJ->setProcessingTime(
'');
1104 $this->testOBJ->setResetProcessingTime(
false);
1109 $this->testOBJ->setKioskMode($form->
getInput(
'kiosk'));
1111 if (is_array($kioskOptions)) {
1112 $this->testOBJ->setShowKioskModeTitle(in_array(
'kiosk_title', $kioskOptions));
1113 $this->testOBJ->setShowKioskModeParticipant(in_array(
'kiosk_participant', $kioskOptions));
1115 $this->testOBJ->setShowKioskModeTitle(
false);
1116 $this->testOBJ->setShowKioskModeParticipant(
false);
1122 $this->testOBJ->setShowExamIdInTestPassEnabled($value);
1132 'title_output',
'autosave',
'chb_shuffle_questions',
'chb_shuffle_questions',
1133 'offer_hints',
'instant_feedback_contents',
'instant_feedback_trigger',
1134 'answer_fixation_handling',
'obligations_enabled' 1140 $seqheader->setTitle($this->lng->txt(
"tst_presentation_properties"));
1147 $title_output->addOption(
new ilRadioOption($this->lng->txt(
"tst_title_output_hide_points"), 1,
''));
1148 $title_output->addOption(
new ilRadioOption($this->lng->txt(
"tst_title_output_no_title"), 2,
''));
1149 $title_output->setValue($this->testOBJ->getTitleOutput());
1150 $form->
addItem($title_output);
1155 $autosave_output->setChecked($this->testOBJ->getAutosave());
1156 $autosave_output->setInfo($this->lng->txt(
'autosave_info'));
1157 $autosave_interval =
new ilTextInputGUI($this->lng->txt(
'autosave_ival'),
'autosave_ival');
1158 $autosave_interval->
setSize(10);
1159 $autosave_interval->setValue($this->testOBJ->getAutosaveIval() / 1000);
1160 $autosave_interval->setSuffix($this->lng->txt(
'seconds'));
1161 $autosave_output->addSubItem($autosave_interval);
1162 $form->
addItem($autosave_output);
1165 $shuffle =
new ilCheckboxInputGUI($this->lng->txt(
"tst_shuffle_questions"),
"chb_shuffle_questions");
1167 $shuffle->setChecked($this->testOBJ->getShuffleQuestions());
1168 $shuffle->setInfo($this->lng->txt(
"tst_shuffle_questions_description"));
1172 $checkBoxOfferHints =
new ilCheckboxInputGUI($this->lng->txt(
'tst_setting_offer_hints_label'),
'offer_hints');
1173 $checkBoxOfferHints->
setChecked($this->testOBJ->isOfferingQuestionHintsEnabled());
1174 $checkBoxOfferHints->setInfo($this->lng->txt(
'tst_setting_offer_hints_info'));
1175 $form->
addItem($checkBoxOfferHints);
1178 $instant_feedback_enabled =
new ilCheckboxInputGUI($this->lng->txt(
'tst_instant_feedback'),
'instant_feedback_enabled');
1179 $instant_feedback_enabled->
setInfo($this->lng->txt(
'tst_instant_feedback_desc'));
1180 $instant_feedback_enabled->setChecked($this->testOBJ->isAnyInstantFeedbackOptionEnabled());
1181 $form->
addItem($instant_feedback_enabled);
1182 $instant_feedback_contents =
new ilCheckboxGroupInputGUI($this->lng->txt(
'tst_instant_feedback_contents'),
'instant_feedback_contents');
1185 $this->lng->txt(
'tst_instant_feedback_results'),
1186 'instant_feedback_points',
1187 $this->lng->txt(
'tst_instant_feedback_results_desc')
1190 $this->lng->txt(
'tst_instant_feedback_answer_generic'),
1191 'instant_feedback_generic',
1192 $this->lng->txt(
'tst_instant_feedback_answer_generic_desc')
1195 $this->lng->txt(
'tst_instant_feedback_answer_specific'),
1196 'instant_feedback_specific',
1197 $this->lng->txt(
'tst_instant_feedback_answer_specific_desc')
1200 $this->lng->txt(
'tst_instant_feedback_solution'),
1201 'instant_feedback_solution',
1202 $this->lng->txt(
'tst_instant_feedback_solution_desc')
1204 $instant_feedback_contents->setValue($this->testOBJ->getInstantFeedbackOptionsAsArray());
1205 $instant_feedback_enabled->addSubItem($instant_feedback_contents);
1207 $this->lng->txt(
'tst_instant_feedback_trigger'),
1208 'instant_feedback_trigger' 1211 $this->lng->txt(
'tst_instant_feedback_trigger_manual'),
1212 self::INSTANT_FEEDBACK_TRIGGER_MANUAL
1214 $ifbTriggerOpt->
setInfo($this->lng->txt(
'tst_instant_feedback_trigger_manual_desc'));
1215 $instant_feedback_trigger->addOption($ifbTriggerOpt);
1217 $this->lng->txt(
'tst_instant_feedback_trigger_forced'),
1218 self::INSTANT_FEEDBACK_TRIGGER_FORCED
1220 $ifbTriggerOpt->
setInfo($this->lng->txt(
'tst_instant_feedback_trigger_forced_desc'));
1221 $instant_feedback_trigger->addOption($ifbTriggerOpt);
1222 $instant_feedback_trigger->setValue($this->testOBJ->isForceInstantFeedbackEnabled());
1223 $instant_feedback_enabled->addSubItem($instant_feedback_trigger);
1226 $this->lng->txt(
'tst_answer_fixation_handling'),
1227 'answer_fixation_handling' 1230 $this->lng->txt(
'tst_answer_fixation_none'),
1231 self::ANSWER_FIXATION_NONE
1233 $radioOption->
setInfo($this->lng->txt(
'tst_answer_fixation_none_desc'));
1234 $answerFixation->addOption($radioOption);
1236 $this->lng->txt(
'tst_answer_fixation_on_instant_feedback'),
1237 self::ANSWER_FIXATION_ON_INSTANT_FEEDBACK
1239 $radioOption->
setInfo($this->lng->txt(
'tst_answer_fixation_on_instant_feedback_desc'));
1240 $answerFixation->addOption($radioOption);
1242 $this->lng->txt(
'tst_answer_fixation_on_followup_question'),
1243 self::ANSWER_FIXATION_ON_FOLLOWUP_QUESTION
1245 $radioOption->
setInfo($this->lng->txt(
'tst_answer_fixation_on_followup_question_desc'));
1246 $answerFixation->addOption($radioOption);
1248 $this->lng->txt(
'tst_answer_fixation_on_instantfb_or_followupqst'),
1249 self::ANSWER_FIXATION_ON_IFB_OR_FUQST
1251 $radioOption->
setInfo($this->lng->txt(
'tst_answer_fixation_on_instantfb_or_followupqst_desc'));
1252 $answerFixation->addOption($radioOption);
1254 $form->
addItem($answerFixation);
1257 $checkBoxEnableObligations =
new ilCheckboxInputGUI($this->lng->txt(
'tst_setting_enable_obligations_label'),
'obligations_enabled');
1258 $checkBoxEnableObligations->
setChecked($this->testOBJ->areObligationsEnabled());
1259 $checkBoxEnableObligations->setInfo($this->lng->txt(
'tst_setting_enable_obligations_info'));
1260 $form->
addItem($checkBoxEnableObligations);
1264 require_once
'Services/UIComponent/CharSelector/classes/class.ilCharSelectorGUI.php';
1266 $char_selector->getConfig()->setAvailability($this->testOBJ->getCharSelectorAvailability());
1267 $char_selector->getConfig()->setDefinition($this->testOBJ->getCharSelectorDefinition());
1268 $char_selector->addFormProperties($form);
1269 $char_selector->setFormValues($form);
1272 if ($this->testOBJ->participantDataExist()) {
1273 $checkBoxOfferHints->setDisabled(
true);
1274 $instant_feedback_enabled->setDisabled(
true);
1275 $instant_feedback_trigger->setDisabled(
true);
1276 $instant_feedback_contents->setDisabled(
true);
1277 $answerFixation->setDisabled(
true);
1278 $checkBoxEnableObligations->setDisabled(
true);
1288 $this->testOBJ->setTitleOutput($form->
getItemByPostVar(
'title_output')->getValue());
1292 $this->testOBJ->setAutosave($form->
getItemByPostVar(
'autosave')->getChecked());
1293 $this->testOBJ->setAutosaveIval($form->
getItemByPostVar(
'autosave_ival')->getValue() * 1000);
1297 $this->testOBJ->setShuffleQuestions($form->
getItemByPostVar(
'chb_shuffle_questions')->getChecked());
1300 if (!$this->testOBJ->participantDataExist() && $this->
formPropertyExists($form,
'offer_hints')) {
1301 $this->testOBJ->setOfferingQuestionHintsEnabled($form->
getItemByPostVar(
'offer_hints')->getChecked());
1304 if (!$this->testOBJ->participantDataExist() && $this->
formPropertyExists($form,
'instant_feedback_enabled')) {
1307 $this->testOBJ->setInstantFeedbackOptionsByArray(
1312 $this->testOBJ->setForceInstantFeedbackEnabled(
1317 $this->testOBJ->setInstantFeedbackOptionsByArray(array());
1318 $this->testOBJ->setForceInstantFeedbackEnabled(
false);
1322 if (!$this->testOBJ->participantDataExist() && $this->
formPropertyExists($form,
'answer_fixation_handling')) {
1326 if (!$this->testOBJ->participantDataExist() && $this->
formPropertyExists($form,
'obligations_enabled')) {
1327 $this->testOBJ->setObligationsEnabled($form->
getItemByPostVar(
'obligations_enabled')->getChecked());
1331 require_once
'Services/UIComponent/CharSelector/classes/class.ilCharSelectorGUI.php';
1333 $char_selector->addFormProperties($form);
1334 $char_selector->getFormValues($form);
1335 $this->testOBJ->setCharSelectorAvailability($char_selector->getConfig()->getAvailability());
1336 $this->testOBJ->setCharSelectorDefinition($char_selector->getConfig()->getDefinition());
1347 $seqheader->setTitle($this->lng->txt(
"tst_sequence_properties"));
1351 $prevanswers =
new ilCheckboxInputGUI($this->lng->txt(
"tst_use_previous_answers"),
"chb_use_previous_answers");
1353 $prevanswers->setChecked($this->testOBJ->getUsePreviousAnswers());
1354 $prevanswers->setInfo($this->lng->txt(
"tst_use_previous_answers_description"));
1358 $cancel =
new ilCheckboxInputGUI($this->lng->txt(
"tst_show_cancel"),
"chb_show_cancel");
1360 $cancel->setChecked($this->testOBJ->getShowCancel());
1361 $cancel->setInfo($this->lng->txt(
"tst_show_cancel_description"));
1367 $this->lng->txt(
"tst_postpone_off"),
1369 $this->lng->txt(
"tst_postpone_off_desc")
1372 $this->lng->txt(
"tst_postpone_on"),
1374 $this->lng->txt(
"tst_postpone_on_desc")
1376 $postpone->setValue((
int) $this->testOBJ->getSequenceSettings());
1380 $list_of_questions =
new ilCheckboxInputGUI($this->lng->txt(
"tst_show_summary"),
"list_of_questions");
1383 $list_of_questions->setChecked($this->testOBJ->getListOfQuestions());
1384 $list_of_questions->setInfo($this->lng->txt(
"tst_show_summary_description"));
1387 $list_of_questions_options->addOption(
new ilCheckboxOption($this->lng->txt(
"tst_list_of_questions_start"),
'chb_list_of_questions_start',
''));
1388 $list_of_questions_options->addOption(
new ilCheckboxOption($this->lng->txt(
"tst_list_of_questions_end"),
'chb_list_of_questions_end',
''));
1389 $list_of_questions_options->addOption(
new ilCheckboxOption($this->lng->txt(
"tst_list_of_questions_with_description"),
'chb_list_of_questions_with_description',
''));
1391 if ($this->testOBJ->getListOfQuestionsStart()) {
1392 array_push(
$values,
'chb_list_of_questions_start');
1394 if ($this->testOBJ->getListOfQuestionsEnd()) {
1395 array_push(
$values,
'chb_list_of_questions_end');
1397 if ($this->testOBJ->getListOfQuestionsDescription()) {
1398 array_push(
$values,
'chb_list_of_questions_with_description');
1400 $list_of_questions_options->setValue(
$values);
1402 $list_of_questions->addSubItem($list_of_questions_options);
1403 $form->
addItem($list_of_questions);
1406 $marking =
new ilCheckboxInputGUI($this->lng->txt(
"question_marking"),
"chb_show_marker");
1408 $marking->setChecked($this->testOBJ->getShowMarker());
1409 $marking->setInfo($this->lng->txt(
"question_marking_description"));
1419 $this->testOBJ->setUsePreviousAnswers($form->
getInput(
'chb_use_previous_answers'));
1423 $this->testOBJ->setShowCancel($form->
getItemByPostVar(
'chb_show_cancel')->getChecked());
1427 $this->testOBJ->setPostponingEnabled((
bool) $form->
getItemByPostVar(
'postpone')->getValue());
1430 $this->testOBJ->setListOfQuestions($form->
getItemByPostVar(
'list_of_questions')->getChecked());
1431 $listOfQuestionsOptions = $form->
getItemByPostVar(
'list_of_questions_options')->getValue();
1432 if (is_array($listOfQuestionsOptions)) {
1433 $this->testOBJ->setListOfQuestionsStart(in_array(
'chb_list_of_questions_start', $listOfQuestionsOptions));
1434 $this->testOBJ->setListOfQuestionsEnd(in_array(
'chb_list_of_questions_end', $listOfQuestionsOptions));
1435 $this->testOBJ->setListOfQuestionsDescription(in_array(
'chb_list_of_questions_with_description', $listOfQuestionsOptions));
1437 $this->testOBJ->setListOfQuestionsStart(0);
1438 $this->testOBJ->setListOfQuestionsEnd(0);
1439 $this->testOBJ->setListOfQuestionsDescription(0);
1443 $this->testOBJ->setShowMarker($form->
getItemByPostVar(
'chb_show_marker')->getChecked());
1453 $testFinishHeader->setTitle($this->lng->txt(
"tst_final_information"));
1454 $form->
addItem($testFinishHeader);
1457 $enable_examview =
new ilCheckboxInputGUI($this->lng->txt(
"enable_examview"),
'enable_examview');
1459 $enable_examview->setChecked($this->testOBJ->getEnableExamview());
1460 $enable_examview->setInfo($this->lng->txt(
"enable_examview_desc"));
1462 $show_examview_pdf->setValue(1);
1463 $show_examview_pdf->setChecked($this->testOBJ->getShowExamviewPdf());
1464 $show_examview_pdf->setOptionTitle($this->lng->txt(
"show_examview_pdf"));
1465 $enable_examview->addSubItem($show_examview_pdf);
1466 $form->
addItem($enable_examview);
1469 $showfinal =
new ilCheckboxInputGUI($this->lng->txt(
"final_statement"),
"showfinalstatement");
1470 $showfinal->
setChecked($this->testOBJ->getShowFinalStatement());
1471 $showfinal->setInfo($this->lng->txt(
"final_statement_show_desc"));
1474 $finalstatement =
new ilTextAreaInputGUI($this->lng->txt(
"final_statement"),
"finalstatement");
1476 $finalstatement->setValue($this->testOBJ->prepareTextareaOutput($this->testOBJ->getFinalStatement(),
false,
true));
1477 $finalstatement->setRows(10);
1478 $finalstatement->setCols(80);
1479 $finalstatement->setUseRte(
true);
1480 $finalstatement->addPlugin(
"latex");
1481 $finalstatement->addButton(
"latex");
1482 $finalstatement->setRTESupport($this->testOBJ->getId(),
"tst",
"assessment");
1483 $finalstatement->setRteTagSet(
'full');
1484 $showfinal->addSubItem($finalstatement);
1486 $redirection_mode = $this->testOBJ->getRedirectionMode();
1487 $rm_enabled =
new ilCheckboxInputGUI($this->lng->txt(
'redirect_after_finishing_tst'),
'redirection_enabled');
1488 $rm_enabled->
setInfo($this->lng->txt(
'redirect_after_finishing_tst_desc'));
1489 $rm_enabled->setChecked($redirection_mode ==
'0' ?
false :
true);
1490 $radio_rm =
new ilRadioGroupInputGUI($this->lng->txt(
'redirect_after_finishing_rule'),
'redirection_mode');
1492 $radio_rm->addOption($always);
1494 $radio_rm->addOption($kiosk);
1496 $rm_enabled->addSubItem($radio_rm);
1497 $redirection_url =
new ilTextInputGUI($this->lng->txt(
'redirection_url'),
'redirection_url');
1498 $redirection_url->
setValue((
string) $this->testOBJ->getRedirectionUrl());
1499 $redirection_url->setRequired(
true);
1500 $rm_enabled->addSubItem($redirection_url);
1505 $sign_submission = $this->testOBJ->getSignSubmission();
1506 $sign_submission_enabled =
new ilCheckboxInputGUI($this->lng->txt(
'sign_submission'),
'sign_submission');
1507 $sign_submission_enabled->
setChecked($sign_submission);
1508 $sign_submission_enabled->setInfo($this->lng->txt(
'sign_submission_info'));
1509 $form->
addItem($sign_submission_enabled);
1512 $mailnotification =
new ilCheckboxInputGUI($this->lng->txt(
"tst_finish_notification"),
"mailnotification");
1513 $mailnotification->
setInfo($this->lng->txt(
"tst_finish_notification_desc"));
1514 $mailnotification->setChecked($this->testOBJ->getMailNotification() > 0);
1515 $form->
addItem($mailnotification);
1517 $mailnotificationContent =
new ilRadioGroupInputGUI($this->lng->txt(
"tst_finish_notification_content"),
"mailnotification_content");
1518 $mailnotificationContent->
addOption(
new ilRadioOption($this->lng->txt(
"tst_finish_notification_simple"), 1,
''));
1519 $mailnotificationContent->addOption(
new ilRadioOption($this->lng->txt(
"tst_finish_notification_advanced"), 2,
''));
1520 $mailnotificationContent->setValue($this->testOBJ->getMailNotification() ? $this->testOBJ->getMailNotification() : 1);
1521 $mailnotificationContent->setRequired(
true);
1522 $mailnotification->addSubItem($mailnotificationContent);
1525 $mailnottype->setValue(1);
1526 $mailnottype->setOptionTitle($this->lng->txt(
"mailnottype"));
1527 $mailnottype->setChecked($this->testOBJ->getMailNotificationType());
1528 $mailnotification->addSubItem($mailnottype);
1537 $this->testOBJ->setEnableExamview($form->
getItemByPostVar(
'enable_examview')->getChecked());
1538 $this->testOBJ->setShowExamviewPdf($form->
getItemByPostVar(
'show_examview_pdf')->getChecked());
1541 $this->testOBJ->setShowFinalStatement($form->
getItemByPostVar(
'showfinalstatement')->getChecked());
1545 $this->testOBJ->setRedirectionMode($form->
getItemByPostVar(
'redirection_mode')->getValue());
1550 $this->testOBJ->setRedirectionUrl($form->
getItemByPostVar(
'redirection_url')->getValue());
1552 $this->testOBJ->setRedirectionUrl(null);
1556 $this->testOBJ->setSignSubmission($form->
getItemByPostVar(
'sign_submission')->getChecked());
1560 $this->testOBJ->setMailNotification($form->
getItemByPostVar(
'mailnotification_content')->getValue());
1561 $this->testOBJ->setMailNotificationType($form->
getItemByPostVar(
'mailnottype')->getChecked());
1563 $this->testOBJ->setMailNotification(0);
1564 $this->testOBJ->setMailNotificationType(
false);
1570 switch ($formValue) {
1571 case self::ANSWER_FIXATION_NONE:
1572 $this->testOBJ->setInstantFeedbackAnswerFixationEnabled(
false);
1573 $this->testOBJ->setFollowupQuestionAnswerFixationEnabled(
false);
1575 case self::ANSWER_FIXATION_ON_INSTANT_FEEDBACK:
1576 $this->testOBJ->setInstantFeedbackAnswerFixationEnabled(
true);
1577 $this->testOBJ->setFollowupQuestionAnswerFixationEnabled(
false);
1579 case self::ANSWER_FIXATION_ON_FOLLOWUP_QUESTION:
1580 $this->testOBJ->setInstantFeedbackAnswerFixationEnabled(
false);
1581 $this->testOBJ->setFollowupQuestionAnswerFixationEnabled(
true);
1583 case self::ANSWER_FIXATION_ON_IFB_OR_FUQST:
1584 $this->testOBJ->setInstantFeedbackAnswerFixationEnabled(
true);
1585 $this->testOBJ->setFollowupQuestionAnswerFixationEnabled(
true);
1592 if ($this->testOBJ->isInstantFeedbackAnswerFixationEnabled() && $this->testOBJ->isFollowupQuestionAnswerFixationEnabled()) {
1593 return self::ANSWER_FIXATION_ON_IFB_OR_FUQST;
1596 if ($this->testOBJ->isFollowupQuestionAnswerFixationEnabled()) {
1597 return self::ANSWER_FIXATION_ON_FOLLOWUP_QUESTION;
1600 if ($this->testOBJ->isInstantFeedbackAnswerFixationEnabled()) {
1601 return self::ANSWER_FIXATION_ON_INSTANT_FEEDBACK;
1604 return self::ANSWER_FIXATION_NONE;
saveGeneralProperties(ilPropertyFormGUI $form)
addAvailabilityProperties(ilPropertyFormGUI $form)
This class represents an option in a radio group.
This class provides processing control methods.
const INSTANT_FEEDBACK_TRIGGER_FORCED
saveTestFinishProperties(ilPropertyFormGUI $form)
showResetTemplateConfirmationCmd()
Enable all settings - Confirmation.
This class represents an option in a checkbox group.
static _getUsedHTMLTagsAsString($a_module="")
Returns a string of all allowed HTML tags for text editing.
performSaveForm(ilPropertyFormGUI $form)
const QUESTION_SET_TYPE_RANDOM
type setting value for random question set
This shows a character selector.
saveTestSequenceSettings(ilPropertyFormGUI $form)
const ANSWER_FIXATION_NONE
const CMD_SHOW_RESET_TPL_CONFIRM
getAnswerFixationSettingsAsFormValue()
removeHiddenItems(ilPropertyFormGUI $form)
const REDIRECT_NONE
Redirect after finishing test constants.
savePresentationProperties(ilPropertyFormGUI $form)
setInfo($a_info)
Set Info.
$testQuestionSetConfigFactory
static _getAllReferences($a_id)
get all reference ids of object
__construct(ilCtrl $ctrl, ilAccessHandler $access, ilLanguage $lng, ilTemplate $tpl, ilTree $tree, ilDBInterface $db, ilPluginAdmin $pluginAdmin, ilObjUser $activeUser, ilObjTestGUI $testGUI)
Constructor.
Interface ilAccessHandler.
static getInstance()
Get instance.
Administration class for plugins.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
setAnswerFixationSettingsByFormValue($formValue)
const ANSWER_FIXATION_ON_INSTANT_FEEDBACK
addQuestionBehaviourProperties(ilPropertyFormGUI $form)
setValue($a_value)
Set Value.
const INSTANT_FEEDBACK_TRIGGER_MANUAL
const CMD_CONFIRMED_SAVE_FORM
if(isset($_POST['submit'])) $form
isSectionHeaderRequired($fields)
special template class to simplify handling of ITX/PEAR
setSize($a_size)
Set Size.
addGeneralProperties(ilPropertyFormGUI $form)
This class represents a text property in a property form.
setCols($a_cols)
Set Cols.
saveTestAccessProperties(ilPropertyFormGUI $form)
saveTestIntroProperties(ilPropertyFormGUI $form)
saveQuestionBehaviourProperties(ilPropertyFormGUI $form)
static isSkillManagementGloballyActivated()
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
isCharSelectorPropertyRequired()
static updateServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Update service settings.
const CMD_CONFIRMED_RESET_TPL
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
executeCommand()
Command Execution.
addTestFinishProperties(ilPropertyFormGUI $form)
addTestRunProperties(ilPropertyFormGUI $form)
addTestSequenceProperties(ilPropertyFormGUI $form)
addTestIntroProperties(ilPropertyFormGUI $form)
getTemplateSettingValue($settingName)
showConfirmation(ilPropertyFormGUI $form, $oldQuestionSetType, $newQuestionSetType, $hasQuestionsWithoutQuestionpool)
getSettingsTemplateMessageHTML()
This class represents a text area property in a property form.
isSkillServiceSettingToBeAdjusted(ilPropertyFormGUI $form)
showFormCmd(ilPropertyFormGUI $form=null)
static initServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Init service settings form.
const QUESTION_SET_TYPE_FIXED
type setting value for fixed question set
formPropertyExists(ilPropertyFormGUI $form, $propertyId)
addPresentationProperties(ilPropertyFormGUI $form)
saveFormCmd($isConfirmedSave=false)
const ANSWER_FIXATION_ON_IFB_OR_FUQST
setValue($a_value)
Set Value.
const ORGU_POSITION_ACCESS
saveTestRunProperties(ilPropertyFormGUI $form)
const QUESTION_SET_TYPE_DYNAMIC
type setting value for dynamic question set (continues testing mode)
addTestAccessProperties(ilPropertyFormGUI $form)
saveAvailabilityProperties(ilPropertyFormGUI $form)
const ANSWER_FIXATION_ON_FOLLOWUP_QUESTION
const CMD_SHOW_FORM
command constants
confirmedResetTemplateCmd()
Enable all settings - remove template.
Confirmation screen class.