ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilObjTestSettingsGeneralGUI Class Reference
+ Inheritance diagram for ilObjTestSettingsGeneralGUI:
+ Collaboration diagram for ilObjTestSettingsGeneralGUI:

Public Member Functions

 __construct (ilCtrl $ctrl, ilAccessHandler $access, ilLanguage $lng, ilTree $tree, ilDBInterface $db, ilPluginAdmin $pluginAdmin, ilObjUser $activeUser, ilObjTestGUI $testGUI)
 Constructor. More...
 
 executeCommand ()
 Command Execution. More...
 
- Public Member Functions inherited from ilTestSettingsGUI
 __construct (ilObjTest $testOBJ)
 

Data Fields

const CMD_SHOW_FORM = 'showForm'
 command constants More...
 
const CMD_SAVE_FORM = 'saveForm'
 
const CMD_CONFIRMED_SAVE_FORM = 'confirmedSaveForm'
 
const CMD_SHOW_RESET_TPL_CONFIRM = 'showResetTemplateConfirmation'
 
const CMD_CONFIRMED_RESET_TPL = 'confirmedResetTemplate'
 
const ANSWER_FIXATION_NONE = 'none'
 
const ANSWER_FIXATION_ON_INSTANT_FEEDBACK = 'instant_feedback'
 
const ANSWER_FIXATION_ON_FOLLOWUP_QUESTION = 'followup_question'
 
const ANSWER_FIXATION_ON_IFB_OR_FUQST = 'ifb_or_fuqst'
 
const INSTANT_FEEDBACK_TRIGGER_MANUAL = 0
 
const INSTANT_FEEDBACK_TRIGGER_FORCED = 1
 

Protected Member Functions

 getSettingsTemplateMessageHTML ()
 
 addPresentationProperties (ilPropertyFormGUI $form)
 
 savePresentationProperties (ilPropertyFormGUI $form)
 
 setAnswerFixationSettingsByFormValue ($formValue)
 
 getAnswerFixationSettingsAsFormValue ()
 
- Protected Member Functions inherited from ilTestSettingsGUI
 getTemplateSettingValue ($settingName)
 
 isHiddenFormItem ($formFieldId)
 
 isSectionHeaderRequired ($fields)
 
 formPropertyExists (ilPropertyFormGUI $form, $propertyId)
 
 removeHiddenItems (ilPropertyFormGUI $form)
 

Protected Attributes

 $ctrl = null
 
 $access = null
 
 $lng = null
 
 $tpl = null
 
 $tree = null
 
 $db = null
 
 $pluginAdmin = null
 
 $activeUser = null
 
 $testGUI = null
 
- Protected Attributes inherited from ilTestSettingsGUI
 $testOBJ = null
 
 $settingsTemplate = null
 

Private Member Functions

 showFormCmd (ilPropertyFormGUI $form=null)
 
 showConfirmation (ilPropertyFormGUI $form, $oldQuestionSetType, $newQuestionSetType, $hasQuestionsWithoutQuestionpool)
 
 confirmedSaveFormCmd ()
 
 saveFormCmd ($isConfirmedSave=false)
 
 showResetTemplateConfirmationCmd ()
 Enable all settings - Confirmation. More...
 
 confirmedResetTemplateCmd ()
 Enable all settings - remove template. More...
 
 isSkillServiceSettingToBeAdjusted (ilPropertyFormGUI $form)
 
 isCharSelectorPropertyRequired ()
 
 buildForm ()
 
 performSaveForm (ilPropertyFormGUI $form)
 
 addGeneralProperties (ilPropertyFormGUI $form)
 
 saveGeneralProperties (ilPropertyFormGUI $form)
 
 addAvailabilityProperties (ilPropertyFormGUI $form)
 
 saveAvailabilityProperties (ilPropertyFormGUI $form)
 
 addTestIntroProperties (ilPropertyFormGUI $form)
 
 saveTestIntroProperties (ilPropertyFormGUI $form)
 
 addTestAccessProperties (ilPropertyFormGUI $form)
 
 saveTestAccessProperties (ilPropertyFormGUI $form)
 
 addTestRunProperties (ilPropertyFormGUI $form)
 
 saveTestRunProperties (ilPropertyFormGUI $form)
 
 addQuestionBehaviourProperties (ilPropertyFormGUI $form)
 
 saveQuestionBehaviourProperties (ilPropertyFormGUI $form)
 
 addTestSequenceProperties (ilPropertyFormGUI $form)
 
 saveTestSequenceSettings (ilPropertyFormGUI $form)
 
 addTestFinishProperties (ilPropertyFormGUI $form)
 
 saveTestFinishProperties (ilPropertyFormGUI $form)
 

Private Attributes

 $testQuestionSetConfigFactory = null
 

Detailed Description

Definition at line 20 of file class.ilObjTestSettingsGeneralGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilObjTestSettingsGeneralGUI::__construct ( ilCtrl  $ctrl,
ilAccessHandler  $access,
ilLanguage  $lng,
ilTree  $tree,
ilDBInterface  $db,
ilPluginAdmin  $pluginAdmin,
ilObjUser  $activeUser,
ilObjTestGUI  $testGUI 
)

Constructor.

Parameters
ilCtrl$ctrl
ilAccessHandler$access
ilLanguage$lng
ilTemplate$tpl
ilDBInterface$db
ilObjTestGUI$testGUI
Returns
\ilObjTestSettingsGeneralGUI

Definition at line 81 of file class.ilObjTestSettingsGeneralGUI.php.

90 {
91 global $DIC; /* @var ILIAS\DI\Container $DIC */
92
93 $this->ctrl = $ctrl;
94 $this->access = $access;
95 $this->lng = $lng;
96 $this->tpl = $DIC->ui()->mainTemplate();
97 $this->tree = $tree;
98 $this->db = $db;
99 $this->pluginAdmin = $pluginAdmin;
100 $this->activeUser = $activeUser;
101
102 $this->testGUI = $testGUI;
103
104 require_once 'Modules/Test/classes/class.ilTestQuestionSetConfigFactory.php';
105 $this->testQuestionSetConfigFactory = new ilTestQuestionSetConfigFactory($this->tree, $this->db, $this->pluginAdmin, $testGUI->object);
106
108 }
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
$DIC
Definition: xapitoken.php:46

References $access, $activeUser, $ctrl, $db, $DIC, $lng, $pluginAdmin, $testGUI, $tree, and ILIAS\GlobalScreen\Provider\__construct().

+ Here is the call graph for this function:

Member Function Documentation

◆ addAvailabilityProperties()

ilObjTestSettingsGeneralGUI::addAvailabilityProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 667 of file class.ilObjTestSettingsGeneralGUI.php.

668 {
669 include_once "Services/Object/classes/class.ilObjectActivation.php";
670 $this->lng->loadLanguageModule('rep');
671
673 $section->setTitle($this->lng->txt('rep_activation_availability'));
674 $form->addItem($section);
675
676 // additional info only with multiple references
677 $act_obj_info = $act_ref_info = "";
678 if (sizeof(ilObject::_getAllReferences($this->testOBJ->getId())) > 1) {
679 $act_obj_info = ' ' . $this->lng->txt('rep_activation_online_object_info');
680 $act_ref_info = $this->lng->txt('rep_activation_access_ref_info');
681 }
682
683 $online = new ilCheckboxInputGUI($this->lng->txt('rep_activation_online'), 'online');
684 $online->setChecked(!$this->testOBJ->getOfflineStatus());
685 $online->setInfo($this->lng->txt('tst_activation_online_info') . $act_obj_info);
686 $form->addItem($online);
687
688 $act_type = new ilCheckboxInputGUI($this->lng->txt('rep_visibility_until'), 'activation_type');
689 $act_type->setChecked($this->testOBJ->isActivationLimited());
690 // $act_type->setInfo($this->lng->txt('tst_availability_until_info'));
691
692 include_once "Services/Form/classes/class.ilDateDurationInputGUI.php";
693 $dur = new ilDateDurationInputGUI($this->lng->txt("rep_time_period"), "access_period");
694 $dur->setRequired(true);
695 $dur->setShowTime(true);
696 $date = $this->testOBJ->getActivationStartingTime();
697 $dur->setStart(new ilDateTime($date ? $date : time(), IL_CAL_UNIX));
698 $dur->setStartText($this->lng->txt('rep_activation_limited_start'));
699 $date = $this->testOBJ->getActivationEndingTime();
700 $dur->setEnd(new ilDateTime($date ? $date : time(), IL_CAL_UNIX));
701 $dur->setEndText($this->lng->txt('rep_activation_limited_end'));
702 $act_type->addSubItem($dur);
703
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);
708
709 $form->addItem($act_type);
710 }
$section
Definition: Utf8Test.php:83
const IL_CAL_UNIX
This class represents a checkbox property in a property form.
input GUI for a time span (start and end date)
@classDescription Date and time handling
This class represents a section header in a property form.
static _getAllReferences($a_id)
get all reference ids of object
addItem($a_item)
Add Item (Property, SectionHeader).

References $section, ilObject\_getAllReferences(), ilPropertyFormGUI\addItem(), and IL_CAL_UNIX.

Referenced by buildForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addGeneralProperties()

ilObjTestSettingsGeneralGUI::addGeneralProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 535 of file class.ilObjTestSettingsGeneralGUI.php.

536 {
537 $header = new ilFormSectionHeaderGUI();
538 $header->setTitle($this->lng->txt("tst_general_properties"));
539 $form->addItem($header);
540
541 // title & description (meta data)
542
543 include_once 'Services/MetaData/classes/class.ilMD.php';
544 $md_obj = new ilMD($this->testOBJ->getId(), 0, "tst");
545 $md_section = $md_obj->getGeneral();
546
547 $title = new ilTextInputGUI($this->lng->txt("title"), "title");
548 $title->setRequired(true);
549 $title->setValue($md_section->getTitle());
550 $form->addItem($title);
551
552 $ids = $md_section->getDescriptionIds();
553 if ($ids) {
554 $desc_obj = $md_section->getDescription(array_pop($ids));
555
556 $desc = new ilTextAreaInputGUI($this->lng->txt("description"), "description");
557 $desc->setCols(50);
558 $desc->setRows(4);
559 $desc->setValue($desc_obj->getDescription());
560 $form->addItem($desc);
561 }
562
563 // pool usage
564 $pool_usage = new ilRadioGroupInputGUI($this->lng->txt('test_question_pool_usage'), 'use_pool');
565
566 $optional_qpl = new ilRadioOption($this->lng->txt('test_question_pool_usage_optional'), 1);
567 $optional_qpl->setInfo($this->lng->txt('test_question_pool_usage_optional_info'));
568 $pool_usage->addOption($optional_qpl);
569
570 $tst_directly = new ilRadioOption($this->lng->txt('test_question_pool_usage_tst_directly'), 0);
571 $tst_directly->setInfo($this->lng->txt('test_question_pool_usage_tst_directly_info'));
572 $pool_usage->addOption($tst_directly);
573
574 $pool_usage->setValue($this->testOBJ->getPoolUsage() ? 1 : 0);
575 $form->addItem($pool_usage);
576
577 // test mode (question set type)
578 $questSetType = new ilRadioGroupInputGUI($this->lng->txt("tst_question_set_type"), 'question_set_type');
579 $questSetTypeFixed = new ilRadioOption(
580 $this->lng->txt("tst_question_set_type_fixed"),
582 $this->lng->txt("tst_question_set_type_fixed_desc")
583 );
584 $questSetType->addOption($questSetTypeFixed);
585 $questSetTypeRandom = new ilRadioOption(
586 $this->lng->txt("tst_question_set_type_random"),
588 $this->lng->txt("tst_question_set_type_random_desc")
589 );
590 $questSetType->addOption($questSetTypeRandom);
591 $questSetTypeContinues = new ilRadioOption(
592 $this->lng->txt("tst_question_set_type_dynamic"),
594 $this->lng->txt("tst_question_set_type_dynamic_desc")
595 );
596 $questSetType->addOption($questSetTypeContinues);
597 $questSetType->setValue($this->testOBJ->getQuestionSetType());
598 if ($this->testOBJ->participantDataExist()) {
599 $questSetType->setDisabled(true);
600 }
601 $form->addItem($questSetType);
602
603 // anonymity
604 $anonymity = new ilRadioGroupInputGUI($this->lng->txt('tst_anonymity'), 'anonymity');
605 if ($this->testOBJ->participantDataExist()) {
606 $anonymity->setDisabled(true);
607 }
608 $rb = new ilRadioOption($this->lng->txt('tst_anonymity_no_anonymization'), 0);
609 $anonymity->addOption($rb);
610 $rb = new ilRadioOption($this->lng->txt('tst_anonymity_anonymous_test'), 1);
611 $anonymity->addOption($rb);
612 $anonymity->setValue((int) $this->testOBJ->getAnonymity());
613 $form->addItem($anonymity);
614 }
const QUESTION_SET_TYPE_DYNAMIC
type setting value for dynamic question set (continues testing mode)
const QUESTION_SET_TYPE_RANDOM
type setting value for random question set
const QUESTION_SET_TYPE_FIXED
type setting value for fixed question set
This class represents a property in a property form.
This class represents an option in a radio group.
This class represents a text area property in a property form.
This class represents a text property in a property form.

