function init_theme in Drupal 6
Same name and namespace in other branches
- 4 includes/theme.inc \init_theme()
- 5 includes/theme.inc \init_theme()
Initialize the theme system by loading the theme.
5 calls to init_theme()
- block_admin_display_form in modules/
block/ block.admin.inc - Generate main blocks administration form.
- drupal_render_form in includes/
form.inc - Renders a structured form array into themed HTML.
- path_to_theme in includes/
theme.inc - Return the path to the current themed element.
- theme in includes/
theme.inc - Generates the themed output.
- _block_rehash in modules/
block/ block.module - Update the 'blocks' DB table with the blocks currently exported by modules.
File
- includes/
theme.inc, line 42 - The theme system, which controls the output of Drupal.
Code
function init_theme() {
global $theme, $user, $custom_theme, $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 enabled themes.
$theme = !empty($user->theme) && !empty($themes[$user->theme]->status) ? $user->theme : variable_get('theme_default', 'garland');
// Allow modules to override the present theme... only select custom theme
// if it is available in the list of installed themes.
$theme = $custom_theme && $themes[$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)) {
$base_theme[] = $new_base_theme = $themes[$themes[$ancestor]->base_theme];
$ancestor = $themes[$ancestor]->base_theme;
}
_init_theme($themes[$theme], array_reverse($base_theme));
}