diff --git a/src/Theme/VarbaseLayoutBuilderThemeNegotiator.php b/src/Theme/VarbaseLayoutBuilderThemeNegotiator.php index 5a3b3e4a8049bd2e253d104e037fe87f7f1ee01a..d4eac9641a72560400f59f018ac0b1cae404f09b 100644 --- a/src/Theme/VarbaseLayoutBuilderThemeNegotiator.php +++ b/src/Theme/VarbaseLayoutBuilderThemeNegotiator.php @@ -75,7 +75,7 @@ class VarbaseLayoutBuilderThemeNegotiator extends AjaxBasePageNegotiator { if (isset($use_claro) && $use_claro == 1) { $route_name = $route_match->getRouteName(); - if (isset($route_name) && strpos($route_name, 'layout_builder') !== FALSE) { + if (varbase_layout_builder__is_layout_builder_route()) { if ($this->themeHandler->themeExists('gin') || $this->themeHandler->themeExists('claro')) { return TRUE; } diff --git a/varbase_layout_builder.module b/varbase_layout_builder.module index 17e6f673e29c104b50e41da7e006af1a53149f06..0bcc524bf6d8dc5a2ceb82132bf36c766836e51c 100644 --- a/varbase_layout_builder.module +++ b/varbase_layout_builder.module @@ -352,3 +352,22 @@ function varbase_layout_builder_library_info_alter(&$libraries, $extension) { } } + +function varbase_layout_builder__is_layout_builder_route() { + $layout_builder_route = drupal_static(__FUNCTION__); + if ($layout_builder_route !== NULL) { + return $layout_builder_route; + } + + $route_name = \Drupal::routeMatch()->getRouteName(); + $layout_builder_route = FALSE; + + if ($route_name !== NULL && preg_match('/^(layout_builder\.([^.]+\.)?)/', $route_name)) { + $layout_builder_route = TRUE; + } + + $context = NULL; + \Drupal::moduleHandler()->alter('varbase_layout_builder__is_layout_builder_route', $layout_builder_route, $context); + unset($context); + return $layout_builder_route; +}