improvements-2.x-dev/modules/improvements_views/src/Plugin/views/area/BlockPluginArea.php
modules/improvements_views/src/Plugin/views/area/BlockPluginArea.php
<?php namespace Drupal\improvements_views\Plugin\views\area; use Drupal\Core\Form\FormStateInterface; use Drupal\druhels\BlockHelper; use Drupal\views\Attribute\ViewsArea; use Drupal\views\Plugin\views\area\AreaPluginBase; #[ViewsArea('block_plugin_area')] class BlockPluginArea extends AreaPluginBase { /** * {@inheritdoc} */ protected function defineOptions(): array { $options = parent::defineOptions(); $options['block_plugin_id'] = ['default' => '']; $options['block_title'] = ['default' => '']; return $options; } /** * {@inheritdoc} */ public function buildOptionsForm(&$form, FormStateInterface $form_state): void { parent::buildOptionsForm($form, $form_state); $form['block_plugin_id'] = [ '#type' => 'textfield', '#title' => $this->t('Block plugin id'), '#default_value' => $this->options['block_plugin_id'], ]; $form['block_title'] = [ '#type' => 'textfield', '#title' => $this->t('Block title'), '#default_value' => $this->options['block_title'], ]; } /** * {@inheritDoc} */ public function render($empty = FALSE): array { return BlockHelper::viewByBlockPluginIdUsingNativeBuilder($this->options['block_plugin_id'], TRUE, $this->options['block_title']); } }