class TestDisplayVariant
Provides a display variant that requires configuration.
Attributes
#[DisplayVariant(id: 'display_variant_test', admin_label: new TranslatableMarkup('Test display variant'))]
  Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait extends \Drupal\Component\Plugin\PluginBase- class \Drupal\Core\Display\VariantBase implements \Drupal\Core\Display\VariantInterface uses \Drupal\Core\Plugin\PluginDependencyTrait, \Drupal\Core\Cache\RefinableCacheableDependencyTrait extends \Drupal\Core\Plugin\PluginBase- class \Drupal\display_variant_test\Plugin\DisplayVariant\TestDisplayVariant implements \Drupal\Core\Display\PageVariantInterface, \Drupal\Core\Display\ContextAwareVariantInterface extends \Drupal\Core\Display\VariantBase
 
 
- class \Drupal\Core\Display\VariantBase implements \Drupal\Core\Display\VariantInterface uses \Drupal\Core\Plugin\PluginDependencyTrait, \Drupal\Core\Cache\RefinableCacheableDependencyTrait extends \Drupal\Core\Plugin\PluginBase
 
- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait extends \Drupal\Component\Plugin\PluginBase
Expanded class hierarchy of TestDisplayVariant
File
- 
              core/modules/ system/ tests/ modules/ display_variant_test/ src/ Plugin/ DisplayVariant/ TestDisplayVariant.php, line 15 
Namespace
Drupal\display_variant_test\Plugin\DisplayVariantView source
class TestDisplayVariant extends VariantBase implements PageVariantInterface, ContextAwareVariantInterface {
  
  /**
   * The render array representing the main page content.
   *
   * @var array
   */
  protected $mainContent = [];
  
  /**
   * The page title: a string (plain title) or a render array (formatted title).
   *
   * @var string|array
   */
  protected $title = '';
  
  /**
   * An array of collected contexts.
   *
   * This is only used on runtime, and is not stored.
   *
   * @var \Drupal\Component\Plugin\Context\ContextInterface[]
   */
  protected $contexts = [];
  
  /**
   * Gets the contexts.
   *
   * @return \Drupal\Component\Plugin\Context\ContextInterface[]
   *   An array of set contexts, keyed by context name.
   */
  public function getContexts() {
    return $this->contexts;
  }
  
  /**
   * Sets the contexts.
   *
   * @param \Drupal\Component\Plugin\Context\ContextInterface[] $contexts
   *   An array of contexts, keyed by context name.
   *
   * @return $this
   */
  public function setContexts(array $contexts) {
    $this->contexts = $contexts;
    return $this;
  }
  
  /**
   * {@inheritdoc}
   */
  public function setMainContent(array $main_content) {
    assert(!empty($this->getConfiguration()['required_configuration']), 'Ensure that ::setMainContent() is called with the variant configuration');
    $this->mainContent = $main_content;
    return $this;
  }
  
  /**
   * {@inheritdoc}
   */
  public function setTitle($title) {
    assert(!empty($this->getConfiguration()['required_configuration']), 'Ensure that ::setTitle() is called with the variant configuration');
    $this->title = $title;
    return $this;
  }
  
