19 declare(strict_types=1);
52 if ($this->global_test_settings ===
null) {
62 if (($process_lock_mode = ProcessLockModes::tryFrom(
63 $this->settings_test->get(self::SETTINGS_KEY_PROCESS_LOCK_MODE) ??
'' 66 $global_settings = $global_settings->withProcessLockMode($process_lock_mode);
69 if (($image_map_line_color = $this->settings_test->get(self::SETTINGS_KEY_IMAGE_MAP_LINE_COLOR)) !==
null) {
70 $global_settings = $global_settings->withImageMapLineColor($image_map_line_color);
73 if (($user_identifier = UserIdentifiers::tryFrom(
74 $this->settings_test->get(self::SETTINGS_KEY_UNIQUE_USER_IDENTIFIER) ??
'' 77 $global_settings = $global_settings->withUserIdentifier($user_identifier);
80 if (($skill_triggering_number_of_answers = $this->settings_test->get(self::SETTINGS_KEY_SKILL_TRIGGERING_NUMBER_OF_ANSWERS)) !==
null) {
81 $global_settings = $global_settings->withSkillTriggeringNumberOfAnswers((
int) $skill_triggering_number_of_answers);
84 if (($export_essay_questions_as_html = $this->settings_test->get(self::SETTINGS_KEY_EXPORT_ESSAY_QUESTIONS_AS_HTML)) !==
null) {
85 $global_settings = $global_settings->withExportEssayQuestionsAsHtml($export_essay_questions_as_html ===
'1');
88 if (($disabled_question_types_legacy = $this->settings_test->get(self::SETTINGS_KEY_DISABLED_QUESTION_TYPES_LEGACY)) !==
null) {
92 if (($disabled_question_types = $this->settings_test->get(self::SETTINGS_KEY_DISABLED_QUESTION_TYPES)) !==
null) {
93 $global_settings = $global_settings->withDisabledQuestionTypes(explode(
',', $disabled_question_types));
96 if (($manual_scoring_legacy = $this->settings_test->get(self::SETTINGS_KEY_MANUAL_SCORING_LEGACY)) !==
null) {
100 if (($manual_scoring_enabled = $this->settings_test->get(self::SETTINGS_KEY_MANUAL_SCORING_ENABLED)) !==
null) {
101 $global_settings = $global_settings->withManualScoringEnabled($manual_scoring_enabled ===
'1');
104 if (($adjusting_questions_with_results_allowed = $this->settings_test->get(self::SETTINGS_KEY_ADJUSTING_QUESTIONS_WITH_RESULTS_ALLOWED)) !==
null) {
105 $global_settings = $global_settings->withAdjustingQuestionsWithResultsAllowed($adjusting_questions_with_results_allowed ===
'1');
108 if (($page_editor_enabled = $this->settings_global->get(self::SETTINGS_KEY_PAGE_EDITOR_ENABLED)) !==
null) {
109 $global_settings = $global_settings->withPageEditorEnabled($page_editor_enabled ===
'1');
112 return $global_settings;
117 $this->settings_test->set(self::SETTINGS_KEY_PROCESS_LOCK_MODE, $global_settings->
getProcessLockMode()->value);
118 $this->settings_test->set(self::SETTINGS_KEY_IMAGE_MAP_LINE_COLOR, $global_settings->
getImageMapLineColor());
119 $this->settings_test->set(self::SETTINGS_KEY_UNIQUE_USER_IDENTIFIER, $global_settings->
getUserIdentifier()->value);
122 $this->settings_test->set(self::SETTINGS_KEY_DISABLED_QUESTION_TYPES, implode(
',', $global_settings->
getDisabledQuestionTypes()));
123 $this->settings_test->set(self::SETTINGS_KEY_MANUAL_SCORING_ENABLED, $global_settings->
isManualScoringEnabled() ?
'1' :
'0');
126 $this->global_test_settings = $global_settings;
131 if ($this->test_logging_settings ===
null) {
133 $this->settings_test->get(self::SETTINGS_KEY_LOGGING_ENABLED) ===
'1',
134 $this->settings_test->get(self::SETTINGS_KEY_IP_LOGGING_ENABLED) !==
'0' 142 $this->settings_test->set(self::SETTINGS_KEY_LOGGING_ENABLED, $logging_settings->
isLoggingEnabled() ?
'1' :
'0');
143 $this->settings_test->set(self::SETTINGS_KEY_IP_LOGGING_ENABLED, $logging_settings->
isIPLoggingEnabled() ?
'1' :
'0');
148 $this->settings_test->delete(self::SETTINGS_KEY_DISABLED_QUESTION_TYPES_LEGACY);
149 $this->settings_test->set(self::SETTINGS_KEY_DISABLED_QUESTION_TYPES, implode(
',', unserialize($legacy_types, [
'allowed_classes' =>
false]) ?? []));
154 $this->settings_test->delete(self::SETTINGS_KEY_MANUAL_SCORING_LEGACY);
155 $this->settings_test->set(self::SETTINGS_KEY_MANUAL_SCORING_ENABLED, array_filter(
array_map(
'intval', explode(
',', $legacy_manual_scoring))) !== [] ?
'1' :
'0');
getSkillTriggeringNumberOfAnswers()
const SETTINGS_KEY_PAGE_EDITOR_ENABLED
const SETTINGS_KEY_ADJUSTING_QUESTIONS_WITH_RESULTS_ALLOWED
const SETTINGS_KEY_PROCESS_LOCK_MODE
const SETTINGS_KEY_UNIQUE_USER_IDENTIFIER
getExportEssayQuestionsAsHtml()
buildGlobalTestSettings()
__construct(private \ilSetting $settings_global, private \ilSetting $settings_test)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
const SETTINGS_KEY_EXPORT_ESSAY_QUESTIONS_AS_HTML
migrateLegacyQuestionTypes(string $legacy_types)
const SETTINGS_KEY_LOGGING_ENABLED
TestLoggingSettings $test_logging_settings
const SETTINGS_KEY_MANUAL_SCORING_LEGACY
migrateLegacyManualScoring(string $legacy_manual_scoring)
getDisabledQuestionTypes()
const SETTINGS_KEY_DISABLED_QUESTION_TYPES
const SETTINGS_KEY_SKILL_TRIGGERING_NUMBER_OF_ANSWERS
const SETTINGS_KEY_DISABLED_QUESTION_TYPES_LEGACY
const SETTINGS_KEY_MANUAL_SCORING_ENABLED
storeLoggingSettings(TestLoggingSettings $logging_settings)
const SETTINGS_KEY_IP_LOGGING_ENABLED
const SETTINGS_KEY_IMAGE_MAP_LINE_COLOR
isAdjustingQuestionsWithResultsAllowed()
storeGlobalSettings(GlobalTestSettings $global_settings)
GlobalTestSettings $global_test_settings