class TestDisplayVariant

Same name in other branches
  1. 9 core/modules/system/tests/modules/display_variant_test/src/Plugin/DisplayVariant/TestDisplayVariant.php \Drupal\display_variant_test\Plugin\DisplayVariant\TestDisplayVariant
  2. 8.9.x core/modules/system/tests/modules/display_variant_test/src/Plugin/DisplayVariant/TestDisplayVariant.php \Drupal\display_variant_test\Plugin\DisplayVariant\TestDisplayVariant
  3. 10 core/modules/system/tests/modules/display_variant_test/src/Plugin/DisplayVariant/TestDisplayVariant.php \Drupal\display_variant_test\Plugin\DisplayVariant\TestDisplayVariant

Provides a display variant that requires configuration.

Hierarchy

Expanded class hierarchy of TestDisplayVariant

File

core/modules/system/tests/modules/display_variant_test/src/Plugin/DisplayVariant/TestDisplayVariant.php, line 17

Namespace

Drupal\display_variant_test\Plugin\DisplayVariant
View 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.
DependencyTrait::$dependencies protected property The object's dependencies.
DependencyTrait::addDependencies protected function Adds multiple dependencies.
DependencyTrait::addDependency protected function Adds a dependency.
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
PluginInspectionInterface::getPluginDefinition public function Gets the definition of the plugin implementation. 7
PluginInspectionInterface::getPluginId public function Gets the plugin ID of the plugin instance. 3
RefinableCacheableDependencyTrait::addCacheableDependency public function 1
RefinableCacheableDependencyTrait::addCacheContexts public function
RefinableCacheableDependencyTrait::addCacheTags public function
RefinableCacheableDependencyTrait::mergeCacheMaxAge public function
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 1

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