References ilPropertyFormGUI\addItem(), ilObjTest\QUESTION_SET_TYPE_DYNAMIC, ilObjTest\QUESTION_SET_TYPE_FIXED, and ilObjTest\QUESTION_SET_TYPE_RANDOM.

Referenced by buildForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addPresentationProperties()

ilObjTestSettingsGeneralGUI::addPresentationProperties ( ilPropertyFormGUI  $form)
protected
Parameters
ilPropertyFormGUI$form

Definition at line 733 of file class.ilObjTestSettingsGeneralGUI.php.

734 {
735 global $DIC; /* @var ILIAS\DI\Container $DIC */
736
738 $section->setTitle($this->lng->txt('tst_presentation_settings_section'));
739 $form->addItem($section);
740
741 $DIC->object()->commonSettings()->legacyForm($form, $this->testOBJ)->addTileImage();
742 }

References $DIC, $section, and ilPropertyFormGUI\addItem().

Referenced by buildForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addQuestionBehaviourProperties()

ilObjTestSettingsGeneralGUI::addQuestionBehaviourProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 1142 of file class.ilObjTestSettingsGeneralGUI.php.

1143 {
1144 $fields = array(
1145 'title_output', 'autosave', 'chb_shuffle_questions', 'chb_shuffle_questions',
1146 'offer_hints', 'instant_feedback_contents', 'instant_feedback_trigger',
1147 'answer_fixation_handling', 'obligations_enabled'
1148 );
1149
1150 if ($this->isSectionHeaderRequired($fields) || $this->isCharSelectorPropertyRequired()) {
1151 // sequence properties
1152 $seqheader = new ilFormSectionHeaderGUI();
1153 $seqheader->setTitle($this->lng->txt("tst_presentation_properties"));
1154 $form->addItem($seqheader);
1155 }
1156
1157 // question title output
1158 $title_output = new ilRadioGroupInputGUI($this->lng->txt("tst_title_output"), "title_output");
1159 $title_output->addOption(new ilRadioOption($this->lng->txt("tst_title_output_full"), 0, ''));
1160 $title_output->addOption(new ilRadioOption($this->lng->txt("tst_title_output_hide_points"), 1, ''));
1161 $title_output->addOption(new ilRadioOption($this->lng->txt("tst_title_output_no_title"), 2, ''));
1162 $title_output->setValue($this->testOBJ->getTitleOutput());
1163 $form->addItem($title_output);
1164
1165 // Autosave
1166 $autosave_output = new ilCheckboxInputGUI($this->lng->txt('autosave'), 'autosave');
1167 $autosave_output->setValue(1);
1168 $autosave_output->setChecked($this->testOBJ->getAutosave());
1169 $autosave_output->setInfo($this->lng->txt('autosave_info'));
1170 $autosave_interval = new ilTextInputGUI($this->lng->txt('autosave_ival'), 'autosave_ival');
1171 $autosave_interval->setSize(10);
1172 $autosave_interval->setValue($this->testOBJ->getAutosaveIval() / 1000);
1173 $autosave_interval->setSuffix($this->lng->txt('seconds'));
1174 $autosave_output->addSubItem($autosave_interval);
1175 $form->addItem($autosave_output);
1176
1177 // shuffle questions
1178 $shuffle = new ilCheckboxInputGUI($this->lng->txt("tst_shuffle_questions"), "chb_shuffle_questions");
1179 $shuffle->setValue(1);
1180 $shuffle->setChecked($this->testOBJ->getShuffleQuestions());
1181 $shuffle->setInfo($this->lng->txt("tst_shuffle_questions_description"));
1182 $form->addItem($shuffle);
1183
1184 // offer hints
1185 $checkBoxOfferHints = new ilCheckboxInputGUI($this->lng->txt('tst_setting_offer_hints_label'), 'offer_hints');
1186 $checkBoxOfferHints->setChecked($this->testOBJ->isOfferingQuestionHintsEnabled());
1187 $checkBoxOfferHints->setInfo($this->lng->txt('tst_setting_offer_hints_info'));
1188 $form->addItem($checkBoxOfferHints);
1189
1190 // instant feedback
1191 $instant_feedback_enabled = new ilCheckboxInputGUI($this->lng->txt('tst_instant_feedback'), 'instant_feedback_enabled');
1192 $instant_feedback_enabled->setInfo($this->lng->txt('tst_instant_feedback_desc'));
1193 $instant_feedback_enabled->setChecked($this->testOBJ->isAnyInstantFeedbackOptionEnabled());
1194 $form->addItem($instant_feedback_enabled);
1195 $instant_feedback_contents = new ilCheckboxGroupInputGUI($this->lng->txt('tst_instant_feedback_contents'), 'instant_feedback_contents');
1196 $instant_feedback_contents->setRequired(true);
1197 $instant_feedback_contents->addOption(new ilCheckboxOption(
1198 $this->lng->txt('tst_instant_feedback_results'),
1199 'instant_feedback_points',
1200 $this->lng->txt('tst_instant_feedback_results_desc')
1201 ));
1202 $instant_feedback_contents->addOption(new ilCheckboxOption(
1203 $this->lng->txt('tst_instant_feedback_answer_generic'),
1204 'instant_feedback_generic',
1205 $this->lng->txt('tst_instant_feedback_answer_generic_desc')
1206 ));
1207 $instant_feedback_contents->addOption(new ilCheckboxOption(
1208 $this->lng->txt('tst_instant_feedback_answer_specific'),
1209 'instant_feedback_specific',
1210 $this->lng->txt('tst_instant_feedback_answer_specific_desc')
1211 ));
1212 $instant_feedback_contents->addOption(new ilCheckboxOption(
1213 $this->lng->txt('tst_instant_feedback_solution'),
1214 'instant_feedback_solution',
1215 $this->lng->txt('tst_instant_feedback_solution_desc')
1216 ));
1217 $instant_feedback_contents->setValue($this->testOBJ->getInstantFeedbackOptionsAsArray());
1218 $instant_feedback_enabled->addSubItem($instant_feedback_contents);
1219 $instant_feedback_trigger = new ilRadioGroupInputGUI(
1220 $this->lng->txt('tst_instant_feedback_trigger'),
1221 'instant_feedback_trigger'
1222 );
1223 $ifbTriggerOpt = new ilRadioOption(
1224 $this->lng->txt('tst_instant_feedback_trigger_manual'),
1225 self::INSTANT_FEEDBACK_TRIGGER_MANUAL
1226 );
1227 $ifbTriggerOpt->setInfo($this->lng->txt('tst_instant_feedback_trigger_manual_desc'));
1228 $instant_feedback_trigger->addOption($ifbTriggerOpt);
1229 $ifbTriggerOpt = new ilRadioOption(
1230 $this->lng->txt('tst_instant_feedback_trigger_forced'),
1231 self::INSTANT_FEEDBACK_TRIGGER_FORCED
1232 );
1233 $ifbTriggerOpt->setInfo($this->lng->txt('tst_instant_feedback_trigger_forced_desc'));
1234 $instant_feedback_trigger->addOption($ifbTriggerOpt);
1235 $instant_feedback_trigger->setValue($this->testOBJ->isForceInstantFeedbackEnabled());
1236 $instant_feedback_enabled->addSubItem($instant_feedback_trigger);
1237
1238 $answerFixation = new ilRadioGroupInputGUI(
1239 $this->lng->txt('tst_answer_fixation_handling'),
1240 'answer_fixation_handling'
1241 );
1242 $radioOption = new ilRadioOption(
1243 $this->lng->txt('tst_answer_fixation_none'),
1244 self::ANSWER_FIXATION_NONE
1245 );
1246 $radioOption->setInfo($this->lng->txt('tst_answer_fixation_none_desc'));
1247 $answerFixation->addOption($radioOption);
1248 $radioOption = new ilRadioOption(
1249 $this->lng->txt('tst_answer_fixation_on_instant_feedback'),
1250 self::ANSWER_FIXATION_ON_INSTANT_FEEDBACK
1251 );
1252 $radioOption->setInfo($this->lng->txt('tst_answer_fixation_on_instant_feedback_desc'));
1253 $answerFixation->addOption($radioOption);
1254 $radioOption = new ilRadioOption(
1255 $this->lng->txt('tst_answer_fixation_on_followup_question'),
1256 self::ANSWER_FIXATION_ON_FOLLOWUP_QUESTION
1257 );
1258 $radioOption->setInfo($this->lng->txt('tst_answer_fixation_on_followup_question_desc'));
1259 $answerFixation->addOption($radioOption);
1260 $radioOption = new ilRadioOption(
1261 $this->lng->txt('tst_answer_fixation_on_instantfb_or_followupqst'),
1262 self::ANSWER_FIXATION_ON_IFB_OR_FUQST
1263 );
1264 $radioOption->setInfo($this->lng->txt('tst_answer_fixation_on_instantfb_or_followupqst_desc'));
1265 $answerFixation->addOption($radioOption);
1266 $answerFixation->setValue($this->getAnswerFixationSettingsAsFormValue());
1267 $form->addItem($answerFixation);
1268
1269 // enable obligations
1270 $checkBoxEnableObligations = new ilCheckboxInputGUI($this->lng->txt('tst_setting_enable_obligations_label'), 'obligations_enabled');
1271 $checkBoxEnableObligations->setChecked($this->testOBJ->areObligationsEnabled());
1272 $checkBoxEnableObligations->setInfo($this->lng->txt('tst_setting_enable_obligations_info'));
1273 $form->addItem($checkBoxEnableObligations);
1274
1275 // selector for unicode characters
1276 if ($this->isCharSelectorPropertyRequired()) {
1277 require_once 'Services/UIComponent/CharSelector/classes/class.ilCharSelectorGUI.php';
1279 $char_selector->getConfig()->setAvailability($this->testOBJ->getCharSelectorAvailability());
1280 $char_selector->getConfig()->setDefinition($this->testOBJ->getCharSelectorDefinition());
1281 $char_selector->addFormProperties($form);
1282 $char_selector->setFormValues($form);
1283 }
1284
1285 if ($this->testOBJ->participantDataExist()) {
1286 $checkBoxOfferHints->setDisabled(true);
1287 $instant_feedback_enabled->setDisabled(true);
1288 $instant_feedback_trigger->setDisabled(true);
1289 $instant_feedback_contents->setDisabled(true);
1290 $answerFixation->setDisabled(true);
1291 $checkBoxEnableObligations->setDisabled(true);
1292 }
1293 }
This shows a character selector.
This class represents a property in a property form.
This class represents an option in a checkbox group.

