Skip to content
Snippets Groups Projects
Select Git revision
  • issue-703
  • master default
  • issue-752
  • develop
  • issue-677
  • issue-677-original-with-migrate
  • issue-716
  • issue-654
  • issue-732
  • issue-737
  • issue-735
  • issue-707
  • issue-706
  • issue-705
  • issue-696
  • issue-690
  • issue-675
  • issue-670
  • issue-635
  • issue-404
  • 7.19
  • 2012-04-18
  • 2012-04-03
  • 2012-04-02
  • 2012-03-01
  • 2012-02-07
  • 20120207
  • 2012-01-13
  • 2012-01-12
  • 2011-12-16
  • 2011-12-05
  • 2011-11-17
  • 2011-11-14
  • 2011-11-08.2
  • 2011-11-08
  • 2011-11-01
  • 2011-10-27
  • 2011-10-06
  • 2011-10-03
  • 2011-09-19
40 results

theme.maintenance.inc

Blame
  • Forked from UNL Information Services / UNL-CMS
    59 commits behind the upstream repository.
    theme.maintenance.inc 6.90 KiB
    <?php
    
    /**
     * @file
     * Theming for maintenance pages.
     */
    
    /**
     * Sets up the theming system for maintenance page.
     *
     * Used for site installs, updates and when the site is in maintenance mode.
     * It also applies when the database is unavailable or bootstrap was not
     * complete. Seven is always used for the initial install and update
     * operations. In other cases, Bartik is used, but this can be overridden by
     * setting a "maintenance_theme" key in the $conf variable in settings.php.
     */
    function _drupal_maintenance_theme() {
      global $theme, $theme_key, $conf;
    
      // If $theme is already set, assume the others are set too, and do nothing.
      if (isset($theme)) {
        return;
      }
    
      require_once DRUPAL_ROOT . '/' . variable_get('path_inc', 'includes/path.inc');
      require_once DRUPAL_ROOT . '/includes/theme.inc';
      require_once DRUPAL_ROOT . '/includes/common.inc';
      require_once DRUPAL_ROOT . '/includes/unicode.inc';
      require_once DRUPAL_ROOT . '/includes/file.inc';
      require_once DRUPAL_ROOT . '/includes/module.inc';
      unicode_check();
    
      // Install and update pages are treated differently to prevent theming overrides.
      if (defined('MAINTENANCE_MODE') && (MAINTENANCE_MODE == 'install' || MAINTENANCE_MODE == 'update')) {
        $custom_theme = (isset($conf['maintenance_theme']) ? $conf['maintenance_theme'] : 'seven');
      }
      else {
        // The bootstrap was not complete. So we are operating in a crippled
        // environment, we need to bootstrap just enough to allow hook invocations
        // to work. See _drupal_log_error().
        if (!class_exists('Database', FALSE)) {
          require_once DRUPAL_ROOT . '/includes/database/database.inc';
        }
    
        // We use the default theme as the maintenance theme. If a default theme
        // isn't specified in the database or in settings.php, we use Bartik.
        $custom_theme = variable_get('maintenance_theme', variable_get('theme_default', 'bartik'));
      }
    
      // Ensure that system.module is loaded.
      if (!function_exists('_system_rebuild_theme_data')) {
        $module_list['system']['filename'] = 'modules/system/system.module';
        module_list(TRUE, FALSE, FALSE, $module_list);
        drupal_load('module', 'system');
      }
    
      $themes = list_themes();
    
      // list_themes() triggers a drupal_alter() in maintenance mode, but we can't
      // let themes alter the .info data until we know a theme's base themes. So
      // don't set global $theme until after list_themes() builds its cache.
      $theme = $custom_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)) {