interface SectionStorageInterface

Same name and namespace in other branches
  1. 9 core/modules/layout_builder/src/SectionStorageInterface.php \Drupal\layout_builder\SectionStorageInterface
  2. 8.9.x core/modules/layout_builder/src/SectionStorageInterface.php \Drupal\layout_builder\SectionStorageInterface
  3. 10 core/modules/layout_builder/src/SectionStorageInterface.php \Drupal\layout_builder\SectionStorageInterface

Defines an interface for Section Storage type plugins.

Hierarchy

  • interface \Drupal\Component\Plugin\PluginInspectionInterface; interface \Drupal\Core\Access\AccessibleInterface; interface \Drupal\Core\Plugin\ContextAwarePluginInterface extends \Drupal\Component\Plugin\ContextAwarePluginInterface; interface \Drupal\layout_builder\SectionListInterface extends \Drupal\layout_builder\Countable
    • interface \Drupal\layout_builder\SectionStorageInterface extends \Drupal\layout_builder\SectionListInterface \Drupal\Component\Plugin\PluginInspectionInterface \Drupal\Core\Plugin\ContextAwarePluginInterface \Drupal\Core\Access\AccessibleInterface

Expanded class hierarchy of SectionStorageInterface

All classes that implement SectionStorageInterface

38 files declare their use of SectionStorageInterface
AddBlockForm.php in core/modules/layout_builder/src/Form/AddBlockForm.php
AddSectionController.php in core/modules/layout_builder/src/Controller/AddSectionController.php
ChooseBlockController.php in core/modules/layout_builder/src/Controller/ChooseBlockController.php
ChooseSectionController.php in core/modules/layout_builder/src/Controller/ChooseSectionController.php
ConfigureBlockFormBase.php in core/modules/layout_builder/src/Form/ConfigureBlockFormBase.php

... See full list

File

core/modules/layout_builder/src/SectionStorageInterface.php, line 15

Namespace

Drupal\layout_builder
View source
interface SectionStorageInterface extends SectionListInterface, PluginInspectionInterface, ContextAwarePluginInterface, AccessibleInterface {
    
    /**
     * Returns an identifier for this storage.
     *
     * @return string
     *   The unique identifier for this storage.
     */
    public function getStorageId();
    
    /**
     * Returns the type of this storage.
     *
     * Used in conjunction with the storage ID.
     *
     * @return string
     *   The type of storage.
     */
    public function getStorageType();
    
    /**
     * Provides the routes needed for Layout Builder UI.
     *
     * Allows the plugin to add or alter routes during the route building process.
     * \Drupal\layout_builder\Routing\LayoutBuilderRoutesTrait is provided for the
     * typical use case of building a standard Layout Builder UI.
     *
     * @param \Symfony\Component\Routing\RouteCollection $collection
     *   The route collection.
     *
     * @see \Drupal\Core\Routing\RoutingEvents::ALTER
     */
    public function buildRoutes(RouteCollection $collection);
    
    /**
     * Gets the URL used when redirecting away from the Layout Builder UI.
     *
     * @return \Drupal\Core\Url
     *   The URL object.
     */
    public function getRedirectUrl();
    
    /**
     * Gets the URL used to display the Layout Builder UI.
     *
     * @param string $rel
     *   (optional) The link relationship type, for example: 'view' or 'disable'.
     *   Defaults to 'view'.
     *
     * @return \Drupal\Core\Url
     *   The URL object.
     */
    public function getLayoutBuilderUrl($rel = 'view');
    
    /**
     * Derives the available plugin contexts from route values.
     *
     * This should only be called during section storage instantiation,
     * specifically for use by the routing system. For all non-routing usages, use
     * \Drupal\Component\Plugin\ContextAwarePluginInterface::getContextValue().
     *
     * @param mixed $value
     *   The raw value.
     * @param mixed $definition
     *   The parameter definition provided in the route options.
     * @param string $name
     *   The name of the parameter.
     * @param array $defaults
     *   The route defaults array.
     *
     * @return \Drupal\Core\Plugin\Context\ContextInterface[]
     *   The available plugin contexts.
     *
     * @see \Drupal\Core\ParamConverter\ParamConverterInterface::convert()
     */
    public function deriveContextsFromRoute($value, $definition, $name, array $defaults);
    
    /**
     * Gets contexts for use during preview.
     *
     * When not in preview, ::getContexts() will be used.
     *
     * @return \Drupal\Core\Plugin\Context\ContextInterface[]
     *   The plugin contexts suitable for previewing.
     */
    public function getContextsDuringPreview();
    
