ThemeManager
class ThemeManager implements ThemeManagerInterface (View source)
Provides the default implementation of a theme manager.
Properties
| protected ThemeNegotiatorInterface | $themeNegotiator | The theme negotiator. |
|
| protected Registry | $themeRegistry | The theme registry used to render an output. |
|
| protected ActiveTheme | $activeTheme | Contains the current active theme. |
|
| protected ThemeInitializationInterface | $themeInitialization | The theme initialization. |
|
| protected ModuleHandlerInterface | $moduleHandler | The module handler. |
|
| protected string | $root | The app root. |
Methods
Constructs a new ThemeManager object.
Determines whether there is an active theme.
Resets the current active theme.
Generates themed output.
Initializes the active theme for a given route match.
Provides an alter hook for a specific theme.
Passes alterable variables to specific $theme_TYPE_alter() implementations.
Details
__construct(string $root, ThemeNegotiatorInterface $theme_negotiator, ThemeInitializationInterface $theme_initialization, ModuleHandlerInterface $module_handler)
Constructs a new ThemeManager object.
$this
setThemeRegistry(Registry $theme_registry)
Sets the theme registry.
ActiveTheme
getActiveTheme(RouteMatchInterface $route_match = NULL)
Returns the active theme object.
bool
hasActiveTheme()
Determines whether there is an active theme.
$this
resetActiveTheme()
Resets the current active theme.
Note: This method should not be used in common cases, just in special cases like tests.
$this
setActiveTheme(ActiveTheme $active_theme)
Sets the current active theme manually.
Note: This method should not be used in common cases, just in special cases like tests.
string|MarkupInterface
render(string $hook, array $variables)
Generates themed output.
See the @link themeable Default theme implementations topic @endlink for details.
protected
initTheme(RouteMatchInterface $route_match = NULL)
Initializes the active theme for a given route match.
alterForTheme(ActiveTheme $theme, string|array $type, mixed $data, mixed $context1 = NULL, mixed $context2 = NULL)
Provides an alter hook for a specific theme.
Similar to ::alter, it also invokes the alter hooks for the base themes.
alter(string|array $type, mixed $data, mixed $context1 = NULL, mixed $context2 = NULL)
Passes alterable variables to specific $theme_TYPE_alter() implementations.
Executes an alter hook on the current theme. It also invokes alter hooks for all base themes.
$theme specifies the theme name of the active theme and all its base themes.
This dispatch function hands off the passed-in variables to type-specific $theme_TYPE_alter() implementations in the active theme. It ensures a consistent interface for all altering operations.
A maximum of 2 alterable arguments is supported. In case more arguments need to be passed and alterable, modules provide additional variables assigned by reference in the last $context argument: