From 919d94be6eeaa0f4b455dfc12663527b9d08ef0a Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Sat, 3 Oct 2009 19:27:44 +0000 Subject: [PATCH] - Patch #592008 by moshe weitzman | chx: don't initialize theme system before modules are included. --- includes/bootstrap.inc | 3 +++ includes/theme.inc | 9 +++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc index a5a7d5d8b2e..cda1bb8b81e 100644 --- a/includes/bootstrap.inc +++ b/includes/bootstrap.inc @@ -1388,6 +1388,9 @@ function drupal_anonymous_user($session = '') { * @param $new_phase * A boolean, set to FALSE if calling drupal_bootstrap from inside a * function called from drupal_bootstrap (recursion). + * @return + * The most recently completed phase. + * */ function drupal_bootstrap($phase = NULL, $new_phase = TRUE) { $final_phase = &drupal_static(__FUNCTION__ . '_final_phase'); diff --git a/includes/theme.inc b/includes/theme.inc index ca0e533aa77..736662db6a8 100644 --- a/includes/theme.inc +++ b/includes/theme.inc @@ -251,13 +251,18 @@ function _theme_load_registry($theme, $base_theme = NULL, $theme_engine = NULL) $cache = cache_get("theme_registry:$theme->name", 'cache'); if (isset($cache->data)) { $registry = $cache->data; + _theme_set_registry($registry); } else { // If not, build one and cache it. $registry = _theme_build_registry($theme, $base_theme, $theme_engine); - _theme_save_registry($theme, $registry); + // Only persist this registry if all modules are loaded. This assures a + // complete set of theme hooks. + if (drupal_get_bootstrap_phase() == DRUPAL_BOOTSTRAP_FULL) { + _theme_save_registry($theme, $registry); + _theme_set_registry($registry); + } } - _theme_set_registry($registry); } /**