  /**
   * {@inheritdoc}
   */
  public function build() {
    $config = $this->getConfiguration();
    if (empty($config['required_configuration'])) {
      throw new \Exception('Required configuration is missing!');
    }
    $contexts = $this->getContexts();
    if (!isset($contexts['context'])) {
      throw new \Exception('Required context is missing!');
    }
    $build = [];
    $build['content']['default'] = [
      '#markup' => $config['required_configuration'] . ' ' . $contexts['context']->getContextValue(),
    ];
    CacheableMetadata::createFromObject($this)->applyTo($build);
    return $build;
  }
}Members
| Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides | 
|---|---|---|---|---|---|
| CacheableDependencyTrait::$cacheContexts | protected | property | Cache contexts. | ||
| CacheableDependencyTrait::$cacheMaxAge | protected | property | Cache max-age. | ||
| CacheableDependencyTrait::$cacheTags | protected | property | Cache tags. | ||
| CacheableDependencyTrait::getCacheContexts | public | function | 4 | ||
| CacheableDependencyTrait::getCacheMaxAge | public | function | 4 | ||
| CacheableDependencyTrait::getCacheTags | public | function | 4 | ||
| CacheableDependencyTrait::setCacheability | protected | function | Sets cacheability; useful for value object constructors. | ||
| DependencySerializationTrait::$_entityStorages | protected | property | An array of entity type IDs keyed by the property name of their storages. | ||
| DependencySerializationTrait::$_serviceIds | protected | property | An array of service IDs keyed by property name used for serialization. | ||
| DependencySerializationTrait::__sleep | public | function | 2 | ||
| DependencySerializationTrait::__wakeup | public | function | #[\ReturnTypeWillChange] | 2 | |
| DependencyTrait::$dependencies | protected | property | The object's dependencies. | ||
| DependencyTrait::addDependencies | protected | function | Adds multiple dependencies. | ||
| DependencyTrait::addDependency | protected | function | Adds a dependency. | ||
| MessengerTrait::$messenger | protected | property | The messenger. | 25 | |
| MessengerTrait::messenger | public | function | Gets the messenger. | 25 | |
| MessengerTrait::setMessenger | public | function | Sets the messenger. | ||
| PluginBase::$configuration | protected | property | Configuration information passed into the plugin. | 1 | |
| PluginBase::$pluginDefinition | protected | property | The plugin implementation definition. | 1 | |
| PluginBase::$pluginId | protected | property | The plugin ID. | ||
| PluginBase::DERIVATIVE_SEPARATOR | constant | A string which is used to separate base plugin IDs from the derivative ID. | |||
| PluginBase::getBaseId | public | function | Gets the base_plugin_id of the plugin instance. | Overrides DerivativeInspectionInterface::getBaseId | |
| PluginBase::getDerivativeId | public | function | Gets the derivative_id of the plugin instance. | Overrides DerivativeInspectionInterface::getDerivativeId | |
| PluginBase::getPluginDefinition | public | function | Gets the definition of the plugin implementation. | Overrides PluginInspectionInterface::getPluginDefinition | 2 | 
| PluginBase::getPluginId | public | function | Gets the plugin ID of the plugin instance. | Overrides PluginInspectionInterface::getPluginId | |
| PluginBase::isConfigurable | public | function | Determines if the plugin is configurable. | ||
| PluginDependencyTrait::calculatePluginDependencies | protected | function | Calculates and adds dependencies of a specific plugin instance. | 1 | |
| PluginDependencyTrait::getPluginDependencies | protected | function | Calculates and returns dependencies of a specific plugin instance. | ||
| PluginDependencyTrait::moduleHandler | protected | function | Wraps the module handler. | 1 | |
| PluginDependencyTrait::themeHandler | protected | function | Wraps the theme handler. | 1 | |
| RefinableCacheableDependencyTrait::addCacheableDependency | public | function | 1 | ||
| RefinableCacheableDependencyTrait::addCacheContexts | public | function | |||
| RefinableCacheableDependencyTrait::addCacheTags | public | function | |||
| RefinableCacheableDependencyTrait::mergeCacheMaxAge | public | function | |||
| StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | 3 | |
| StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | ||
| StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | ||
| StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | ||
| StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 | |
| StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. | ||
| TestDisplayVariant::$contexts | protected | property | An array of collected contexts. | ||
| TestDisplayVariant::$mainContent | protected | property | The render array representing the main page content. | ||
| TestDisplayVariant::$title | protected | property | The page title: a string (plain title) or a render array (formatted title). | ||
| TestDisplayVariant::build | public | function | Builds and returns the renderable array for the display variant. | Overrides VariantInterface::build | |
| TestDisplayVariant::getContexts | public | function | Gets the contexts. | Overrides ContextAwareVariantInterface::getContexts | |
| TestDisplayVariant::setContexts | public | function | Sets the contexts. | Overrides ContextAwareVariantInterface::setContexts | |
| TestDisplayVariant::setMainContent | public | function | Sets the main content for the page being rendered. | Overrides PageVariantInterface::setMainContent | |
| TestDisplayVariant::setTitle | public | function | Sets the title for the page being rendered. | Overrides PageVariantInterface::setTitle | |
| VariantBase::access | public | function | Determines if this display variant is accessible. | Overrides VariantInterface::access | |
| VariantBase::adminLabel | public | function | Returns the admin-facing display variant label. | Overrides VariantInterface::adminLabel | |
| VariantBase::buildConfigurationForm | public | function | Form constructor. | Overrides PluginFormInterface::buildConfigurationForm | |
| VariantBase::calculateDependencies | public | function | Calculates dependencies for the configured plugin. | Overrides DependentPluginInterface::calculateDependencies | |
| VariantBase::defaultConfiguration | public | function | Gets default configuration for this plugin. | Overrides ConfigurableInterface::defaultConfiguration | |
| VariantBase::getConfiguration | public | function | Gets this plugin's configuration. | Overrides ConfigurableInterface::getConfiguration | |
| VariantBase::getWeight | public | function | Returns the weight of the display variant. | Overrides VariantInterface::getWeight | |
| VariantBase::id | public | function | Returns the unique ID for the display variant. | Overrides VariantInterface::id | |
| VariantBase::label | public | function | Returns the user-facing display variant label. | Overrides VariantInterface::label | |
| VariantBase::setConfiguration | public | function | Sets the configuration for this plugin instance. | Overrides ConfigurableInterface::setConfiguration | |
| VariantBase::setWeight | public | function | Sets the weight of the display variant. | Overrides VariantInterface::setWeight | |
| VariantBase::submitConfigurationForm | public | function | Form submission handler. | Overrides PluginFormInterface::submitConfigurationForm | |
| VariantBase::validateConfigurationForm | public | function | Form validation handler. | Overrides PluginFormInterface::validateConfigurationForm | |
| VariantBase::__construct | public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | Overrides PluginBase::__construct | 1 | 
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
