BlockVariantInterface.php

Same filename in other branches
  1. 8.x-3.x src/Plugin/BlockVariantInterface.php

Namespace

Drupal\ctools\Plugin

File

src/Plugin/BlockVariantInterface.php

View source
<?php

namespace Drupal\ctools\Plugin;

use Drupal\Core\Display\VariantInterface;

/**
 * Provides an interface for variant plugins that use block plugins.
 */
interface BlockVariantInterface extends VariantInterface {
    
    /**
     * Returns the human-readable list of regions keyed by machine name.
     *
     * @return array
     *   An array of human-readable region names keyed by machine name.
     */
    public function getRegionNames();
    
    /**
     * Returns the human-readable name of a specific region.
     *
     * @param string $region
     *   The machine name of a region.
     *
     * @return string
     *   The human-readable name of a region.
     */
    public function getRegionName($region);
    
    /**
     * Adds a block to this display variant.
     *
     * @param array $configuration
     *   An array of block configuration.
     *
     * @return string
     *   The block ID.
     */
    public function addBlock(array $configuration);
    
    /**
     * Returns the region a specific block is assigned to.
     *
     * @param string $block_id
     *   The block ID.
     *
     * @return string
     *   The machine name of the region this block is assigned to.
     */
    public function getRegionAssignment($block_id);
    
    /**
     * Returns an array of regions and their block plugins.
     *
     * @return array
     *   The array is first keyed by region machine name, with the values
     *   containing an array keyed by block ID, with block plugin instances as the
     *   values.
     */
    public function getRegionAssignments();
    
    /**
     * Returns a specific block plugin.
     *
     * @param string $block_id
     *   The block ID.
     *
     * @return \Drupal\Core\Block\BlockPluginInterface
     *   The block plugin.
     */
    public function getBlock($block_id);
    
    /**
     * Updates the configuration of a specific block plugin.
     *
     * @param string $block_id
     *   The block ID.
     * @param array $configuration
     *   The array of configuration to set.
     *
     * @return $this
     */
    public function updateBlock($block_id, array $configuration);
    
    /**
     * Removes a specific block from this display variant.
     *
     * @param string $block_id
     *   The block ID.
     *
     * @return $this
     */
    public function removeBlock($block_id);

}

Interfaces

Title Deprecated Summary
BlockVariantInterface Provides an interface for variant plugins that use block plugins.