/** * Return user config option value * * @access public * @param string $name Option name * @param mixed $default Default value that is returned in case of any error * @param int $user_id User Id, if null logged user is taken * @return mixed */ function user_config_option($option, $default = null, $user_id = null) { if (is_null($user_id)) { if (logged_user() instanceof User) { $user_id = logged_user()->getId(); } else { if (is_null($default)) { $def_value = null; // check the cache for the option default value if (GlobalCache::isAvailable()) { $def_value = GlobalCache::get('user_config_option_def_' . $option, $success); if ($success) { return $def_value; } } // default value not found in cache $def_value = UserWsConfigOptions::getDefaultOptionValue($option, $default); if (GlobalCache::isAvailable()) { GlobalCache::update('user_config_option_def_' . $option, $def_value); } return $def_value; } else { return $default; } } } // check the cache for the option value if (GlobalCache::isAvailable()) { $option_value = GlobalCache::get('user_config_option_' . $user_id . '_' . $option, $success); if ($success) { return $option_value; } } // default value not found in cache $option_value = UserWsConfigOptions::getOptionValue($option, $user_id, $default); if (GlobalCache::isAvailable()) { GlobalCache::update('user_config_option_' . $user_id . '_' . $option, $option_value); } return $option_value; }