public function ThemeNegotiatorWrapper::determineActiveTheme in Devel 4.x
Same name and namespace in other branches
- 8.3 webprofiler/src/Theme/ThemeNegotiatorWrapper.php \Drupal\webprofiler\Theme\ThemeNegotiatorWrapper::determineActiveTheme()
- 8 webprofiler/src/Theme/ThemeNegotiatorWrapper.php \Drupal\webprofiler\Theme\ThemeNegotiatorWrapper::determineActiveTheme()
- 8.2 webprofiler/src/Theme/ThemeNegotiatorWrapper.php \Drupal\webprofiler\Theme\ThemeNegotiatorWrapper::determineActiveTheme()
Determine the active theme for the request.
Parameters
\Drupal\Core\Routing\RouteMatchInterface $route_match: The current route match object.
Return value
string|null The name of the theme, or NULL if other negotiators, like the configured default one, should be used instead.
Overrides ThemeNegotiator::determineActiveTheme
File
- webprofiler/
src/ Theme/ ThemeNegotiatorWrapper.php, line 21
Class
- ThemeNegotiatorWrapper
- Class ThemeNegotiatorWrapper.
Namespace
Drupal\webprofiler\ThemeCode
public function determineActiveTheme(RouteMatchInterface $route_match) {
// This method has changed in Drupal 8.4.x, to maintain compatibility with
// Drupal 8.3.x we check the existence or not of the classResolver
// property.
// TODO: remove this logic when we decide to drop Drupal 8.3.x support.
if (property_exists($this, 'classResolver')) {
$classResolver = $this->classResolver;
$negotiators = $this->negotiators;
}
else {
$classResolver = \Drupal::classResolver();
$negotiators = $this
->getSortedNegotiators();
}
foreach ($negotiators as $negotiator_id) {
if (property_exists($this, 'classResolver')) {
$negotiator = $classResolver
->getInstanceFromDefinition($negotiator_id);
}
else {
$negotiator = $negotiator_id;
}
if ($negotiator
->applies($route_match)) {
$theme = $negotiator
->determineActiveTheme($route_match);
if ($theme !== NULL && $this->themeAccess
->checkAccess($theme)) {
$this->negotiator = $negotiator;
return $theme;
}
}
}
}