You are here

public function AllowedBlocksForm::__construct in Layout Builder Restrictions 8.2

The ModalFormController constructor.

Parameters

\Symfony\Component\HttpFoundation\RequestStack $request_stack: Request stack that controls the lifecycle of requests.

\Drupal\Core\Block\LayoutPluginManagerInterface $layout_manager: The layout plugin manager.

\Drupal\Core\Entity\EntityTypeManager $entity_type_manager: Manages entity type plugin definitions.

\Drupal\Core\TempStore\PrivateTempStoreFactory $private_temp_store_factory: Creates a private temporary storage for a collection.

\Drupal\Core\Messenger\MessengerInterface $messenger: The messenger service.

\Drupal\Core\Render\Renderer $renderer: Turns a render array into a HTML string.

File

modules/layout_builder_restrictions_by_region/src/Form/AllowedBlocksForm.php, line 144

Class

AllowedBlocksForm
Provides form for designating allowed blocks.

Namespace

Drupal\layout_builder_restrictions_by_region\Form

Code

public function __construct(RequestStack $request_stack, LayoutPluginManagerInterface $layout_manager, EntityTypeManager $entity_type_manager, PrivateTempStoreFactory $private_temp_store_factory, MessengerInterface $messenger, Renderer $renderer) {
  $this->requestStack = $request_stack;
  $this->layoutManager = $layout_manager;
  $this->entityTypeManager = $entity_type_manager;
  $this->privateTempStoreFactory = $private_temp_store_factory;
  $this->messenger = $messenger;
  $this->renderer = $renderer;

  // Build data for current form.
  $current_request = $this->requestStack
    ->getCurrentRequest();
  $entity_view_display_id = $current_request->query
    ->get('entity_view_display_id');
  $display = $this->entityTypeManager
    ->getStorage('entity_view_display')
    ->load($entity_view_display_id);
  $this->layoutPluginId = $current_request->query
    ->get('layout_plugin');
  $this->regionId = $current_request->query
    ->get('region_id');
  $this->allowedBlockCategories = $display
    ->getThirdPartySetting('layout_builder_restrictions', 'allowed_block_categories', []);
  $third_party_settings = $display
    ->getThirdPartySetting('layout_builder_restrictions', 'entity_view_mode_restriction_by_region', []);
  $this->whitelistedBlocks = isset($third_party_settings['whitelisted_blocks'][$this->layoutPluginId][$this->regionId]) ? $third_party_settings['whitelisted_blocks'][$this->layoutPluginId][$this->regionId] : [];
  $this->blacklistedBlocks = isset($third_party_settings['blacklisted_blocks'][$this->layoutPluginId][$this->regionId]) ? $third_party_settings['blacklisted_blocks'][$this->layoutPluginId][$this->regionId] : [];
  $this->restrictedCategories = isset($third_party_settings['restricted_categories'][$this->layoutPluginId][$this->regionId]) ? $third_party_settings['restricted_categories'][$this->layoutPluginId][$this->regionId] : [];
}