Removed functions:
bootstrap_hook_theme_complete()
bootstrap_find_theme_includes()
Added functions:
_bootstrap_get_base_themes()
_bootstrap_preprocess_theme_suggestion()
_bootstrap_process_theme_suggestion()
_bootstrap_process_theme_registry()
_bootstrap_process_theme_registry_suggestions()
Added hook implementation:
bootstrap_theme_registry_alter()
What changed?
Sub-themes now inherit base-theme theme registry alters
Sub-themes needed to explicitly implement hook_theme()
and invoke bootstrap_hook_theme_complete()
in order to get the same "detection" as the base theme. The entire altering process has now moved into the base theme's hook_theme_registry_alter()
. Any sub-themes that implement this manual call in their hook_theme()
implementation must be removed:
7.x-3.0
/**
* Implements hook_theme().
*/
function SUB_THEME_theme(&$existing, $type, $theme, $path) {
$hooks['subtheme_hook'] = array(
'variables' => array(),
);
// Process existing registry.
bootstrap_hook_theme_complete($existing, $theme, $path . '/theme');
return $hooks;
}
7.x-3.1
If you implement custom hooks for your sub-theme, ensure the hook implementation doesn't invoke bootstrap_hook_theme_complete()
. If no hooks are defined (ie: $hooks = array();
) and this hook implementation was created just to allow the base theme to alter the registry for this sub-theme, then the entire hook can be removed.
/**
* Implements hook_theme().
*/
function SUB_THEME_theme(&$existing, $type, $theme, $path) {
$hooks['subtheme_hook'] = array(
'variables' => array(),
);
return $hooks;
}
Independent [pre]process functions are invoked for theme hook suggestion
See #2223885: Detect standalone hook_[pre]process_THEME_HOOK__SUGGESTION implementations for examples.