You are here

protected function ViewsBlockBase::addContextualLinks in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/views/src/Plugin/Block/ViewsBlockBase.php \Drupal\views\Plugin\Block\ViewsBlockBase::addContextualLinks()
  2. 9 core/modules/views/src/Plugin/Block/ViewsBlockBase.php \Drupal\views\Plugin\Block\ViewsBlockBase::addContextualLinks()

Converts Views block content to a renderable array with contextual links.

Parameters

string|array $output: A string|array representing the block. This will be modified to be a renderable array, containing the optional '#contextual_links' property (if there are any contextual links associated with the block).

string $block_type: The type of the block. If it's 'block' it's a regular views display, but 'exposed_filter' exist as well.

File

core/modules/views/src/Plugin/Block/ViewsBlockBase.php, line 203

Class

ViewsBlockBase
Base class for Views block plugins.

Namespace

Drupal\views\Plugin\Block

Code

protected function addContextualLinks(&$output, $block_type = 'block') {

  // Do not add contextual links to an empty block.
  if (!empty($output)) {

    // Contextual links only work on blocks whose content is a renderable
    // array, so if the block contains a string of already-rendered markup,
    // convert it to an array.
    if (is_string($output)) {
      $output = [
        '#markup' => $output,
      ];
    }

    // views_add_contextual_links() needs the following information in
    // order to be attached to the view.
    $output['#view_id'] = $this->view->storage
      ->id();
    $output['#view_display_show_admin_links'] = $this->view
      ->getShowAdminLinks();
    $output['#view_display_plugin_id'] = $this->view->display_handler
      ->getPluginId();
    views_add_contextual_links($output, $block_type, $this->displayID);
  }
}