function drupal_theme_initialize
drupal_theme_initialize()
Initializes the theme system by loading the theme.
File
- includes/theme.inc, line 70
- The theme system, which controls the output of Drupal.
Code
function drupal_theme_initialize() { global $theme, $user, $theme_key; // If $theme is already set, assume the others are set, too, and do nothing if (isset($theme)) { return; } drupal_bootstrap(DRUPAL_BOOTSTRAP_DATABASE); $themes = list_themes(); // Only select the user selected theme if it is available in the // list of themes that can be accessed. $theme = !empty($user->theme) && drupal_theme_access($user->theme) ? $user->theme : variable_get('theme_default', 'bartik'); // Allow modules to override the theme. Validation has already been performed // inside menu_get_custom_theme(), so we do not need to check it again here. $custom_theme = menu_get_custom_theme(); $theme = !empty($custom_theme) ? $custom_theme : $theme; // Store the identifier for retrieving theme settings with. $theme_key = $theme; // Find all our ancestor themes and put them in an array. $base_theme = array(); $ancestor = $theme; while ($ancestor && isset($themes[$ancestor]->base_theme)) { $ancestor = $themes[$ancestor]->base_theme; $base_theme[] = $themes[$ancestor]; } _drupal_theme_initialize($themes[$theme], array_reverse($base_theme)); // Themes can have alter functions, so reset the drupal_alter() cache. drupal_static_reset('drupal_alter'); // Provide the page with information about the theme that's used, so that a // later Ajax request can be rendered using the same theme. // @see ajax_base_page_theme() $setting['ajaxPageState'] = array( 'theme' => $theme_key, 'theme_token' => drupal_get_token($theme_key), ); drupal_add_js($setting, 'setting'); }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!theme.inc/function/drupal_theme_initialize/7.x