References ilPropertyFormGUI\addItem(), ilCharSelectorConfig\CONTEXT_TEST, getAnswerFixationSettingsAsFormValue(), isCharSelectorPropertyRequired(), and ilTestSettingsGUI\isSectionHeaderRequired().

Referenced by buildForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addTestAccessProperties()

ilObjTestSettingsGeneralGUI::addTestAccessProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 811 of file class.ilObjTestSettingsGeneralGUI.php.

812 {
813 $header = new ilFormSectionHeaderGUI();
814 $header->setTitle($this->lng->txt("tst_settings_header_execution"));
815 $form->addItem($header);
816
817 // starting time
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) {
822 $startingtime->setDate(new ilDateTime($this->testOBJ->getStartingTime(), IL_CAL_UNIX));
823 } else {
824 $startingtime->setDate(null);
825 }
826
827 $form->addItem($startingtime);
828 if ($this->testOBJ->participantDataExist()) {
829 $startingtime->setDisabled(true);
830 }
831
832 // ending time
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) {
837 $endingtime->setDate(new ilDateTime($this->testOBJ->getEndingTime(), IL_CAL_UNIX));
838 } else {
839 $endingtime->setDate(null);
840 }
841 $form->addItem($endingtime);
842
843 // test password
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"));
847 $password = new ilTextInputGUI($this->lng->txt("tst_password_enter"), "password");
848 $password->setRequired(true);
849 $password->setSize(20);
850 $password->setMaxLength(20);
851 $password->setValue($this->testOBJ->getPassword());
852 $pwEnabled->addSubItem($password);
853 $form->addItem($pwEnabled);
854
855 // fixed participants
856 $fixedparticipants = new ilCheckboxInputGUI($this->lng->txt('participants_invitation'), "fixedparticipants");
857 $fixedparticipants->setValue(1);
858 $fixedparticipants->setChecked($this->testOBJ->getFixedParticipants());
859 $fixedparticipants->setInfo($this->lng->txt("participants_invitation_description"));
860 if ($this->testOBJ->participantDataExist()) {
861 $fixedparticipants->setDisabled(true);
862 }
863 $form->addItem($fixedparticipants);
864
865 // simultaneous users
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());
869
870 // allowed simultaneous users
871 $simul = new ilNumberInputGUI($this->lng->txt("tst_allowed_users_max"), "allowedUsers");
872 $simul->setRequired(true);
873 $simul->allowDecimals(false);
874 $simul->setMinValue(1);
875 $simul->setMinvalueShouldBeGreater(false);
876 $simul->setSize(4);
877 $simul->setValue(($this->testOBJ->getAllowedUsers()) ? $this->testOBJ->getAllowedUsers() : '');
878 $simulLimited->addSubItem($simul);
879
880 // idle time
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"));
883 $idle->setSize(4);
884 $idle->setSuffix($this->lng->txt("seconds"));
885 $idle->setValue(($this->testOBJ->getAllowedUsersTimeGap()) ? $this->testOBJ->getAllowedUsersTimeGap() : 300);
886 $simulLimited->addSubItem($idle);
887
888 $form->addItem($simulLimited);
889 return $header;
890 }
This class represents a date/time property in a property form.
This class represents a number property in a property form.
$password
Definition: cron.php:14

References $password, ilPropertyFormGUI\addItem(), and IL_CAL_UNIX.

Referenced by buildForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addTestFinishProperties()

ilObjTestSettingsGeneralGUI::addTestFinishProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 1463 of file class.ilObjTestSettingsGeneralGUI.php.

1464 {
1465 $testFinishHeader = new ilFormSectionHeaderGUI();
1466 $testFinishHeader->setTitle($this->lng->txt("tst_final_information"));
1467 $form->addItem($testFinishHeader);
1468
1469 // examview
1470 $enable_examview = new ilCheckboxInputGUI($this->lng->txt("enable_examview"), 'enable_examview');
1471 $enable_examview->setValue(1);
1472 $enable_examview->setChecked($this->testOBJ->getEnableExamview());
1473 $enable_examview->setInfo($this->lng->txt("enable_examview_desc"));
1474 $show_examview_pdf = new ilCheckboxInputGUI('', 'show_examview_pdf');
1475 $show_examview_pdf->setValue(1);
1476 $show_examview_pdf->setChecked($this->testOBJ->getShowExamviewPdf());
1477 $show_examview_pdf->setOptionTitle($this->lng->txt("show_examview_pdf"));
1478 $enable_examview->addSubItem($show_examview_pdf);
1479 $form->addItem($enable_examview);
1480
1481 // show final statement
1482 $showfinal = new ilCheckboxInputGUI($this->lng->txt("final_statement"), "showfinalstatement");
1483 $showfinal->setChecked($this->testOBJ->getShowFinalStatement());
1484 $showfinal->setInfo($this->lng->txt("final_statement_show_desc"));
1485 $form->addItem($showfinal);
1486 // final statement
1487 $finalstatement = new ilTextAreaInputGUI($this->lng->txt("final_statement"), "finalstatement");
1488 $finalstatement->setRequired(true);
1489 $finalstatement->setValue($this->testOBJ->prepareTextareaOutput($this->testOBJ->getFinalStatement(), false, true));
1490 $finalstatement->setRows(10);
1491 $finalstatement->setCols(80);
1492 $finalstatement->setUseRte(true);
1493 $finalstatement->addPlugin("latex");
1494 $finalstatement->addButton("latex");
1495 $finalstatement->setRTESupport($this->testOBJ->getId(), "tst", "assessment");
1496 $finalstatement->setRteTagSet('full');
1497 $showfinal->addSubItem($finalstatement);
1498
1499 $redirection_mode = $this->testOBJ->getRedirectionMode();
1500 $rm_enabled = new ilCheckboxInputGUI($this->lng->txt('redirect_after_finishing_tst'), 'redirection_enabled');
1501 $rm_enabled->setInfo($this->lng->txt('redirect_after_finishing_tst_desc'));
1502 $rm_enabled->setChecked($redirection_mode == '0' ? false : true);
1503 $radio_rm = new ilRadioGroupInputGUI($this->lng->txt('redirect_after_finishing_rule'), 'redirection_mode');
1504 $always = new ilRadioOption($this->lng->txt('redirect_always'), REDIRECT_ALWAYS);
1505 $radio_rm->addOption($always);
1506 $kiosk = new ilRadioOption($this->lng->txt('redirect_in_kiosk_mode'), REDIRECT_KIOSK);
1507 $radio_rm->addOption($kiosk);
1508 $radio_rm->setValue(in_array($redirection_mode, array(REDIRECT_ALWAYS, REDIRECT_KIOSK)) ? $redirection_mode : REDIRECT_ALWAYS);
1509 $rm_enabled->addSubItem($radio_rm);
1510 $redirection_url = new ilTextInputGUI($this->lng->txt('redirection_url'), 'redirection_url');
1511 $redirection_url->setValue((string) $this->testOBJ->getRedirectionUrl());
1512 $redirection_url->setRequired(true);
1513 $rm_enabled->addSubItem($redirection_url);
1514
1515 $form->addItem($rm_enabled);
1516
1517 // Sign submission
1518 $sign_submission = $this->testOBJ->getSignSubmission();
1519 $sign_submission_enabled = new ilCheckboxInputGUI($this->lng->txt('sign_submission'), 'sign_submission');
1520 $sign_submission_enabled->setChecked($sign_submission);
1521 $sign_submission_enabled->setInfo($this->lng->txt('sign_submission_info'));
1522 $form->addItem($sign_submission_enabled);
1523
1524 // mail notification
1525 $mailnotification = new ilCheckboxInputGUI($this->lng->txt("tst_finish_notification"), "mailnotification");
1526 $mailnotification->setInfo($this->lng->txt("tst_finish_notification_desc"));
1527 $mailnotification->setChecked($this->testOBJ->getMailNotification() > 0);
1528 $form->addItem($mailnotification);
1529
1530 $mailnotificationContent = new ilRadioGroupInputGUI($this->lng->txt("tst_finish_notification_content"), "mailnotification_content");
1531 $mailnotificationContent->addOption(new ilRadioOption($this->lng->txt("tst_finish_notification_simple"), 1, ''));
1532 $mailnotificationContent->addOption(new ilRadioOption($this->lng->txt("tst_finish_notification_advanced"), 2, ''));
1533 $mailnotificationContent->setValue($this->testOBJ->getMailNotification() ? $this->testOBJ->getMailNotification() : 1);
1534 $mailnotificationContent->setRequired(true);
1535 $mailnotification->addSubItem($mailnotificationContent);
1536
1537 $mailnottype = new ilCheckboxInputGUI('', "mailnottype");
1538 $mailnottype->setValue(1);
1539 $mailnottype->setOptionTitle($this->lng->txt("mailnottype"));
1540 $mailnottype->setChecked($this->testOBJ->getMailNotificationType());
1541 $mailnotification->addSubItem($mailnottype);
1542 }
const REDIRECT_ALWAYS
const REDIRECT_KIOSK

References ilPropertyFormGUI\addItem(), REDIRECT_ALWAYS, and REDIRECT_KIOSK.

Referenced by buildForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addTestIntroProperties()

ilObjTestSettingsGeneralGUI::addTestIntroProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 757 of file class.ilObjTestSettingsGeneralGUI.php.

758 {
760 $section->setTitle($this->lng->txt('tst_settings_header_intro'));
761 $form->addItem($section);
762
763 // introduction
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'));
767 $form->addItem($introEnabled);
768 $intro = new ilTextAreaInputGUI($this->lng->txt("tst_introduction_text"), "introduction");
769 $intro->setRequired(true);
770 $intro->setValue($this->testOBJ->prepareTextareaOutput($this->testOBJ->getIntroduction(), false, true));
771 $intro->setRows(10);
772 $intro->setCols(80);
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);
779
780 // showinfo
781 $showinfo = new ilCheckboxInputGUI($this->lng->txt("showinfo"), "showinfo");
782 $showinfo->setValue(1);
783 $showinfo->setChecked($this->testOBJ->getShowInfo());
784 $showinfo->setInfo($this->lng->txt("showinfo_desc"));
785 $form->addItem($showinfo);
786 }

References $section, and ilPropertyFormGUI\addItem().

Referenced by buildForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addTestRunProperties()

ilObjTestSettingsGeneralGUI::addTestRunProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 948 of file class.ilObjTestSettingsGeneralGUI.php.

