1 theme.inc theme_get_registry($complete = TRUE)

Gets the theme registry.

Parameters

$complete: Optional boolean to indicate whether to return the complete theme registry array or an instance of the ThemeRegistry class. If TRUE, the complete theme registry array will be returned. This is useful if you want to foreach over the whole registry, use array_* functions or inspect it in a debugger. If FALSE, an instance of the ThemeRegistry class will be returned, this provides an ArrayObject which allows it to be accessed with array syntax and isset(), and should be more lightweight than the full registry. Defaults to TRUE.

Return value

array: The complete theme registry array, or an instance of the ThemeRegistry class.

File

core/includes/theme.inc, line 282
The theme system, which controls the output of Backdrop.

Code

function theme_get_registry($complete = TRUE) {
  // Use the advanced backdrop_static() pattern, since this is called very often.
  static $backdrop_static_fast;
  if (!isset($backdrop_static_fast)) {
    $backdrop_static_fast['registry'] = &backdrop_static('theme_get_registry');
  }
  $theme_registry = &$backdrop_static_fast['registry'];

  // Initialize the theme, if this is called early in the bootstrap, or after
  // static variables have been reset.
  if (!is_array($theme_registry)) {
    backdrop_theme_initialize();
    $theme_registry = array();
  }

  $key = (int) $complete;

  if (!isset($theme_registry[$key])) {
    list($callback, $arguments) = _theme_registry_callback();
    if (!$complete) {
      $arguments[] = FALSE;
    }
    $theme_registry[$key] = call_user_func_array($callback, $arguments);
  }

  return $theme_registry[$key];
}