/** * Get the configuration that should be used for the current selector * @param object (optional) current running test * @return ilCharSelectorConfig */ static function _getCurrentConfig(ilObjTest $a_test_obj = null) { global $ilSetting, $ilUser; // check configuration from administration settings $admin_config = new self(self::CONTEXT_ADMIN, true); $admin_config->setAvailability($ilSetting->get('char_selector_availability')); $admin_config->setDefinition($ilSetting->get('char_selector_definition')); if ($admin_config->getAvailability() == self::INACTIVE) { // a globally inactive selector can't be overwritten by users or tests return $admin_config; } // a test configuration is relevant for test runs if (isset($a_test_obj)) { $test_config = new self(self::CONTEXT_TEST, false); $test_config->setAvailability($a_test_obj->getCharSelectorAvailability()); $test_config->setDefinition($a_test_obj->getCharSelectorDefinition()); if ($test_config->getAvailability() != self::INHERIT) { // a specific test configuration has precedence over user configuration return $test_config; } } // check configuration from user settings $user_config = new self(self::CONTEXT_USER, true); $user_config->setAvailability($ilUser->getPref('char_selector_availability')); $user_config->setDefinition($ilUser->getPref('char_selector_definition')); if ($user_config->getAvailability() != self::INHERIT) { // take user specific config return $user_config; } else { // take admin config as default return $admin_config; } }