949 {
950 // section header test run
951 $header = new ilFormSectionHeaderGUI();
952 $header->setTitle($this->lng->txt("tst_settings_header_test_run"));
953 $form->addItem($header);
954
955 // max. number of passes
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");
960 $nr_of_tries->setSize(3);
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 $limitPasses->addSubItem($nr_of_tries);
967 $blockAfterPassed = new ilCheckboxInputGUI(
968 $this->lng->txt('tst_block_passes_after_passed'),
969 'block_after_passed'
970 );
971 $blockAfterPassed->setInfo($this->lng->txt('tst_block_passes_after_passed_info'));
972 $blockAfterPassed->setChecked($this->testOBJ->isBlockPassesAfterPassedEnabled());
973 $limitPasses->addSubItem($blockAfterPassed);
974 if ($this->testOBJ->participantDataExist()) {
975 $limitPasses->setDisabled(true);
976 $blockAfterPassed->setDisabled(true);
977 $nr_of_tries->setDisabled(true);
978 }
979 $form->addItem($limitPasses);
980
981 // pass_waiting time between testruns
982 $pass_waiting_enabled = new ilCheckboxInputGUI($this->lng->txt('tst_pass_waiting_enabled'), 'pass_waiting_enabled');
983 $pass_waiting_enabled->setInfo($this->lng->txt('tst_pass_waiting_info'));
984 $pass_waiting_enabled->setChecked($this->testOBJ->isPassWaitingEnabled());
985
986 // pass_waiting
987 $duration = new ilDurationInputGUI($this->lng->txt("tst_pass_waiting_time"), "pass_waiting");
988
989 $duration->setShowMonths(true);
990 $duration->setShowDays(true);
991 $duration->setShowHours(true);
992 $duration->setShowMinutes(true);
993
994 $pw_time_array = explode(':', $this->testOBJ->getPassWaiting());
995 $duration->setMonths($pw_time_array[0]);
996 $duration->setDays($pw_time_array[1]);
997 $duration->setHours($pw_time_array[2]);
998 $duration->setMinutes($pw_time_array[3]);
999 $duration->setRequired(false);
1000 $pass_waiting_enabled->addSubItem($duration);
1001
1002 $form->addItem($pass_waiting_enabled);
1003
1004 // enable max. processing time
1005 $processing = new ilCheckboxInputGUI($this->lng->txt("tst_processing_time"), "chb_processing_time");
1006 $processing->setInfo($this->lng->txt("tst_processing_time_desc"));
1007 $processing->setValue(1);
1008
1009 if ($this->settingsTemplate && $this->getTemplateSettingValue('chb_processing_time')) {
1010 $processing->setChecked(true);
1011 } else {
1012 $processing->setChecked($this->testOBJ->getEnableProcessingTime());
1013 }
1014
1015 // max. processing time
1016 $processingtime = new ilNumberInputGUI($this->lng->txt("tst_processing_time_duration"), 'processing_time');
1017 $processingtime->allowDecimals(false);
1018 $processingtime->setMinValue(1);
1019 $processingtime->setMinvalueShouldBeGreater(false);
1020 $processingtime->setValue($this->testOBJ->getProcessingTimeAsMinutes());
1021 $processingtime->setSize(5);
1022 $processingtime->setSuffix($this->lng->txt('minutes'));
1023 $processingtime->setInfo($this->lng->txt("tst_processing_time_duration_desc"));
1024 $processing->addSubItem($processingtime);
1025
1026 // reset max. processing time
1027 $resetprocessing = new ilCheckboxInputGUI('', "chb_reset_processing_time");
1028 $resetprocessing->setValue(1);
1029 $resetprocessing->setOptionTitle($this->lng->txt("tst_reset_processing_time"));
1030 $resetprocessing->setChecked($this->testOBJ->getResetProcessingTime());
1031 $resetprocessing->setInfo($this->lng->txt("tst_reset_processing_time_desc"));
1032 $processing->addSubItem($resetprocessing);
1033 $form->addItem($processing);
1034
1035 if ($this->testOBJ->participantDataExist()) {
1036 $processing->setDisabled(true);
1037 $processingtime->setDisabled(true);
1038 $resetprocessing->setDisabled(true);
1039
1040 $duration->setDisabled(true);
1041 $pass_waiting_enabled->setDisabled(true);
1042 }
1043
1044 // kiosk mode
1045 $kiosk = new ilCheckboxInputGUI($this->lng->txt("kiosk"), "kiosk");
1046 $kiosk->setValue(1);
1047 $kiosk->setChecked($this->testOBJ->getKioskMode());
1048 $kiosk->setInfo($this->lng->txt("kiosk_description"));
1049
1050 // kiosk mode options
1051 $kiosktitle = new ilCheckboxGroupInputGUI($this->lng->txt("kiosk_options"), "kiosk_options");
1052 $kiosktitle->addOption(new ilCheckboxOption($this->lng->txt("kiosk_show_title"), 'kiosk_title', ''));
1053 $kiosktitle->addOption(new ilCheckboxOption($this->lng->txt("kiosk_show_participant"), 'kiosk_participant', ''));
1054 $values = array();
1055 if ($this->testOBJ->getShowKioskModeTitle()) {
1056 array_push($values, 'kiosk_title');
1057 }
1058 if ($this->testOBJ->getShowKioskModeParticipant()) {
1059 array_push($values, 'kiosk_participant');
1060 }
1061 $kiosktitle->setValue($values);
1062 $kiosktitle->setInfo($this->lng->txt("kiosk_options_desc"));
1063 $kiosk->addSubItem($kiosktitle);
1064
1065 $form->addItem($kiosk);
1066
1067 $examIdInPass = new ilCheckboxInputGUI($this->lng->txt('examid_in_test_pass'), 'examid_in_test_pass');
1068 $examIdInPass->setInfo($this->lng->txt('examid_in_test_pass_desc'));
1069 $examIdInPass->setChecked($this->testOBJ->isShowExamIdInTestPassEnabled());
1070 $form->addItem($examIdInPass);
1071 }
This class represents a duration (typical hh:mm:ss) property in a property form.
getTemplateSettingValue($settingName)

References ilPropertyFormGUI\addItem(), and ilTestSettingsGUI\getTemplateSettingValue().

Referenced by buildForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addTestSequenceProperties()

ilObjTestSettingsGeneralGUI::addTestSequenceProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 1356 of file class.ilObjTestSettingsGeneralGUI.php.

1357 {
1358 // sequence properties
1359 $seqheader = new ilFormSectionHeaderGUI();
1360 $seqheader->setTitle($this->lng->txt("tst_sequence_properties"));
1361 $form->addItem($seqheader);
1362
1363 // use previous answers
1364 $prevanswers = new ilCheckboxInputGUI($this->lng->txt("tst_use_previous_answers"), "chb_use_previous_answers");
1365 $prevanswers->setValue(1);
1366 $prevanswers->setChecked($this->testOBJ->getUsePreviousAnswers());
1367 $prevanswers->setInfo($this->lng->txt("tst_use_previous_answers_description"));
1368 $form->addItem($prevanswers);
1369
1370 // show suspend test
1371 $cancel = new ilCheckboxInputGUI($this->lng->txt("tst_show_cancel"), "chb_show_cancel");
1372 $cancel->setValue(1);
1373 $cancel->setChecked($this->testOBJ->getShowCancel());
1374 $cancel->setInfo($this->lng->txt("tst_show_cancel_description"));
1375 $form->addItem($cancel);
1376
1377 // postpone questions
1378 $postpone = new ilRadioGroupInputGUI($this->lng->txt("tst_postpone"), "postpone");
1379 $postpone->addOption(new ilRadioOption(
1380 $this->lng->txt("tst_postpone_off"),
1381 0,
1382 $this->lng->txt("tst_postpone_off_desc")
1383 ));
1384 $postpone->addOption(new ilRadioOption(
1385 $this->lng->txt("tst_postpone_on"),
1386 1,
1387 $this->lng->txt("tst_postpone_on_desc")
1388 ));
1389 $postpone->setValue((int) $this->testOBJ->getSequenceSettings());
1390 $form->addItem($postpone);
1391
1392 // show list of questions
1393 $list_of_questions = new ilCheckboxInputGUI($this->lng->txt("tst_show_summary"), "list_of_questions");
1394 //$list_of_questions->setOptionTitle($this->lng->txt("tst_show_summary"));
1395 $list_of_questions->setValue(1);
1396 $list_of_questions->setChecked($this->testOBJ->getListOfQuestions());
1397 $list_of_questions->setInfo($this->lng->txt("tst_show_summary_description"));
1398
1399 $list_of_questions_options = new ilCheckboxGroupInputGUI('', "list_of_questions_options");
1400 $list_of_questions_options->addOption(new ilCheckboxOption($this->lng->txt("tst_list_of_questions_start"), 'chb_list_of_questions_start', ''));
1401 $list_of_questions_options->addOption(new ilCheckboxOption($this->lng->txt("tst_list_of_questions_end"), 'chb_list_of_questions_end', ''));
1402 $list_of_questions_options->addOption(new ilCheckboxOption($this->lng->txt("tst_list_of_questions_with_description"), 'chb_list_of_questions_with_description', ''));
1403 $values = array();
1404 if ($this->testOBJ->getListOfQuestionsStart()) {
1405 array_push($values, 'chb_list_of_questions_start');
1406 }
1407 if ($this->testOBJ->getListOfQuestionsEnd()) {
1408 array_push($values, 'chb_list_of_questions_end');
1409 }
1410 if ($this->testOBJ->getListOfQuestionsDescription()) {
1411 array_push($values, 'chb_list_of_questions_with_description');
1412 }
1413 $list_of_questions_options->setValue($values);
1414
1415 $list_of_questions->addSubItem($list_of_questions_options);
1416 $form->addItem($list_of_questions);
1417
1418 // show question marking
1419 $marking = new ilCheckboxInputGUI($this->lng->txt("question_marking"), "chb_show_marker");
1420 $marking->setValue(1);
1421 $marking->setChecked($this->testOBJ->getShowMarker());
1422 $marking->setInfo($this->lng->txt("question_marking_description"));
1423 $form->addItem($marking);
1424 }

References ilPropertyFormGUI\addItem().

Referenced by buildForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildForm()

ilObjTestSettingsGeneralGUI::buildForm ( )
private

Definition at line 438 of file class.ilObjTestSettingsGeneralGUI.php.

439 {
440 require_once 'Services/Form/classes/class.ilPropertyFormGUI.php';
441 $form = new ilPropertyFormGUI();
442 $form->setFormAction($this->ctrl->getFormAction($this));
443 $form->addCommandButton(self::CMD_SAVE_FORM, $this->lng->txt("save"));
444 $form->setTableWidth("100%");
445 $form->setId("test_properties");
446
447 $this->addGeneralProperties($form);
448 $this->addAvailabilityProperties($form);
449 $this->addPresentationProperties($form);
450 $this->addTestIntroProperties($form);
451 $this->addTestAccessProperties($form);
452 $this->addTestRunProperties($form);
453 $this->addQuestionBehaviourProperties($form);
454 $this->addTestSequenceProperties($form);
455 $this->addTestFinishProperties($form);
456
457 // Edit ecs export settings
458 include_once 'Modules/Test/classes/class.ilECSTestSettings.php';
459 $ecs = new ilECSTestSettings($this->testOBJ);
460 $ecs->addSettingsToForm($form, 'tst');
461
462 // additional features
463
464 $orgunitServiceActive = ilOrgUnitGlobalSettings::getInstance()->getObjectPositionSettingsByType(
465 $this->testOBJ->getType()
466 )->isActive();
467
468 $skillServiceActive = ilObjTest::isSkillManagementGloballyActivated();
469
470
471 if ($orgunitServiceActive || $skillServiceActive) {
472 $otherHead = new ilFormSectionHeaderGUI();
473 $otherHead->setTitle($this->lng->txt('obj_features'));
474 $form->addItem($otherHead);
475 }
476
477 require_once 'Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
478 ilObjectServiceSettingsGUI::initServiceSettingsForm($this->testOBJ->getId(), $form, array(
480 ));
481
482 // skill service activation for FIXED tests only
483 if ($skillServiceActive) {
484 $skillService = new ilCheckboxInputGUI($this->lng->txt('tst_activate_skill_service'), 'skill_service');
485 $skillService->setInfo($this->lng->txt('tst_activate_skill_service_desc'));
486 $skillService->setChecked($this->testOBJ->isSkillServiceEnabled());
487 if ($this->testOBJ->participantDataExist()) {
488 $skillService->setDisabled(true);
489 }
490 $form->addItem($skillService);
491 }
492
493 // remove items when using template
494 $this->removeHiddenItems($form);
495
496 return $form;
497 }
Class ilECSTestSettings.
addQuestionBehaviourProperties(ilPropertyFormGUI $form)
static isSkillManagementGloballyActivated()
static initServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Init service settings form.
This class represents a property form user interface.
removeHiddenItems(ilPropertyFormGUI $form)

