interface SectionStorageInterface

Defines an interface for Section Storage type plugins.

Hierarchy

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. 6
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.