| 5 theme.inc | theme_get_settings($key = NULL) |
| 6 theme.inc | theme_get_settings($key = NULL) |
Retrieve an associative array containing the settings for a theme.
The final settings are arrived at by merging the default settings, the site-wide settings, and the settings defined for the specific theme. If no $key was specified, only the site-wide theme defaults are retrieved.
The default values for each of settings are also defined in this function. To add new settings, add their default values here, and then add form elements to system_theme_settings() in system.module.
Parameters
$key: The template/style value for a given theme.
Return value
An associative array containing theme settings.
File
- includes/
theme.inc, line 960 - The theme system, which controls the output of Drupal.
Code
<?php
function theme_get_settings($key = NULL) {
$defaults = array(
'mission' => '',
'default_logo' => 1,
'logo_path' => '',
'default_favicon' => 1,
'favicon_path' => '',
'primary_links' => 1,
'secondary_links' => 1,
'toggle_logo' => 1,
'toggle_favicon' => 1,
'toggle_name' => 1,
'toggle_search' => 1,
'toggle_slogan' => 0,
'toggle_mission' => 1,
'toggle_node_user_picture' => 0,
'toggle_comment_user_picture' => 0,
'toggle_primary_links' => 1,
'toggle_secondary_links' => 1,
);
if (module_exists('node')) {
foreach (node_get_types() as $type => $name) {
$defaults['toggle_node_info_' . $type] = 1;
}
}
$settings = array_merge($defaults, variable_get('theme_settings', array()));
if ($key) {
$settings = array_merge($settings, variable_get(str_replace('/', '_', 'theme_' . $key . '_settings'), array()));
}
// Only offer search box if search.module is enabled.
if (!module_exists('search') || !user_access('search content')) {
$settings['toggle_search'] = 0;
}
return $settings;
}
?> Login or register to post comments
Comments
inheritance
When a theme is enabled, it inherits all the global theme settings.
Then the local theme settings override the global settings - even if they are blank.
Modifying global theme settings will not affect themes which are already installed.
- I think