diff --git a/src/View/RegionViewBuilder.php b/src/View/RegionViewBuilder.php index 4533012..5ebbb01 100644 --- a/src/View/RegionViewBuilder.php +++ b/src/View/RegionViewBuilder.php @@ -7,7 +7,9 @@ use Drupal\Core\Cache\CacheableMetadata; use Drupal\Core\Config\ConfigFactoryInterface; use Drupal\Core\Controller\TitleResolverInterface; use Drupal\Core\Entity\EntityTypeManagerInterface; +use Drupal\Core\Extension\ThemeHandlerInterface; use Drupal\Core\Routing\RouteObjectInterface; +use Drupal\Core\Theme\ThemeManagerInterface; use Symfony\Component\HttpFoundation\RequestStack; /** @@ -43,6 +45,13 @@ class RegionViewBuilder { */ protected $titleResolver; + /** + * The theme manager. + * + * @var \Drupal\Core\Theme\ThemeManagerInterface + */ + protected $themeManager; + /** * Constructs a RegionViewBuilder object. */ @@ -50,12 +59,14 @@ class RegionViewBuilder { EntityTypeManagerInterface $entity_type_manager, ConfigFactoryInterface $config_factory, RequestStack $request_stack, - TitleResolverInterface $title_resolver + TitleResolverInterface $title_resolver, + ThemeManagerInterface $theme_manager ) { $this->entityTypeManager = $entity_type_manager; $this->configFactory = $config_factory; $this->requestStack = $request_stack; $this->titleResolver = $title_resolver; + $this->themeManager = $theme_manager; } /** @@ -71,10 +82,9 @@ class RegionViewBuilder { * A render array to display the region content. */ public function build(string $region, string $theme = NULL): array { - $blocks = $this->entityTypeManager->getStorage('block')->loadByProperties([ 'region' => $region, - 'theme' => $theme ?: $this->configFactory->get('system.theme')->get('default'), + 'theme' => $theme ?: $this->themeManager->getActiveTheme()->getName(), ]); $view_builder = $this->entityTypeManager->getViewBuilder('block'); diff --git a/twig_tweak.services.yml b/twig_tweak.services.yml index f5c6ef3..5f47fb1 100644 --- a/twig_tweak.services.yml +++ b/twig_tweak.services.yml @@ -11,7 +11,7 @@ services: twig_tweak.region_view_builder: class: Drupal\twig_tweak\View\RegionViewBuilder - arguments: ['@entity_type.manager', '@config.factory', '@request_stack', '@title_resolver'] + arguments: ['@entity_type.manager', '@config.factory', '@request_stack', '@title_resolver', '@theme.manager'] twig_tweak.entity_view_builder: class: Drupal\twig_tweak\View\EntityViewBuilder