function drupal_theme_initialize

Initialize the theme system by loading the theme.

14 calls to drupal_theme_initialize()
batch_process in drupal/core/includes/form.inc
Processes the batch.
block_admin_display in drupal/core/modules/block/block.admin.inc
Page callback: Shows the block administration page.
block_page_build in drupal/core/modules/block/block.module
Implements hook_page_build().
l in drupal/core/includes/common.inc
Formats an internal or external URL link as an HTML anchor tag.
LegacyRequestSubscriber::onKernelRequestLegacy in drupal/core/lib/Drupal/Core/EventSubscriber/LegacyRequestSubscriber.php
Initializes the rest of the legacy Drupal subsystems.

... See full list

File

drupal/core/includes/theme.inc, line 80
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', 'stark');

  // 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');
}