References addAvailabilityProperties(), addGeneralProperties(), addPresentationProperties(), addQuestionBehaviourProperties(), addTestAccessProperties(), addTestFinishProperties(), addTestIntroProperties(), addTestRunProperties(), addTestSequenceProperties(), ilOrgUnitGlobalSettings\getInstance(), ilObjectServiceSettingsGUI\initServiceSettingsForm(), ilObjTest\isSkillManagementGloballyActivated(), ilObjectServiceSettingsGUI\ORGU_POSITION_ACCESS, and ilTestSettingsGUI\removeHiddenItems().

Referenced by saveFormCmd(), and showFormCmd().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ confirmedResetTemplateCmd()

ilObjTestSettingsGeneralGUI::confirmedResetTemplateCmd ( )
private

Enable all settings - remove template.

Definition at line 403 of file class.ilObjTestSettingsGeneralGUI.php.

404 {
405 $this->testOBJ->setTemplate(null);
406 $this->testOBJ->saveToDB();
407
408 ilUtil::sendSuccess($this->lng->txt("test_template_reset"), true);
409 $this->ctrl->redirect($this, self::CMD_SHOW_FORM);
410 }

◆ confirmedSaveFormCmd()

ilObjTestSettingsGeneralGUI::confirmedSaveFormCmd ( )
private

Definition at line 198 of file class.ilObjTestSettingsGeneralGUI.php.

199 {
200 return $this->saveFormCmd(true);
201 }

References saveFormCmd().

+ Here is the call graph for this function:

◆ executeCommand()

ilObjTestSettingsGeneralGUI::executeCommand ( )

Command Execution.

Definition at line 113 of file class.ilObjTestSettingsGeneralGUI.php.

114 {
115 global $DIC; /* @var ILIAS\DI\Container $DIC */
116
117 // allow only write access
118
119 if (!$this->access->checkAccess("write", "", $this->testGUI->ref_id)) {
120 ilUtil::sendInfo($this->lng->txt("cannot_edit_test"), true);
121 $this->ctrl->redirect($this->testGUI, "infoScreen");
122 }
123
124 $DIC->tabs()->activateTab(ilTestTabsManager::TAB_ID_SETTINGS);
125
126 // process command
127
128 $nextClass = $this->ctrl->getNextClass();
129
130 switch ($nextClass) {
131 default:
132 $cmd = $this->ctrl->getCmd(self::CMD_SHOW_FORM) . 'Cmd';
133 $this->$cmd();
134 }
135 }
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.

References $DIC, ilUtil\sendInfo(), and ilTestTabsManager\TAB_ID_SETTINGS.

+ Here is the call graph for this function:

◆ getAnswerFixationSettingsAsFormValue()

ilObjTestSettingsGeneralGUI::getAnswerFixationSettingsAsFormValue ( )
protected

Definition at line 1603 of file class.ilObjTestSettingsGeneralGUI.php.

1604 {
1605 if ($this->testOBJ->isInstantFeedbackAnswerFixationEnabled() && $this->testOBJ->isFollowupQuestionAnswerFixationEnabled()) {
1607 }
1608
1609 if ($this->testOBJ->isFollowupQuestionAnswerFixationEnabled()) {
1611 }
1612
1613 if ($this->testOBJ->isInstantFeedbackAnswerFixationEnabled()) {
1615 }
1616
1618 }

References ANSWER_FIXATION_NONE, ANSWER_FIXATION_ON_FOLLOWUP_QUESTION, ANSWER_FIXATION_ON_IFB_OR_FUQST, and ANSWER_FIXATION_ON_INSTANT_FEEDBACK.

Referenced by addQuestionBehaviourProperties().

+ Here is the caller graph for this function:

◆ getSettingsTemplateMessageHTML()

ilObjTestSettingsGeneralGUI::getSettingsTemplateMessageHTML ( )
protected

Definition at line 170 of file class.ilObjTestSettingsGeneralGUI.php.

171 {
172 if ($this->settingsTemplate) {
173 $title = $this->settingsTemplate->getTitle();
174
175 if ($this->settingsTemplate->getAutoGenerated()) {
176 $title = $this->lng->txt($title);
177 }
178
179 global $DIC;
180 $tpl = $DIC['tpl'];
181
182 $link = $this->ctrl->getLinkTarget($this, self::CMD_SHOW_RESET_TPL_CONFIRM);
183 $link = "<a href=\"" . $link . "\">" . $this->lng->txt("test_using_template_link") . "</a>";
184
186 sprintf($this->lng->txt("test_using_template"), $title, $link),
187 "info"
188 );
189
190 $msgHTML = "<div style=\"margin-top:10px\">$msgHTML</div>";
191 } else {
192 $msgHTML = '';
193 }
194
195 return $msgHTML;
196 }
static getSystemMessageHTML($a_txt, $a_type="info")
Get HTML for a system message.

References $DIC, $tpl, and ilUtil\getSystemMessageHTML().

Referenced by showFormCmd().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isCharSelectorPropertyRequired()

ilObjTestSettingsGeneralGUI::isCharSelectorPropertyRequired ( )
private

Definition at line 429 of file class.ilObjTestSettingsGeneralGUI.php.

430 {
431 global $DIC;
432 $ilSetting = $DIC['ilSetting'];
433
434 return $ilSetting->get('char_selector_availability') > 0;
435 }
global $ilSetting
Definition: privfeed.php:17

References $DIC, and $ilSetting.

Referenced by addQuestionBehaviourProperties(), and saveQuestionBehaviourProperties().

+ Here is the caller graph for this function:

◆ isSkillServiceSettingToBeAdjusted()

ilObjTestSettingsGeneralGUI::isSkillServiceSettingToBeAdjusted ( ilPropertyFormGUI  $form)
private

Definition at line 412 of file class.ilObjTestSettingsGeneralGUI.php.

413 {
414 if (!($form->getItemByPostVar('skill_service') instanceof ilFormPropertyGUI)) {
415 return false;
416 }
417
419 return false;
420 }
421
422 if (!$form->getItemByPostVar('skill_service')->getChecked()) {
423 return false;
424 }
425
426 return true;
427 }
This class represents a property in a property form.
getItemByPostVar($a_post_var)
Get Item by POST variable.

References ilPropertyFormGUI\getItemByPostVar(), and ilObjTest\isSkillManagementGloballyActivated().

+ Here is the call graph for this function:

◆ performSaveForm()

ilObjTestSettingsGeneralGUI::performSaveForm ( ilPropertyFormGUI  $form)
private

Definition at line 499 of file class.ilObjTestSettingsGeneralGUI.php.

500 {
501 $this->saveGeneralProperties($form);
502 $this->savePresentationProperties($form);
503 $this->saveAvailabilityProperties($form);
504 $this->saveTestIntroProperties($form);
505 $this->saveTestAccessProperties($form);
506 $this->saveTestRunProperties($form);
508 $this->saveTestSequenceSettings($form);
509 $this->saveTestFinishProperties($form);
510
511 if (!$this->testOBJ->participantDataExist()) {
512 // skill service
513 if (ilObjTest::isSkillManagementGloballyActivated() && $form->getItemByPostVar('skill_service') instanceof ilFormPropertyGUI) {
514 $this->testOBJ->setSkillServiceEnabled($form->getItemByPostVar('skill_service')->getChecked());
515 }
516 }
517
518 require_once 'Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
519 ilObjectServiceSettingsGUI::updateServiceSettingsForm($this->testOBJ->getId(), $form, array(
521 ));
522
523 // store settings to db
524 $this->testOBJ->saveToDb(true);
525
526 // Update ecs export settings
527 include_once 'Modules/Test/classes/class.ilECSTestSettings.php';
528 $ecs = new ilECSTestSettings($this->testOBJ);
529 $ecs->handleSettingsUpdate();
530 }
saveQuestionBehaviourProperties(ilPropertyFormGUI $form)
static updateServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Update service settings.

References ilPropertyFormGUI\getItemByPostVar(), ilObjTest\isSkillManagementGloballyActivated(), ilObjectServiceSettingsGUI\ORGU_POSITION_ACCESS, saveAvailabilityProperties(), saveGeneralProperties(), savePresentationProperties(), saveQuestionBehaviourProperties(), saveTestAccessProperties(), saveTestFinishProperties(), saveTestIntroProperties(), saveTestRunProperties(), saveTestSequenceSettings(), and ilObjectServiceSettingsGUI\updateServiceSettingsForm().

Referenced by saveFormCmd().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveAvailabilityProperties()

ilObjTestSettingsGeneralGUI::saveAvailabilityProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 715 of file class.ilObjTestSettingsGeneralGUI.php.

716 {
717 // activation
718 if ($form->getItemByPostVar('activation_type')->getChecked()) {
719 $this->testOBJ->setActivationLimited(true);
720 $this->testOBJ->setActivationVisibility($form->getItemByPostVar('activation_visibility')->getChecked());
721
722 $period = $form->getItemByPostVar("access_period");
723 $this->testOBJ->setActivationStartingTime($period->getStart()->get(IL_CAL_UNIX));
724 $this->testOBJ->setActivationEndingTime($period->getEnd()->get(IL_CAL_UNIX));
725 } else {
726 $this->testOBJ->setActivationLimited(false);
727 }
728 }

References ilPropertyFormGUI\getItemByPostVar(), and IL_CAL_UNIX.

Referenced by performSaveForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveFormCmd()

ilObjTestSettingsGeneralGUI::saveFormCmd (   $isConfirmedSave = false)
private

Definition at line 203 of file class.ilObjTestSettingsGeneralGUI.php.

