class ViewsBlock in Drupal 9
Same name in this branch
- 9 core/modules/views/src/Plugin/Derivative/ViewsBlock.php \Drupal\views\Plugin\Derivative\ViewsBlock
- 9 core/modules/views/src/Plugin/Block/ViewsBlock.php \Drupal\views\Plugin\Block\ViewsBlock
Same name and namespace in other branches
- 8 core/modules/views/src/Plugin/Block/ViewsBlock.php \Drupal\views\Plugin\Block\ViewsBlock
Provides a generic Views block.
Plugin annotation
@Block(
  id = "views_block",
  admin_label = @Translation("Views Block"),
  deriver = "Drupal\views\Plugin\Derivative\ViewsBlock"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait- class \Drupal\Core\Block\BlockBase implements BlockPluginInterface, ContextAwarePluginInterface, PluginWithFormsInterface, PreviewFallbackInterface uses BlockPluginTrait, ContextAwarePluginAssignmentTrait, ContextAwarePluginTrait- class \Drupal\views\Plugin\Block\ViewsBlockBase implements ContainerFactoryPluginInterface- class \Drupal\views\Plugin\Block\ViewsBlock
 
 
- class \Drupal\views\Plugin\Block\ViewsBlockBase implements ContainerFactoryPluginInterface
 
- class \Drupal\Core\Block\BlockBase implements BlockPluginInterface, ContextAwarePluginInterface, PluginWithFormsInterface, PreviewFallbackInterface uses BlockPluginTrait, ContextAwarePluginAssignmentTrait, ContextAwarePluginTrait
 
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of ViewsBlock
4 files declare their use of ViewsBlock
- Block.php in core/modules/ views/ src/ Plugin/ views/ display/ Block.php 
- BlockComponentRenderArray.php in core/modules/ layout_builder/ src/ EventSubscriber/ BlockComponentRenderArray.php 
- ViewsBlockTest.php in core/modules/ views/ tests/ src/ Kernel/ Plugin/ ViewsBlockTest.php 
- ViewsBlockTest.php in core/modules/ views/ tests/ src/ Unit/ Plugin/ Block/ ViewsBlockTest.php 
File
- core/modules/ views/ src/ Plugin/ Block/ ViewsBlock.php, line 19 
Namespace
Drupal\views\Plugin\BlockView source
class ViewsBlock extends ViewsBlockBase {
  /**
   * {@inheritdoc}
   */
  public function build() {
    $this->view->display_handler
      ->preBlockBuild($this);
    $args = [];
    foreach ($this->view->display_handler
      ->getHandlers('argument') as $argument_name => $argument) {
      // Initialize the argument value. Work around a limitation in
      // \Drupal\views\ViewExecutable::_buildArguments() that skips processing
      // later arguments if an argument with default action "ignore" and no
      // argument is provided.
      $args[$argument_name] = $argument->options['default_action'] == 'ignore' ? 'all' : NULL;
      if (!empty($this->context[$argument_name])) {
        if ($value = $this->context[$argument_name]
          ->getContextValue()) {
          // Context values are often entities, but views arguments expect to
          // receive just the entity ID, convert it.
          if ($value instanceof EntityInterface) {
            $value = $value
              ->id();
          }
          $args[$argument_name] = $value;
        }
      }
    }
    // We ask ViewExecutable::buildRenderable() to avoid creating a render cache
    // entry for the view output by passing FALSE, because we're going to cache
    // the whole block instead.
    if ($output = $this->view
      ->buildRenderable($this->displayID, array_values($args), FALSE)) {
      // Before returning the block output, convert it to a renderable array
      // with contextual links.
      $this
        ->addContextualLinks($output);
      // Block module expects to get a final render array, without another
      // top-level #pre_render callback. So, here we make sure that Views'
      // #pre_render callback has already been applied.
      $output = View::preRenderViewElement($output);
      // Override the label to the dynamic title configured in the view.
      if (empty($this->configuration['views_label']) && $this->view
        ->getTitle()) {
        $output['#title'] = [
          '#markup' => $this->view
            ->getTitle(),
          '#allowed_tags' => Xss::getHtmlTagList(),
        ];
      }
      // When view_build is empty, the actual render array output for this View
      // is going to be empty. In that case, return just #cache, so that the
      // render system knows the reasons (cache contexts & tags) why this Views
      // block is empty, and can cache it accordingly.
      if (empty($output['view_build'])) {
        $output = [
          '#cache' => $output['#cache'],
        ];
      }
      return $output;
    }
    return [];
  }
  /**
   * {@inheritdoc}
   */
  public function getConfiguration() {
    $configuration = parent::getConfiguration();
    // Set the label to the static title configured in the view.
    if (!empty($configuration['views_label'])) {
      $configuration['label'] = $configuration['views_label'];
    }
    return $configuration;
  }
  /**
   * {@inheritdoc}
   */
  public function defaultConfiguration() {
    $settings = parent::defaultConfiguration();
    if ($this->displaySet) {
      $settings += $this->view->display_handler
        ->blockSettings($settings);
    }
    // Set custom cache settings.
    if (isset($this->pluginDefinition['cache'])) {
      $settings['cache'] = $this->pluginDefinition['cache'];
    }
    return $settings;
  }
  /**
   * {@inheritdoc}
   */
  public function blockForm($form, FormStateInterface $form_state) {
    if ($this->displaySet) {
      return $this->view->display_handler
        ->blockForm($this, $form, $form_state);
    }
    return [];
  }
  /**
   * {@inheritdoc}
   */
  public function blockValidate($form, FormStateInterface $form_state) {
    if ($this->displaySet) {
      $this->view->display_handler
        ->blockValidate($this, $form, $form_state);
    }
  }
  /**
   * {@inheritdoc}
   */
  public function blockSubmit($form, FormStateInterface $form_state) {
    parent::blockSubmit($form, $form_state);
    if ($this->displaySet) {
      $this->view->display_handler
        ->blockSubmit($this, $form, $form_state);
    }
  }
  /**
   * {@inheritdoc}
   */
  public function getMachineNameSuggestion() {
    $this->view
      ->setDisplay($this->displayID);
    return 'views_block__' . $this->view->storage
      ->id() . '_' . $this->view->current_display;
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| BlockPluginInterface:: | constant | Indicates the block label (title) should be displayed to end users. | ||
| BlockPluginTrait:: | protected | property | The transliteration service. | |
| BlockPluginTrait:: | public | function | ||
| BlockPluginTrait:: | protected | function | Returns generic default configuration for block plugins. | |
| BlockPluginTrait:: | public | function | Creates a generic configuration form for all block types. Individual block plugins can add elements to this form by overriding BlockBase::blockForm(). Most block plugins should not override this method unless they need to alter the generic form elements. Aliased as: traitBuildConfigurationForm | |
| BlockPluginTrait:: | public | function | ||
| BlockPluginTrait:: | public | function | ||
| BlockPluginTrait:: | public | function | ||
| BlockPluginTrait:: | public | function | ||
| BlockPluginTrait:: | public | function | Sets the transliteration service. | |
| BlockPluginTrait:: | public | function | Most block plugins should not override this method. To add submission handling for a specific block type, override BlockBase::blockSubmit(). | |
| BlockPluginTrait:: | protected | function | Wraps the transliteration service. | |
| BlockPluginTrait:: | public | function | Most block plugins should not override this method. To add validation for a specific block type, override BlockBase::blockValidate(). | 1 | 
| ContextAwarePluginAssignmentTrait:: | protected | function | Builds a form element for assigning a context to a given slot. | |
| ContextAwarePluginAssignmentTrait:: | protected | function | Wraps the context handler. | |
| ContextAwarePluginTrait:: | protected | property | The data objects representing the context of this plugin. | |
| ContextAwarePluginTrait:: | protected | property | Tracks whether the context has been initialized from configuration. | |
| ContextAwarePluginTrait:: | public | function | 9 | |
| ContextAwarePluginTrait:: | public | function | 7 | |
| ContextAwarePluginTrait:: | public | function | 4 | |
| ContextAwarePluginTrait:: | public | function | ||
| ContextAwarePluginTrait:: | public | function | ||
| ContextAwarePluginTrait:: | public | function | ||
| ContextAwarePluginTrait:: | public | function | ||
| ContextAwarePluginTrait:: | public | function | ||
| ContextAwarePluginTrait:: | public | function | ||
| ContextAwarePluginTrait:: | public | function | ||
| ContextAwarePluginTrait:: | abstract protected | function | 1 | |
| ContextAwarePluginTrait:: | public | function | 1 | |
| ContextAwarePluginTrait:: | public | function | ||
| ContextAwarePluginTrait:: | public | function | ||
| ContextAwarePluginTrait:: | public | function | ||
| DependencySerializationTrait:: | protected | property | ||
| DependencySerializationTrait:: | protected | property | ||
| DependencySerializationTrait:: | public | function | 2 | |
| DependencySerializationTrait:: | public | function | 2 | |
| MessengerTrait:: | protected | property | The messenger. | 27 | 
| MessengerTrait:: | public | function | Gets the messenger. | 27 | 
| MessengerTrait:: | public | function | Sets the messenger. | |
| PluginBase:: | protected | property | Configuration information passed into the plugin. | 1 | 
| PluginBase:: | protected | property | The plugin implementation definition. | 1 | 
| PluginBase:: | protected | property | The plugin_id. | |
| PluginBase:: | constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
| PluginBase:: | public | function | Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: | |
| PluginBase:: | public | function | Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: | |
| PluginBase:: | public | function | Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: | |
| PluginBase:: | public | function | Determines if the plugin is configurable. | |
| PluginWithFormsTrait:: | public | function | Implements \Drupal\Core\Plugin\PluginWithFormsInterface::getFormClass(). | |
| PluginWithFormsTrait:: | public | function | Implements \Drupal\Core\Plugin\PluginWithFormsInterface::hasFormClass(). | |
| StringTranslationTrait:: | protected | property | The string translation service. | 4 | 
| StringTranslationTrait:: | protected | function | Formats a string containing a count of items. | |
| StringTranslationTrait:: | protected | function | Returns the number of plurals supported by a given language. | |
| StringTranslationTrait:: | protected | function | Gets the string translation service. | |
| StringTranslationTrait:: | public | function | Sets the string translation service to use. | 2 | 
| StringTranslationTrait:: | protected | function | Translates a string to the current language or to a given language. | |
| ViewsBlock:: | public | function | Overrides BlockPluginTrait:: | |
| ViewsBlock:: | public | function | Overrides ViewsBlockBase:: | |
| ViewsBlock:: | public | function | Overrides BlockPluginTrait:: | |
| ViewsBlock:: | public | function | Builds and returns the renderable array for this block plugin. Overrides BlockPluginInterface:: | |
| ViewsBlock:: | public | function | Overrides ViewsBlockBase:: | |
| ViewsBlock:: | public | function | Overrides BlockPluginTrait:: | |
| ViewsBlock:: | public | function | Overrides BlockPluginTrait:: | |
| ViewsBlockBase:: | protected | property | The display ID being used for this View. | |
| ViewsBlockBase:: | protected | property | Indicates whether the display was successfully set. | |
| ViewsBlockBase:: | protected | property | The current user. | |
| ViewsBlockBase:: | protected | property | The View executable object. | |
| ViewsBlockBase:: | protected | function | Converts Views block content to a renderable array with contextual links. | |
| ViewsBlockBase:: | protected | function | Indicates whether the block should be shown. Overrides BlockPluginTrait:: | |
| ViewsBlockBase:: | public | function | Form constructor. Overrides BlockBase:: | |
| ViewsBlockBase:: | public static | function | Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: | |
| ViewsBlockBase:: | public | function | Overrides BlockPluginTrait:: | |
| ViewsBlockBase:: | public | function | Gets the view executable. | |
| ViewsBlockBase:: | public | function | Constructs a \Drupal\views\Plugin\Block\ViewsBlockBase object. Overrides BlockPluginTrait:: | 
