Browse Source

3374193: Adding theme manager for active theme

merge-requests/34/head
mark-casias 2 years ago committed by Ivan
parent
commit
f6fe28bed5
  1. 16
      src/View/RegionViewBuilder.php
  2. 2
      twig_tweak.services.yml

16
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');

2
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

Loading…
Cancel
Save