204 {
205 $form = $this->buildForm();
206
207 // form validation and initialisation
208
209 if ($isConfirmedSave) {
210 // since confirmation does only pickup POST and no FILES
211 // mocking the tile image file upload field is neccessary
212 // due to checkInput() behaviour (fixes mantis #24226)
213 $_FILES['tile_image'] = array(
214 'name' => '', 'type' => '', 'size' => '', 'tmp_name' => '', 'error' => ''
215 );
216
217 // TODO: get rid of question selection mode setting in settings form (move to creation screen)
218 }
219
220 $errors = !$form->checkInput(); // ALWAYS CALL BEFORE setValuesByPost()
221 $form->setValuesByPost(); // NEVER CALL THIS BEFORE checkInput()
222 // Sarcasm? No. Because checkInput checks the form graph against the POST without
223 // actually setting the values into the form. Sounds ridiculous? Indeed, and it is.
224
225 // return to form when any form validation errors exist
226
227 if ($errors) {
228 ilUtil::sendFailure($this->lng->txt('form_input_not_valid'));
229 return $this->showFormCmd($form);
230 }
231
232 // return to form when online is to be set, but no questions are configured
233
234 $currentQuestionSetConfig = $this->testQuestionSetConfigFactory->getQuestionSetConfig();
235 if ($form->getItemByPostVar('online')->getChecked() && !$this->testOBJ->isComplete($currentQuestionSetConfig)) {
236 $form->getItemByPostVar('online')->setAlert(
237 $this->lng->txt("cannot_switch_to_online_no_questions_andor_no_mark_steps")
238 );
239
240 ilUtil::sendFailure($this->lng->txt('form_input_not_valid'));
241 return $this->showFormCmd($form);
242 }
243
244 // avoid settings conflict "ctm" and "do not show question titles"
245
246 $qstSetSetting = $form->getItemByPostVar('question_set_type');
247 $qTitleSetting = $form->getItemByPostVar('title_output');
248
249 if ($qstSetSetting->getValue() == ilObjTest::QUESTION_SET_TYPE_DYNAMIC && $qTitleSetting->getValue() == 2) {
250 $qstSetSetting->setAlert($this->lng->txt('tst_conflicting_setting'));
251 $qTitleSetting->setAlert($this->lng->txt('tst_conflicting_setting'));
252
253 ilUtil::sendFailure($this->lng->txt('tst_settings_conflict_message'));
254 return $this->showFormCmd($form);
255 }
256
257 // avoid settings conflict "obligate questions" and "freeze answer"
258
259 $obligationsSetting = $form->getItemByPostVar('obligations_enabled');
260 $answerFixationSetting = $form->getItemByPostVar('answer_fixation_handling');
261
262 if ($obligationsSetting->getChecked() && $answerFixationSetting->getValue() != self::ANSWER_FIXATION_NONE) {
263 $obligationsSetting->setAlert($this->lng->txt('tst_conflicting_setting'));
264 $answerFixationSetting->setAlert($this->lng->txt('tst_conflicting_setting'));
265
266 ilUtil::sendFailure($this->lng->txt('tst_settings_conflict_message'));
267 return $this->showFormCmd($form);
268 }
269
270 // avoid settings conflict "freeze answer on followup question" and "question postponing"
271
272 $postponeSetting = $form->getItemByPostVar('postpone');
273 $answerFixationSetting = $form->getItemByPostVar('answer_fixation_handling');
274 $conflictModes = array(self::ANSWER_FIXATION_ON_FOLLOWUP_QUESTION, self::ANSWER_FIXATION_ON_IFB_OR_FUQST);
275
276 if ($postponeSetting->getValue() && in_array($answerFixationSetting->getValue(), $conflictModes)) {
277 $postponeSetting->setAlert($this->lng->txt('tst_conflicting_setting'));
278 $answerFixationSetting->setAlert($this->lng->txt('tst_conflicting_setting'));
279
280 ilUtil::sendFailure($this->lng->txt('tst_settings_conflict_message'));
281 return $this->showFormCmd($form);
282 }
283
284 // avoid settings conflict "freeze answer on followup question" and "question shuffling"
285
286 $shuffleSetting = $form->getItemByPostVar('chb_shuffle_questions');
287 $answerFixationSetting = $form->getItemByPostVar('answer_fixation_handling');
288 $conflictModes = array(self::ANSWER_FIXATION_ON_FOLLOWUP_QUESTION, self::ANSWER_FIXATION_ON_IFB_OR_FUQST);
289
290 if ($shuffleSetting->getChecked() && in_array($answerFixationSetting->getValue(), $conflictModes)) {
291 $shuffleSetting->setAlert($this->lng->txt('tst_conflicting_setting'));
292 $answerFixationSetting->setAlert($this->lng->txt('tst_conflicting_setting'));
293
294 ilUtil::sendFailure($this->lng->txt('tst_settings_conflict_message'));
295 return $this->showFormCmd($form);
296 }
297
298 $infoMsg = array();
299
300 // solve conflicts with question set type setting with confirmation screen if required
301 // determine wether question set type relating data is to be removed (questions/pools)
302
303 $questionSetTypeRelatingDataCleanupRequired = false;
304
305 $oldQuestionSetType = $this->testOBJ->getQuestionSetType();
306 if ($form->getItemByPostVar('question_set_type') instanceof ilFormPropertyGUI) {
307 $newQuestionSetType = $form->getItemByPostVar('question_set_type')->getValue();
308
309 if (!$this->testOBJ->participantDataExist() && $newQuestionSetType != $oldQuestionSetType) {
310 $oldQuestionSetConfig = $this->testQuestionSetConfigFactory->getQuestionSetConfigByType(
311 $oldQuestionSetType
312 );
313
314 if ($oldQuestionSetConfig->doesQuestionSetRelatedDataExist()) {
315 if (!$isConfirmedSave) {
316 if ($oldQuestionSetType == ilObjTest::QUESTION_SET_TYPE_FIXED) {
317 return $this->showConfirmation(
318 $form,
319 $oldQuestionSetType,
320 $newQuestionSetType,
321 $this->testOBJ->hasQuestionsWithoutQuestionpool()
322 );
323 }
324
325 return $this->showConfirmation(
326 $form,
327 $oldQuestionSetType,
328 $newQuestionSetType,
329 false
330 );
331 }
332
333 $questionSetTypeRelatingDataCleanupRequired = true;
334 }
335
336 if ($form->getItemByPostVar('online')->getChecked()) {
337 $form->getItemByPostVar('online')->setChecked(false);
338
339 if (!$this->testOBJ->getOfflineStatus()) {
340 $infoMsg[] = $this->lng->txt("tst_set_offline_due_to_switched_question_set_type_setting");
341 } else {
342 $infoMsg[] = $this->lng->txt("tst_cannot_online_due_to_switched_quest_set_type_setting");
343 }
344 }
345 }
346 } else {
347 $newQuestionSetType = $oldQuestionSetType;
348 }
349
350 // adjust settings due to chosen question set type
351
352 if ($newQuestionSetType != ilObjTest::QUESTION_SET_TYPE_FIXED) {
353 $form->getItemByPostVar('chb_use_previous_answers')->setChecked(false);
354 }
355
356 // perform saving the form data
357
358 $this->performSaveForm($form);
359
360 // clean up test mode relating configuration data (questions/questionpools)
361
362 if ($questionSetTypeRelatingDataCleanupRequired) {
363 $oldQuestionSetConfig->removeQuestionSetRelatedData();
364 }
365
366 // disinvite all invited users if required
367
368 if (!$this->testOBJ->participantDataExist() && !$this->testOBJ->getFixedParticipants()) {
369 foreach ($this->testOBJ->getInvitedUsers() as $usrId => $usrData) {
370 $this->testOBJ->disinviteUser($usrId);
371 }
372 }
373
374 // redirect to form output
375
376 if (count($infoMsg)) {
377 ilUtil::sendInfo(implode('<br />', $infoMsg), true);
378 }
379
380 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
381 $this->ctrl->redirect($this, self::CMD_SHOW_FORM);
382 }
showConfirmation(ilPropertyFormGUI $form, $oldQuestionSetType, $newQuestionSetType, $hasQuestionsWithoutQuestionpool)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$errors

References $errors, buildForm(), performSaveForm(), ilObjTest\QUESTION_SET_TYPE_DYNAMIC, ilObjTest\QUESTION_SET_TYPE_FIXED, ilUtil\sendFailure(), ilUtil\sendInfo(), showConfirmation(), and showFormCmd().

Referenced by confirmedSaveFormCmd().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveGeneralProperties()

ilObjTestSettingsGeneralGUI::saveGeneralProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 619 of file class.ilObjTestSettingsGeneralGUI.php.

620 {
621 include_once 'Services/MetaData/classes/class.ilMD.php';
622 $md_obj = new ilMD($this->testOBJ->getId(), 0, "tst");
623 $md_section = $md_obj->getGeneral();
624
625 // title
626 $md_section->setTitle(ilUtil::stripSlashes($form->getItemByPostVar('title')->getValue()));
627 $md_section->update();
628
629 // Description
630 $md_desc_ids = $md_section->getDescriptionIds();
631 if ($md_desc_ids) {
632 $md_desc = $md_section->getDescription(array_pop($md_desc_ids));
633 $md_desc->setDescription(ilUtil::stripSlashes($form->getItemByPostVar('description')->getValue()));
634 $md_desc->update();
635 } else {
636 $md_desc = $md_section->addDescription();
637 $md_desc->setDescription(ilUtil::stripSlashes($form->getItemByPostVar('description')->getValue()));
638 $md_desc->save();
639 }
640
641 $this->testOBJ->setTitle(ilUtil::stripSlashes($form->getItemByPostVar('title')->getValue()));
642 $this->testOBJ->setDescription(ilUtil::stripSlashes($form->getItemByPostVar('description')->getValue()));
643 $this->testOBJ->setOfflineStatus(!$form->getItemByPostVar('online')->getChecked());
644 $this->testOBJ->update();
645
646 // pool usage setting
647 if ($form->getItemByPostVar('use_pool') instanceof ilFormPropertyGUI) {
648 $this->testOBJ->setPoolUsage((int) $form->getItemByPostVar('use_pool')->getValue());
649 }
650
651 if (!$this->testOBJ->participantDataExist()) {
652 // question set type
653 if ($form->getItemByPostVar('question_set_type') instanceof ilFormPropertyGUI) {
654 $this->testOBJ->setQuestionSetType($form->getItemByPostVar('question_set_type')->getValue());
655 }
656 }
657
658 // anonymity setting
659 if (!$this->testOBJ->participantDataExist() && $this->formPropertyExists($form, 'anonymity')) {
660 $this->testOBJ->setAnonymity($form->getItemByPostVar('anonymity')->getValue());
661 }
662 }
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled

References ilPropertyFormGUI\getItemByPostVar(), and ilUtil\stripSlashes().

Referenced by performSaveForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ savePresentationProperties()

ilObjTestSettingsGeneralGUI::savePresentationProperties ( ilPropertyFormGUI  $form)
protected
Parameters
ilPropertyFormGUI$form

Definition at line 747 of file class.ilObjTestSettingsGeneralGUI.php.

748 {
749 global $DIC; /* @var ILIAS\DI\Container $DIC */
750
751 $DIC->object()->commonSettings()->legacyForm($form, $this->testOBJ)->saveTileImage();
752 }

References $DIC.

Referenced by performSaveForm().

+ Here is the caller graph for this function:

◆ saveQuestionBehaviourProperties()

ilObjTestSettingsGeneralGUI::saveQuestionBehaviourProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 1298 of file class.ilObjTestSettingsGeneralGUI.php.

