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