From 2c9c93d1900271b84f50c37451b57730f41e2ffc Mon Sep 17 00:00:00 2001 From: mohammad faqeh <59777-faqeh@users.noreply.drupalcode.org> Date: Thu, 30 Nov 2023 08:23:01 +0000 Subject: [PATCH] Issue #3404910 by mohammad faqeh: Implement Theme Negotiator for Layout Builder Route with Regular Expression Purge Match --- .../VarbaseLayoutBuilderThemeNegotiator.php | 2 +- varbase_layout_builder.module | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/Theme/VarbaseLayoutBuilderThemeNegotiator.php b/src/Theme/VarbaseLayoutBuilderThemeNegotiator.php index 5a3b3e4a..d4eac964 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 17e6f673..0bcc524b 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; +} -- GitLab