    /**
     * Gets the label for the object using the sections.
     *
     * @return string
     *   The label, or NULL if there is no label defined.
     */
    public function label();
    
    /**
     * Saves the sections.
     *
     * @return int
     *   SAVED_NEW or SAVED_UPDATED is returned depending on the operation
     *   performed.
     */
    public function save();
    
    /**
     * Determines if this section storage is applicable for the current contexts.
     *
     * @param \Drupal\Core\Cache\RefinableCacheableDependencyInterface $cacheability
     *   Refinable cacheability object, typically provided by the section storage
     *   manager. When implementing this method, populate $cacheability with any
     *   information that affects whether this storage is applicable.
     *
     * @return bool
     *   TRUE if this section storage is applicable, FALSE otherwise.
     *
     * @internal
     *   This method is intended to be called by
     *   \Drupal\layout_builder\SectionStorage\SectionStorageManagerInterface::findByContext().
     *
     * @see \Drupal\Core\Cache\RefinableCacheableDependencyInterface
     */
    public function isApplicable(RefinableCacheableDependencyInterface $cacheability);
    
    /**
     * Overrides \Drupal\Component\Plugin\PluginInspectionInterface::getPluginDefinition().
     *
     * @return \Drupal\layout_builder\SectionStorage\SectionStorageDefinition
     *   The section storage definition.
     */
    public function getPluginDefinition();
    
    /**
     * Overrides \Drupal\Core\Access\AccessibleInterface::access().
     *
     * @ingroup layout_builder_access
     */
    public function access($operation, ?AccountInterface $account = NULL, $return_as_object = FALSE);

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
ContextAwarePluginInterface::getContext public function Gets a defined context.
ContextAwarePluginInterface::getContextDefinition public function Gets a specific context definition of the plugin. Overrides ContextAwarePluginInterface::getContextDefinition
ContextAwarePluginInterface::getContextDefinitions public function Gets the context definitions of the plugin. Overrides ContextAwarePluginInterface::getContextDefinitions
ContextAwarePluginInterface::getContextMapping public function Gets a mapping of the expected assignment names to their context names.
ContextAwarePluginInterface::getContexts public function Gets the defined contexts.
ContextAwarePluginInterface::getContextValue public function Gets the value for a defined context.
ContextAwarePluginInterface::getContextValues public function Gets the values for all defined contexts.
ContextAwarePluginInterface::setContext public function Set a context on this plugin. 1
ContextAwarePluginInterface::setContextMapping public function Sets a mapping of the expected assignment names to their context names.
ContextAwarePluginInterface::setContextValue public function Sets the value for a defined context.
ContextAwarePluginInterface::validateContexts public function Validates the set values for the defined contexts.
PluginInspectionInterface::getPluginId public function Gets the plugin_id of the plugin instance. 2
SectionListInterface::appendSection public function Appends a new section to the end of the list. 1
SectionListInterface::getSection public function Gets a domain object for the layout section. 1
SectionListInterface::getSections public function Gets the layout sections. 5
SectionListInterface::insertSection public function Inserts a new section at a given delta. 1
SectionListInterface::removeAllSections public function Removes all of the sections. 1
SectionListInterface::removeSection public function Removes the section at the given delta. 1
SectionStorageInterface::access public function Overrides \Drupal\Core\Access\AccessibleInterface::access(). Overrides AccessibleInterface::access 5
SectionStorageInterface::buildRoutes public function Provides the routes needed for Layout Builder UI. 5
SectionStorageInterface::deriveContextsFromRoute public function Derives the available plugin contexts from route values. 5
SectionStorageInterface::getContextsDuringPreview public function Gets contexts for use during preview. 3
SectionStorageInterface::getLayoutBuilderUrl public function Gets the URL used to display the Layout Builder UI. 5
SectionStorageInterface::getPluginDefinition public function Overrides \Drupal\Component\Plugin\PluginInspectionInterface::getPluginDefinition(). Overrides PluginInspectionInterface::getPluginDefinition
SectionStorageInterface::getRedirectUrl public function Gets the URL used when redirecting away from the Layout Builder UI. 5
SectionStorageInterface::getStorageId public function Returns an identifier for this storage. 5
SectionStorageInterface::getStorageType public function Returns the type of this storage. 3
SectionStorageInterface::isApplicable public function Determines if this section storage is applicable for the current contexts. 5
SectionStorageInterface::label public function Gets the label for the object using the sections. 5
SectionStorageInterface::save public function Saves the sections. 5

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