1 theme.inc | theme_get_setting($setting_name, $theme = NULL) |
Retrieves a setting for the current theme or for a given theme.
The final setting is obtained from the last value found in the following sources:
- the default theme-specific settings defined in any base theme's .info file
- the default theme-specific settings defined in the theme's .info file
- the saved values from the theme's settings form
Parameters
$setting_name: The name of the setting to be retrieved.
$theme: The name of a given theme; defaults to the current theme.
Return value
The value of the requested setting, NULL if the setting does not exist.:
File
- core/
includes/ theme.inc, line 1455 - The theme system, which controls the output of Backdrop.
Code
function theme_get_setting($setting_name, $theme = NULL) {
$configs = &backdrop_static(__FUNCTION__, array());
// If no key is given, use the current theme if we can determine it.
if (!isset($theme)) {
$theme = !empty($GLOBALS['theme_key']) ? $GLOBALS['theme_key'] : '';
}
if (empty($theme)) {
return;
}
if (empty($configs[$theme])) {
$configs[$theme] = config($theme . '.settings');
$configs[$theme]->load();
}
// If the setting is not found in config, load the default from the theme's
// info file.
$value = $configs[$theme]->get($setting_name);
if (is_null($value)) {
$themes = list_themes();
$theme_info = $themes[$theme];
$value = isset($theme_info->info['settings'][$setting_name]) ? $theme_info->info['settings'][$setting_name] : NULL;
}
// Loop up through any base themes.
if (is_null($value) && isset($theme_info->info['base theme'])) {
$value = theme_get_setting($setting_name, $theme_info->info['base theme']);
}
return $value;
}