1299 {
1300 if ($form->getItemByPostVar('title_output') instanceof ilFormPropertyGUI) {
1301 $this->testOBJ->setTitleOutput($form->getItemByPostVar('title_output')->getValue());
1302 }
1303
1304 if ($form->getItemByPostVar('autosave') instanceof ilFormPropertyGUI) {
1305 $this->testOBJ->setAutosave($form->getItemByPostVar('autosave')->getChecked());
1306 $this->testOBJ->setAutosaveIval($form->getItemByPostVar('autosave_ival')->getValue() * 1000);
1307 }
1308
1309 if ($form->getItemByPostVar('chb_shuffle_questions') instanceof ilFormPropertyGUI) {
1310 $this->testOBJ->setShuffleQuestions($form->getItemByPostVar('chb_shuffle_questions')->getChecked());
1311 }
1312
1313 if (!$this->testOBJ->participantDataExist() && $this->formPropertyExists($form, 'offer_hints')) {
1314 $this->testOBJ->setOfferingQuestionHintsEnabled($form->getItemByPostVar('offer_hints')->getChecked());
1315 }
1316
1317 if (!$this->testOBJ->participantDataExist() && $this->formPropertyExists($form, 'instant_feedback_enabled')) {
1318 if ($form->getItemByPostVar('instant_feedback_enabled')->getChecked()) {
1319 if ($this->formPropertyExists($form, 'instant_feedback_contents')) {
1320 $this->testOBJ->setInstantFeedbackOptionsByArray(
1321 $form->getItemByPostVar('instant_feedback_contents')->getValue()
1322 );
1323 }
1324 if ($this->formPropertyExists($form, 'instant_feedback_trigger')) {
1325 $this->testOBJ->setForceInstantFeedbackEnabled(
1326 (bool) $form->getItemByPostVar('instant_feedback_trigger')->getValue()
1327 );
1328 }
1329 } else {
1330 $this->testOBJ->setInstantFeedbackOptionsByArray(array());
1331 $this->testOBJ->setForceInstantFeedbackEnabled(false);
1332 }
1333 }
1334
1335 if (!$this->testOBJ->participantDataExist() && $this->formPropertyExists($form, 'answer_fixation_handling')) {
1336 $this->setAnswerFixationSettingsByFormValue($form->getItemByPostVar('answer_fixation_handling')->getValue());
1337 }
1338
1339 if (!$this->testOBJ->participantDataExist() && $this->formPropertyExists($form, 'obligations_enabled')) {
1340 $this->testOBJ->setObligationsEnabled($form->getItemByPostVar('obligations_enabled')->getChecked());
1341 }
1342
1343 if ($this->isCharSelectorPropertyRequired()) {
1344 require_once 'Services/UIComponent/CharSelector/classes/class.ilCharSelectorGUI.php';
1346 $char_selector->addFormProperties($form);
1347 $char_selector->getFormValues($form);
1348 $this->testOBJ->setCharSelectorAvailability($char_selector->getConfig()->getAvailability());
1349 $this->testOBJ->setCharSelectorDefinition($char_selector->getConfig()->getDefinition());
1350 }
1351 }
formPropertyExists(ilPropertyFormGUI $form, $propertyId)

References ilCharSelectorConfig\CONTEXT_TEST, ilTestSettingsGUI\formPropertyExists(), ilPropertyFormGUI\getItemByPostVar(), isCharSelectorPropertyRequired(), and setAnswerFixationSettingsByFormValue().

Referenced by performSaveForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveTestAccessProperties()

ilObjTestSettingsGeneralGUI::saveTestAccessProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 895 of file class.ilObjTestSettingsGeneralGUI.php.

896 {
897 if (!$this->testOBJ->participantDataExist()) {
898 // starting time
899 $starting_time = $form->getItemByPostVar('starting_time')->getDate();
900 if ($starting_time instanceof ilDateTime) {
901 $this->testOBJ->setStartingTime($starting_time->getUnixtime());
902 $this->testOBJ->setStartingTimeEnabled(true);
903 } else {
904 $this->testOBJ->setStartingTime(null);
905 $this->testOBJ->setStartingTimeEnabled(false);
906 }
907 }
908
909 // ending time
910 $ending_time = $form->getItemByPostVar('ending_time')->getDate();
911 if ($ending_time instanceof ilDateTime) {
912 $this->testOBJ->setEndingTime($ending_time->getUnixtime());
913 $this->testOBJ->setEndingTimeEnabled(true);
914 } else {
915 $this->testOBJ->setEndingTime(null);
916 $this->testOBJ->setEndingTimeEnabled(false);
917 }
918
919 if ($this->formPropertyExists($form, 'password_enabled')) {
920 $this->testOBJ->setPasswordEnabled($form->getItemByPostVar('password_enabled')->getChecked());
921
922 if ($form->getItemByPostVar('password_enabled')->getChecked()) {
923 $this->testOBJ->setPassword($form->getItemByPostVar('password')->getValue());
924 } else {
925 $this->testOBJ->setPassword(''); // otherwise test will still respect value
926 }
927 }
928
929 if ($this->formPropertyExists($form, 'fixedparticipants') && !$this->testOBJ->participantDataExist()) {
930 $this->testOBJ->setFixedParticipants($form->getItemByPostVar('fixedparticipants')->getChecked());
931 }
932
933 if ($this->formPropertyExists($form, 'limitUsers')) {
934 $this->testOBJ->setLimitUsersEnabled($form->getItemByPostVar('limitUsers')->getChecked());
935
936 if ($form->getItemByPostVar('limitUsers')->getChecked()) {
937 $this->testOBJ->setAllowedUsers($form->getItemByPostVar('allowedUsers')->getValue());
938 $this->testOBJ->setAllowedUsersTimeGap($form->getItemByPostVar('allowedUsersTimeGap')->getValue());
939 } else {
940 $this->testOBJ->setAllowedUsers(''); // otherwise test will still respect value
941 }
942 }
943 }

References ilTestSettingsGUI\formPropertyExists(), and ilPropertyFormGUI\getItemByPostVar().

Referenced by performSaveForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveTestFinishProperties()

ilObjTestSettingsGeneralGUI::saveTestFinishProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 1547 of file class.ilObjTestSettingsGeneralGUI.php.

1548 {
1549 if ($this->formPropertyExists($form, 'enable_examview')) {
1550 $this->testOBJ->setEnableExamview($form->getItemByPostVar('enable_examview')->getChecked());
1551 $this->testOBJ->setShowExamviewPdf($form->getItemByPostVar('show_examview_pdf')->getChecked());
1552 }
1553
1554 $this->testOBJ->setShowFinalStatement($form->getItemByPostVar('showfinalstatement')->getChecked());
1555 $this->testOBJ->setFinalStatement($form->getItemByPostVar('finalstatement')->getValue());
1556
1557 if ($form->getItemByPostVar('redirection_enabled')->getChecked()) {
1558 $this->testOBJ->setRedirectionMode($form->getItemByPostVar('redirection_mode')->getValue());
1559 } else {
1560 $this->testOBJ->setRedirectionMode(REDIRECT_NONE);
1561 }
1562 if (strlen($form->getItemByPostVar('redirection_url')->getValue())) {
1563 $this->testOBJ->setRedirectionUrl($form->getItemByPostVar('redirection_url')->getValue());
1564 } else {
1565 $this->testOBJ->setRedirectionUrl(null);
1566 }
1567
1568 if ($this->formPropertyExists($form, 'sign_submission')) {
1569 $this->testOBJ->setSignSubmission($form->getItemByPostVar('sign_submission')->getChecked());
1570 }
1571
1572 if ($this->formPropertyExists($form, 'mailnotification') && $form->getItemByPostVar('mailnotification')->getChecked()) {
1573 $this->testOBJ->setMailNotification($form->getItemByPostVar('mailnotification_content')->getValue());
1574 $this->testOBJ->setMailNotificationType($form->getItemByPostVar('mailnottype')->getChecked());
1575 } else {
1576 $this->testOBJ->setMailNotification(0);
1577 $this->testOBJ->setMailNotificationType(false);
1578 }
1579 }
const REDIRECT_NONE
Redirect after finishing test constants.

References ilTestSettingsGUI\formPropertyExists(), ilPropertyFormGUI\getItemByPostVar(), and REDIRECT_NONE.

Referenced by performSaveForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveTestIntroProperties()

ilObjTestSettingsGeneralGUI::saveTestIntroProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 791 of file class.ilObjTestSettingsGeneralGUI.php.

792 {
793 if ($form->getItemByPostVar('intro_enabled') instanceof ilFormPropertyGUI) {
794 $this->testOBJ->setIntroductionEnabled($form->getItemByPostVar('intro_enabled')->getChecked());
795
796 if ($form->getItemByPostVar('intro_enabled')->getChecked()) {
797 $this->testOBJ->setIntroduction($form->getItemByPostVar('introduction')->getValue());
798 } else {
799 $this->testOBJ->setIntroduction('');
800 }
801 }
802
803 if ($form->getItemByPostVar('showinfo') instanceof ilFormPropertyGUI) {
804 $this->testOBJ->setShowInfo($form->getItemByPostVar('showinfo')->getChecked());
805 }
806 }

References ilPropertyFormGUI\getItemByPostVar().

Referenced by performSaveForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveTestRunProperties()

ilObjTestSettingsGeneralGUI::saveTestRunProperties ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 1076 of file class.ilObjTestSettingsGeneralGUI.php.

1077 {
1078 if (!$this->testOBJ->participantDataExist()) {
1079 // nr of tries (max passes)
1080 if ($form->getItemByPostVar('limitPasses') instanceof ilFormPropertyGUI) {
1081 if ($form->getItemByPostVar('limitPasses')->getChecked()) {
1082 $this->testOBJ->setNrOfTries($form->getItemByPostVar('nr_of_tries')->getValue());
1083
1084 $this->testOBJ->setBlockPassesAfterPassedEnabled(
1085 (bool) $form->getItemByPostVar('block_after_passed')->getChecked()
1086 );
1087 } else {
1088 $this->testOBJ->setNrOfTries(0);
1089 $this->testOBJ->setBlockPassesAfterPassedEnabled(false);
1090 }
1091 }
1092
1093 // pass_waiting
1094 if ($form->getItemByPostVar('pass_waiting_enabled') instanceof ilFormPropertyGUI) {
1095 if ($form->getItemByPostVar('pass_waiting_enabled')->getChecked()) {
1096 $pass_waiting_values = $form->getItemByPostVar('pass_waiting');
1097
1098 $pass_waiting_duration[] = sprintf("%'.02d", $pass_waiting_values->getMonths());
1099 $pass_waiting_duration[] = sprintf("%'.03d", $pass_waiting_values->getDays());
1100 $pass_waiting_duration[] = sprintf("%'.02d", $pass_waiting_values->getHours());
1101 $pass_waiting_duration[] = sprintf("%'.02d", $pass_waiting_values->getMinutes());
1102 $pass_waiting_duration[] = sprintf("%'.02d", $pass_waiting_values->getSeconds());
1103
1104 $pass_waiting_string = implode(':', $pass_waiting_duration);
1105 $this->testOBJ->setPassWaiting($pass_waiting_string);
1106 } else {
1107 $this->testOBJ->setPassWaiting("00:000:00:00:00");
1108 }
1109 }
1110
1111 $this->testOBJ->setEnableProcessingTime($form->getItemByPostVar('chb_processing_time')->getChecked());
1112 if ($this->testOBJ->getEnableProcessingTime()) {
1113 $this->testOBJ->setProcessingTimeByMinutes($form->getItemByPostVar('processing_time')->getValue());
1114 $this->testOBJ->setResetProcessingTime($form->getItemByPostVar('chb_reset_processing_time')->getChecked());
1115 } else {
1116 $this->testOBJ->setProcessingTime('');
1117 $this->testOBJ->setResetProcessingTime(false);
1118 }
1119 }
1120
1121 if ($form->getItemByPostVar('kiosk') instanceof ilFormPropertyGUI) {
1122 $this->testOBJ->setKioskMode($form->getInput('kiosk'));
1123 $kioskOptions = $form->getItemByPostVar('kiosk_options')->getValue();
1124 if (is_array($kioskOptions)) {
1125 $this->testOBJ->setShowKioskModeTitle(in_array('kiosk_title', $kioskOptions));
1126 $this->testOBJ->setShowKioskModeParticipant(in_array('kiosk_participant', $kioskOptions));
1127 } else {
1128 $this->testOBJ->setShowKioskModeTitle(false);
1129 $this->testOBJ->setShowKioskModeParticipant(false);
1130 }
1131 }
1132
1133 if ($form->getItemByPostVar('examid_in_test_pass') instanceof ilFormPropertyGUI) {
1134 $value = $form->getItemByPostVar('examid_in_test_pass')->getChecked();
1135 $this->testOBJ->setShowExamIdInTestPassEnabled($value);
1136 }
1137 }
getInput($a_post_var, $ensureValidation=true)
Returns the value of a HTTP-POST variable, identified by the passed id.

