function ViewsBlockBase::addContextualLinks

Same name in other branches
  1. 9 core/modules/views/src/Plugin/Block/ViewsBlockBase.php \Drupal\views\Plugin\Block\ViewsBlockBase::addContextualLinks()
  2. 8.9.x core/modules/views/src/Plugin/Block/ViewsBlockBase.php \Drupal\views\Plugin\Block\ViewsBlockBase::addContextualLinks()
  3. 10 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.

2 calls to ViewsBlockBase::addContextualLinks()
ViewsBlock::build in core/modules/views/src/Plugin/Block/ViewsBlock.php
Builds and returns the renderable array for this block plugin.
ViewsExposedFilterBlock::build in core/modules/views/src/Plugin/Block/ViewsExposedFilterBlock.php

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);
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.