19declare(strict_types=1);
51 if ($this->global_test_settings ===
null) {
61 if (($process_lock_mode = ProcessLockModes::tryFrom(
62 $this->settings_test->get(self::SETTINGS_KEY_PROCESS_LOCK_MODE) ??
''
65 $global_settings = $global_settings->withProcessLockMode($process_lock_mode);
68 if (($image_map_line_color = $this->settings_test->get(self::SETTINGS_KEY_IMAGE_MAP_LINE_COLOR)) !==
null) {
69 $global_settings = $global_settings->withImageMapLineColor($image_map_line_color);
72 if (($user_identifier = UserIdentifiers::tryFrom(
73 $this->settings_test->get(self::SETTINGS_KEY_UNIQUE_USER_IDENTIFIER) ??
''
76 $global_settings = $global_settings->withUserIdentifier($user_identifier);
79 if (($skill_triggering_number_of_answers = $this->settings_test->get(self::SETTINGS_KEY_SKILL_TRIGGERING_NUMBER_OF_ANSWERS)) !==
null) {
80 $global_settings = $global_settings->withSkillTriggeringNumberOfAnswers((
int) $skill_triggering_number_of_answers);
83 if (($disabled_question_types_legacy = $this->settings_test->get(self::SETTINGS_KEY_DISABLED_QUESTION_TYPES_LEGACY)) !==
null) {
87 if (($disabled_question_types = $this->settings_test->get(self::SETTINGS_KEY_DISABLED_QUESTION_TYPES)) !==
null) {
88 $global_settings = $global_settings->withDisabledQuestionTypes(explode(
',', $disabled_question_types));
91 if (($manual_scoring_legacy = $this->settings_test->get(self::SETTINGS_KEY_MANUAL_SCORING_LEGACY)) !==
null) {
95 if (($manual_scoring_enabled = $this->settings_test->get(self::SETTINGS_KEY_MANUAL_SCORING_ENABLED)) !==
null) {
96 $global_settings = $global_settings->withManualScoringEnabled($manual_scoring_enabled ===
'1');
99 if (($adjusting_questions_with_results_allowed = $this->settings_test->get(self::SETTINGS_KEY_ADJUSTING_QUESTIONS_WITH_RESULTS_ALLOWED)) !==
null) {
100 $global_settings = $global_settings->withAdjustingQuestionsWithResultsAllowed($adjusting_questions_with_results_allowed ===
'1');
103 if (($page_editor_enabled = $this->settings_global->get(self::SETTINGS_KEY_PAGE_EDITOR_ENABLED)) !==
null) {
104 $global_settings = $global_settings->withPageEditorEnabled($page_editor_enabled ===
'1');
107 return $global_settings;
112 $this->settings_test->set(self::SETTINGS_KEY_PROCESS_LOCK_MODE, $global_settings->
getProcessLockMode()->value);
113 $this->settings_test->set(self::SETTINGS_KEY_IMAGE_MAP_LINE_COLOR, $global_settings->
getImageMapLineColor());
114 $this->settings_test->set(self::SETTINGS_KEY_UNIQUE_USER_IDENTIFIER, $global_settings->
getUserIdentifier()->value);
116 $this->settings_test->set(self::SETTINGS_KEY_DISABLED_QUESTION_TYPES, implode(
',', $global_settings->
getDisabledQuestionTypes()));
117 $this->settings_test->set(self::SETTINGS_KEY_MANUAL_SCORING_ENABLED, $global_settings->
isManualScoringEnabled() ?
'1' :
'0');
120 $this->global_test_settings = $global_settings;
125 if ($this->test_logging_settings ===
null) {
127 $this->settings_test->get(self::SETTINGS_KEY_LOGGING_ENABLED) ===
'1',
128 $this->settings_test->get(self::SETTINGS_KEY_IP_LOGGING_ENABLED) !==
'0'
136 $this->settings_test->set(self::SETTINGS_KEY_LOGGING_ENABLED, $logging_settings->
isLoggingEnabled() ?
'1' :
'0');
137 $this->settings_test->set(self::SETTINGS_KEY_IP_LOGGING_ENABLED, $logging_settings->
isIPLoggingEnabled() ?
'1' :
'0');
142 $this->settings_test->delete(self::SETTINGS_KEY_DISABLED_QUESTION_TYPES_LEGACY);
143 $this->settings_test->set(self::SETTINGS_KEY_DISABLED_QUESTION_TYPES, implode(
',', unserialize($legacy_types, [
'allowed_classes' =>
false]) ?? []));
148 $this->settings_test->delete(self::SETTINGS_KEY_MANUAL_SCORING_LEGACY);
149 $this->settings_test->set(self::SETTINGS_KEY_MANUAL_SCORING_ENABLED, array_filter(array_map(
'intval', explode(
',', $legacy_manual_scoring))) !== [] ?
'1' :
'0');
getSkillTriggeringNumberOfAnswers()
getDisabledQuestionTypes()
isAdjustingQuestionsWithResultsAllowed()
TestLoggingSettings $test_logging_settings
const SETTINGS_KEY_DISABLED_QUESTION_TYPES_LEGACY
const SETTINGS_KEY_PROCESS_LOCK_MODE
const SETTINGS_KEY_MANUAL_SCORING_LEGACY
const SETTINGS_KEY_IP_LOGGING_ENABLED
buildGlobalTestSettings()
migrateLegacyManualScoring(string $legacy_manual_scoring)
GlobalTestSettings $global_test_settings
const SETTINGS_KEY_ADJUSTING_QUESTIONS_WITH_RESULTS_ALLOWED
storeLoggingSettings(TestLoggingSettings $logging_settings)
__construct(private \ilSetting $settings_global, private \ilSetting $settings_test)
storeGlobalSettings(GlobalTestSettings $global_settings)
const SETTINGS_KEY_UNIQUE_USER_IDENTIFIER
const SETTINGS_KEY_LOGGING_ENABLED
const SETTINGS_KEY_SKILL_TRIGGERING_NUMBER_OF_ANSWERS
const SETTINGS_KEY_IMAGE_MAP_LINE_COLOR
migrateLegacyQuestionTypes(string $legacy_types)
const SETTINGS_KEY_PAGE_EDITOR_ENABLED
const SETTINGS_KEY_DISABLED_QUESTION_TYPES
const SETTINGS_KEY_MANUAL_SCORING_ENABLED