References ilPropertyFormGUI\getInput(), and ilPropertyFormGUI\getItemByPostVar().

Referenced by performSaveForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveTestSequenceSettings()

ilObjTestSettingsGeneralGUI::saveTestSequenceSettings ( ilPropertyFormGUI  $form)
private
Parameters
ilPropertyFormGUI$form

Definition at line 1429 of file class.ilObjTestSettingsGeneralGUI.php.

1430 {
1431 if ($this->formPropertyExists($form, 'chb_use_previous_answers')) {
1432 $this->testOBJ->setUsePreviousAnswers($form->getInput('chb_use_previous_answers'));
1433 }
1434
1435 if ($this->formPropertyExists($form, 'chb_show_cancel')) {
1436 $this->testOBJ->setShowCancel($form->getItemByPostVar('chb_show_cancel')->getChecked());
1437 }
1438
1439 if ($this->formPropertyExists($form, 'postpone')) {
1440 $this->testOBJ->setPostponingEnabled((bool) $form->getItemByPostVar('postpone')->getValue());
1441 }
1442
1443 $this->testOBJ->setListOfQuestions($form->getItemByPostVar('list_of_questions')->getChecked());
1444 $listOfQuestionsOptions = $form->getItemByPostVar('list_of_questions_options')->getValue();
1445 if (is_array($listOfQuestionsOptions)) {
1446 $this->testOBJ->setListOfQuestionsStart(in_array('chb_list_of_questions_start', $listOfQuestionsOptions));
1447 $this->testOBJ->setListOfQuestionsEnd(in_array('chb_list_of_questions_end', $listOfQuestionsOptions));
1448 $this->testOBJ->setListOfQuestionsDescription(in_array('chb_list_of_questions_with_description', $listOfQuestionsOptions));
1449 } else {
1450 $this->testOBJ->setListOfQuestionsStart(0);
1451 $this->testOBJ->setListOfQuestionsEnd(0);
1452 $this->testOBJ->setListOfQuestionsDescription(0);
1453 }
1454
1455 if ($this->formPropertyExists($form, 'chb_show_marker')) {
1456 $this->testOBJ->setShowMarker($form->getItemByPostVar('chb_show_marker')->getChecked());
1457 }
1458 }

References ilTestSettingsGUI\formPropertyExists(), ilPropertyFormGUI\getInput(), and ilPropertyFormGUI\getItemByPostVar().

Referenced by performSaveForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setAnswerFixationSettingsByFormValue()

ilObjTestSettingsGeneralGUI::setAnswerFixationSettingsByFormValue (   $formValue)
protected

Definition at line 1581 of file class.ilObjTestSettingsGeneralGUI.php.

1582 {
1583 switch ($formValue) {
1585 $this->testOBJ->setInstantFeedbackAnswerFixationEnabled(false);
1586 $this->testOBJ->setFollowupQuestionAnswerFixationEnabled(false);
1587 break;
1589 $this->testOBJ->setInstantFeedbackAnswerFixationEnabled(true);
1590 $this->testOBJ->setFollowupQuestionAnswerFixationEnabled(false);
1591 break;
1593 $this->testOBJ->setInstantFeedbackAnswerFixationEnabled(false);
1594 $this->testOBJ->setFollowupQuestionAnswerFixationEnabled(true);
1595 break;
1597 $this->testOBJ->setInstantFeedbackAnswerFixationEnabled(true);
1598 $this->testOBJ->setFollowupQuestionAnswerFixationEnabled(true);
1599 break;
1600 }
1601 }

References ANSWER_FIXATION_NONE, ANSWER_FIXATION_ON_FOLLOWUP_QUESTION, ANSWER_FIXATION_ON_IFB_OR_FUQST, and ANSWER_FIXATION_ON_INSTANT_FEEDBACK.

Referenced by saveQuestionBehaviourProperties().

+ Here is the caller graph for this function:

◆ showConfirmation()

ilObjTestSettingsGeneralGUI::showConfirmation ( ilPropertyFormGUI  $form,
  $oldQuestionSetType,
  $newQuestionSetType,
  $hasQuestionsWithoutQuestionpool 
)
private

Definition at line 151 of file class.ilObjTestSettingsGeneralGUI.php.

152 {
153 require_once 'Modules/Test/classes/confirmations/class.ilTestSettingsChangeConfirmationGUI.php';
154 $confirmation = new ilTestSettingsChangeConfirmationGUI($this->lng, $this->testOBJ);
155
156 $confirmation->setFormAction($this->ctrl->getFormAction($this));
157 $confirmation->setCancel($this->lng->txt('cancel'), self::CMD_SHOW_FORM);
158 $confirmation->setConfirm($this->lng->txt('confirm'), self::CMD_CONFIRMED_SAVE_FORM);
159
160 $confirmation->setOldQuestionSetType($oldQuestionSetType);
161 $confirmation->setNewQuestionSetType($newQuestionSetType);
162 $confirmation->setQuestionLossInfoEnabled($hasQuestionsWithoutQuestionpool);
163 $confirmation->build();
164
165 $confirmation->populateParametersFromPropertyForm($form, $this->activeUser->getTimeZone());
166
167 $this->tpl->setContent($this->ctrl->getHTML($confirmation));
168 }

Referenced by saveFormCmd().

+ Here is the caller graph for this function:

◆ showFormCmd()

ilObjTestSettingsGeneralGUI::showFormCmd ( ilPropertyFormGUI  $form = null)
private

Definition at line 137 of file class.ilObjTestSettingsGeneralGUI.php.

138 {
139 $this->tpl->addJavascript("./Services/JavaScript/js/Basic.js");
140
141 if ($form === null) {
142 $form = $this->buildForm();
143 }
144
145 $formHTML = $this->ctrl->getHTML($form);
146 $msgHTML = $this->getSettingsTemplateMessageHTML();
147
148 $this->tpl->setContent($formHTML . $msgHTML);
149 }

References buildForm(), and getSettingsTemplateMessageHTML().

Referenced by saveFormCmd().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showResetTemplateConfirmationCmd()

ilObjTestSettingsGeneralGUI::showResetTemplateConfirmationCmd ( )
private

Enable all settings - Confirmation.

Definition at line 387 of file class.ilObjTestSettingsGeneralGUI.php.

388 {
389 require_once 'Services/Utilities/classes/class.ilConfirmationGUI.php';
390 $confirmationGUI = new ilConfirmationGUI();
391
392 $confirmationGUI->setFormAction($this->ctrl->getFormAction($this));
393 $confirmationGUI->setHeaderText($this->lng->txt("test_confirm_template_reset"));
394 $confirmationGUI->setCancel($this->lng->txt('cancel'), self::CMD_SHOW_FORM);
395 $confirmationGUI->setConfirm($this->lng->txt('confirm'), self::CMD_CONFIRMED_RESET_TPL);
396
397 $this->tpl->setContent($this->ctrl->getHTML($confirmationGUI));
398 }
Confirmation screen class.

Field Documentation

◆ $access

ilAccessHandler ilObjTestSettingsGeneralGUI::$access = null
protected

Definition at line 43 of file class.ilObjTestSettingsGeneralGUI.php.

Referenced by __construct().

◆ $activeUser

ilObjUser ilObjTestSettingsGeneralGUI::$activeUser = null
protected

Definition at line 61 of file class.ilObjTestSettingsGeneralGUI.php.

Referenced by __construct().

◆ $ctrl

ilCtrl ilObjTestSettingsGeneralGUI::$ctrl = null
protected

Definition at line 40 of file class.ilObjTestSettingsGeneralGUI.php.

Referenced by __construct().

◆ $db

ilDBInterface ilObjTestSettingsGeneralGUI::$db = null
protected

Definition at line 55 of file class.ilObjTestSettingsGeneralGUI.php.

Referenced by __construct().

◆ $lng

ilLanguage ilObjTestSettingsGeneralGUI::$lng = null
protected

Definition at line 46 of file class.ilObjTestSettingsGeneralGUI.php.

Referenced by __construct().

◆ $pluginAdmin

ilPluginAdmin ilObjTestSettingsGeneralGUI::$pluginAdmin = null
protected

Definition at line 58 of file class.ilObjTestSettingsGeneralGUI.php.

Referenced by __construct().

◆ $testGUI

ilObjTestGUI ilObjTestSettingsGeneralGUI::$testGUI = null
protected

Definition at line 64 of file class.ilObjTestSettingsGeneralGUI.php.

Referenced by __construct().

◆ $testQuestionSetConfigFactory

ilObjTestSettingsGeneralGUI::$testQuestionSetConfigFactory = null
private

Definition at line 67 of file class.ilObjTestSettingsGeneralGUI.php.

◆ $tpl

ilGlobalTemplateInterface ilObjTestSettingsGeneralGUI::$tpl = null
protected

◆ $tree

ilTree ilObjTestSettingsGeneralGUI::$tree = null
protected

Definition at line 52 of file class.ilObjTestSettingsGeneralGUI.php.

Referenced by __construct().

◆ ANSWER_FIXATION_NONE

◆ ANSWER_FIXATION_ON_FOLLOWUP_QUESTION

const ilObjTestSettingsGeneralGUI::ANSWER_FIXATION_ON_FOLLOWUP_QUESTION = 'followup_question'

◆ ANSWER_FIXATION_ON_IFB_OR_FUQST

const ilObjTestSettingsGeneralGUI::ANSWER_FIXATION_ON_IFB_OR_FUQST = 'ifb_or_fuqst'

◆ ANSWER_FIXATION_ON_INSTANT_FEEDBACK

const ilObjTestSettingsGeneralGUI::ANSWER_FIXATION_ON_INSTANT_FEEDBACK = 'instant_feedback'

◆ CMD_CONFIRMED_RESET_TPL

const ilObjTestSettingsGeneralGUI::CMD_CONFIRMED_RESET_TPL = 'confirmedResetTemplate'

Definition at line 29 of file class.ilObjTestSettingsGeneralGUI.php.

◆ CMD_CONFIRMED_SAVE_FORM

const ilObjTestSettingsGeneralGUI::CMD_CONFIRMED_SAVE_FORM = 'confirmedSaveForm'

Definition at line 27 of file class.ilObjTestSettingsGeneralGUI.php.

◆ CMD_SAVE_FORM

const ilObjTestSettingsGeneralGUI::CMD_SAVE_FORM = 'saveForm'

Definition at line 26 of file class.ilObjTestSettingsGeneralGUI.php.

◆ CMD_SHOW_FORM

const ilObjTestSettingsGeneralGUI::CMD_SHOW_FORM = 'showForm'

◆ CMD_SHOW_RESET_TPL_CONFIRM

const ilObjTestSettingsGeneralGUI::CMD_SHOW_RESET_TPL_CONFIRM = 'showResetTemplateConfirmation'

Definition at line 28 of file class.ilObjTestSettingsGeneralGUI.php.

◆ INSTANT_FEEDBACK_TRIGGER_FORCED

const ilObjTestSettingsGeneralGUI::INSTANT_FEEDBACK_TRIGGER_FORCED = 1

◆ INSTANT_FEEDBACK_TRIGGER_MANUAL

const ilObjTestSettingsGeneralGUI::INSTANT_FEEDBACK_TRIGGER_MANUAL = 0

The documentation for this class was generated from the following file: