You are here

public function SectionStyles::onBuildRender in Block Style Plugins 8.2

Add styles to a section component.

Parameters

\Drupal\layout_builder\Event\SectionBuildRenderArrayEvent $event: The section build render array event.

File

src/EventSubscriber/SectionStyles.php, line 54

Class

SectionStyles
Adds Layout Builder section styles.

Namespace

Drupal\block_style_plugins\EventSubscriber

Code

public function onBuildRender(SectionBuildRenderArrayEvent $event) {
  $block_styles = $event
    ->getSection()
    ->getThirdPartySettings('block_style_plugins');
  if ($block_styles) {
    $build = $event
      ->getBuild();

    // Look for all available plugins.
    $available_plugins = $this->blockStyleManager
      ->getSectionDefinitions();
    foreach ($block_styles as $plugin_id => $configuration) {

      // Only instantiate plugins that are available.
      if (array_key_exists($plugin_id, $available_plugins)) {

        /** @var \Drupal\block_style_plugins\Plugin\BlockStyleInterface $plugin */
        $plugin = $this->blockStyleManager
          ->createInstance($plugin_id, $configuration);
        $build = $plugin
          ->build($build);
      }
    }
    $event
      ->setBuild($build);
  }
}