class OverridesSectionStorage extends SectionStorageBase implements ContainerFactoryPluginInterface, OverridesSectionStorageInterface, SectionStorageLocalTaskProviderInterface (View source)

internal  Plugin classes are internal.
 

Defines the 'overrides' section storage type.

OverridesSectionStorage uses a negative weight because:

  • It must be picked before \Drupal\layout_builder\Plugin\SectionStorage\DefaultsSectionStorage.
  • The default weight is 0, so custom implementations will not take precedence unless otherwise specified.

Traits

Provides a trait to add context-aware functionality to plugins.

Provides a trait for building routes for a Layout Builder UI.

Wrapper methods for \Drupal\Core\StringTranslation\TranslationInterface.

Provides dependency injection friendly methods for serialization.

Provides a trait for the messenger service.

Constants

DERIVATIVE_SEPARATOR

A string which is used to separate base plugin IDs from the derivative ID.

FIELD_NAME

The field name used by this storage.

Properties

protected string $pluginId

The plugin_id.

from  PluginBase
protected array $pluginDefinition

The plugin implementation definition.

from  PluginBase
protected array $configuration

Configuration information passed into the plugin.

from  PluginBase
protected TranslationInterface $stringTranslation

The string translation service.

from  StringTranslationTrait
protected array $_serviceIds

An array of service IDs keyed by property name used for serialization.

from  DependencySerializationTrait
protected array $_entityStorages

An array of entity type IDs keyed by the property name of their storages.

from  DependencySerializationTrait
protected MessengerInterface $messenger

The messenger.

from  MessengerTrait
protected ContextInterface[] $context

The data objects representing the context of this plugin.

from  ContextAwarePluginTrait
protected bool internal $initializedContextConfig

Tracks whether the context has been initialized from configuration.

from  ContextAwarePluginTrait
protected EntityTypeManagerInterface $entityTypeManager

The entity type manager.

protected EntityFieldManagerInterface $entityFieldManager

The entity field manager.

protected SectionStorageManagerInterface $sectionStorageManager

The section storage manager.

protected EntityRepositoryInterface $entityRepository

The entity repository.

protected AccountInterface $currentUser

The current user.

Methods

__construct(array $configuration, string $plugin_id, mixed $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityFieldManagerInterface $entity_field_manager, SectionStorageManagerInterface $section_storage_manager, EntityRepositoryInterface $entity_repository, AccountInterface $current_user)

Constructs a \Drupal\Component\Plugin\PluginBase object.

string
getPluginId()

Gets the plugin_id of the plugin instance.

string
getBaseId()

Gets the base_plugin_id of the plugin instance.

string|null
getDerivativeId()

Gets the derivative_id of the plugin instance.

bool
isConfigurable()

Determines if the plugin is configurable.

t(string $string, array $args = [], array $options = [])

Translates a string to the current language or to a given language.

formatPlural($count, $singular, $plural, array $args = [], array $options = [])

Formats a string containing a count of items.

getNumberOfPlurals($langcode = NULL)

Returns the number of plurals supported by a given language.

getStringTranslation()

Gets the string translation service.

$this
setStringTranslation(TranslationInterface $translation)

Sets the string translation service to use.

__sleep()

{@inheritdoc}

__wakeup()

{@inheritdoc}

setMessenger(MessengerInterface $messenger)

Sets the messenger.

messenger()

Gets the messenger.

getContexts()

{@inheritdoc}

setContext($name, ContextInterface $context)

{@inheritdoc}

getContextValue($name)

{@inheritdoc}

setContextValue($name, $value)

{@inheritdoc}

setContextMapping(array $context_mapping)

{@inheritdoc}

getCacheTags()

{@inheritdoc}

buildLayoutRoutes(RouteCollection $collection, SectionStorageDefinition $definition, string $path, array $defaults = [], array $requirements = [], array $options = [], string $route_name_prefix = '', string $entity_type_id = '')

Builds the layout routes for the given values.

getSectionList()

Gets the section list.

string
getStorageType()

Returns the type of this storage.

count()

{@inheritdoc}

getSections()

Gets the layout sections.

getSection(int $delta)

Gets a domain object for the layout section.

$this
appendSection(Section $section)

Appends a new section to the end of the list.

$this
insertSection(int $delta, Section $section)

Inserts a new section at a given delta.

$this
removeSection(int $delta)

Removes the section at the given delta.

$this
removeAllSections(bool $set_blank = FALSE)

Removes all of the sections.

getContextsDuringPreview()

Gets contexts for use during preview.

string
getTempstoreKey()

Gets a string suitable for use as a tempstore key.

create(ContainerInterface $container, array $configuration, string $plugin_id, mixed $plugin_definition)

Creates an instance of the plugin.

getEntity()

Gets the entity storing the overrides.

string
getStorageId()

Returns an identifier for this storage.

deriveContextsFromRoute(mixed $value, mixed $definition, string $name, array $defaults)

Derives the available plugin contexts from route values.

buildRoutes(RouteCollection $collection)

Provides the routes needed for Layout Builder UI.

array
buildLocalTasks(mixed $base_plugin_definition)

Provides the local tasks dynamically for Layout Builder plugins.

bool
hasIntegerId(EntityTypeInterface $entity_type)

Determines if this entity type's ID is stored as an integer.

getEntityTypes()

Returns an array of relevant entity types.

getDefaultSectionStorage()

Returns the corresponding defaults section storage for this override.

Url
getRedirectUrl()

Gets the URL used when redirecting away from the Layout Builder UI.

Url
getLayoutBuilderUrl(string $rel = 'view')

Gets the URL used to display the Layout Builder UI.

string
label()

Gets the label for the object using the sections.

int
save()

Saves the sections.

access(string $operation, AccountInterface $account = NULL, bool $return_as_object = FALSE)

Checks data value access.

handleTranslationAccess(AccessResult $result, string $operation, AccountInterface $account)

Handles access checks related to translations.

bool
isApplicable(RefinableCacheableDependencyInterface $cacheability)

Determines if this section storage is applicable for the current contexts.

bool
isOverridden()

Indicates if overrides are in use.

Details

__construct(array $configuration, string $plugin_id, mixed $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityFieldManagerInterface $entity_field_manager, SectionStorageManagerInterface $section_storage_manager, EntityRepositoryInterface $entity_repository, AccountInterface $current_user)

Constructs a \Drupal\Component\Plugin\PluginBase object.

Parameters

array $configuration

A configuration array containing information about the plugin instance.

string $plugin_id

The plugin_id for the plugin instance.

mixed $plugin_definition

The plugin implementation definition.

EntityTypeManagerInterface $entity_type_manager
EntityFieldManagerInterface $entity_field_manager
SectionStorageManagerInterface $section_storage_manager
EntityRepositoryInterface $entity_repository
AccountInterface $current_user

string getPluginId()

Gets the plugin_id of the plugin instance.

Return Value

string

The plugin_id of the plugin instance.

string getBaseId()

Gets the base_plugin_id of the plugin instance.

Return Value

string

The base_plugin_id of the plugin instance.

string|null getDerivativeId()

Gets the derivative_id of the plugin instance.

Return Value

string|null

The derivative_id of the plugin instance NULL otherwise.

abstract protected getPluginDefinition()

{@inheritdoc}

bool isConfigurable()

Determines if the plugin is configurable.

Return Value

bool

A boolean indicating whether the plugin is configurable.

protected TranslatableMarkup t(string $string, array $args = [], array $options = [])

Translates a string to the current language or to a given language.

See \Drupal\Core\StringTranslation\TranslatableMarkup::__construct() for important security information and usage guidelines.

In order for strings to be localized, make them available in one of the ways supported by the

Parameters

string $string

A string containing the English text to translate.

array $args

(optional) An associative array of replacements to make after translation. Based on the first character of the key, the value is escaped and/or themed. See \Drupal\Component\Render\FormattableMarkup::placeholderFormat() for details.

array $options

(optional) An associative array of additional options, with the following elements:

  • 'langcode' (defaults to the current language): A language code, to translate to a language other than what is used to display the page.
  • 'context' (defaults to the empty context): The context the source string belongs to. See the @link i18n Internationalization topic @endlink for more information about string contexts.

Return Value

TranslatableMarkup

An object that, when cast to a string, returns the translated string.

See also

FormattableMarkup::placeholderFormat
TranslatableMarkup::__construct

protected formatPlural($count, $singular, $plural, array $args = [], array $options = [])

Formats a string containing a count of items.

Parameters

$count
$singular
$plural
array $args
array $options

See also

TranslationInterface::formatPlural

protected getNumberOfPlurals($langcode = NULL)

Returns the number of plurals supported by a given language.

Parameters

$langcode

See also

PluralFormulaInterface::getNumberOfPlurals

protected TranslationInterface getStringTranslation()

Gets the string translation service.

Return Value

TranslationInterface

The string translation service.

$this setStringTranslation(TranslationInterface $translation)

Sets the string translation service to use.

Parameters

TranslationInterface $translation

The string translation service.

Return Value

$this

__sleep()

{@inheritdoc}

__wakeup()

{@inheritdoc}

setMessenger(MessengerInterface $messenger)

Sets the messenger.

Parameters

MessengerInterface $messenger

The messenger.

MessengerInterface messenger()

Gets the messenger.

Return Value

MessengerInterface

The messenger.

getContexts()

{@inheritdoc}

ContextInterface getContext($name)

{@inheritdoc}

Parameters

$name

Return Value

ContextInterface

The context object.

setContext($name, ContextInterface $context)

{@inheritdoc}

Parameters

$name
ContextInterface $context

getContextValues()

{@inheritdoc}

getContextValue($name)

{@inheritdoc}

Parameters

$name

setContextValue($name, $value)

{@inheritdoc}

Parameters

$name
$value

getContextMapping()

{@inheritdoc}

setContextMapping(array $context_mapping)

{@inheritdoc}

Parameters

array $context_mapping

ContextDefinitionInterface[] getContextDefinitions()

{@inheritdoc}

ContextDefinitionInterface getContextDefinition($name)

{@inheritdoc}

Parameters

$name

Return Value

ContextDefinitionInterface

validateContexts()

{@inheritdoc}

getCacheContexts()

{@inheritdoc}

getCacheTags()

{@inheritdoc}

getCacheMaxAge()

{@inheritdoc}

protected buildLayoutRoutes(RouteCollection $collection, SectionStorageDefinition $definition, string $path, array $defaults = [], array $requirements = [], array $options = [], string $route_name_prefix = '', string $entity_type_id = '')

Builds the layout routes for the given values.

Parameters

RouteCollection $collection

The route collection.

SectionStorageDefinition $definition

The definition of the section storage.

string $path

The path patten for the routes.

array $defaults

(optional) An array of default parameter values.

array $requirements

(optional) An array of requirements for parameters.

array $options

(optional) An array of options.

string $route_name_prefix

(optional) The prefix to use for the route name.

string $entity_type_id

(optional) The entity type ID, if available.

protected SectionListInterface getSectionList()

Gets the section list.

Return Value

SectionListInterface

The section list.

string getStorageType()

Returns the type of this storage.

Used in conjunction with the storage ID.

Return Value

string

The type of storage.

count()

{@inheritdoc}

Section[] getSections()

Gets the layout sections.

Return Value

Section[]

A sequentially and numerically keyed array of section objects.

Section getSection(int $delta)

Gets a domain object for the layout section.

Parameters

int $delta

The delta of the section.

Return Value

Section

The layout section.

$this appendSection(Section $section)

Appends a new section to the end of the list.

Parameters

Section $section

The section to append.

Return Value

$this

$this insertSection(int $delta, Section $section)

Inserts a new section at a given delta.

If a section exists at the given index, the section at that position and others after it are shifted backward.

Parameters

int $delta

The delta of the section.

Section $section

The section to insert.

Return Value

$this

$this removeSection(int $delta)

Removes the section at the given delta.

As sections are stored sequentially and numerically this will re-key every subsequent section, shifting them forward.

Parameters

int $delta

The delta of the section.

Return Value

$this

$this removeAllSections(bool $set_blank = FALSE)

Removes all of the sections.

Parameters

bool $set_blank

(optional) The default implementation of section lists differentiates between a list that has never contained any sections and a list that has purposefully had all sections removed in order to remain blank. Passing TRUE will mirror ::removeSection() by tracking this as a blank list. Passing FALSE will reset the list as though it had never contained any sections at all. Defaults to FALSE.

Return Value

$this

ContextInterface[] getContextsDuringPreview()

Gets contexts for use during preview.

When not in preview, ::getContexts() will be used.

Return Value

ContextInterface[]

The plugin contexts suitable for previewing.

string getTempstoreKey()

Gets a string suitable for use as a tempstore key.

Return Value

string

A string to be used as the key for a tempstore item.

static ContainerFactoryPluginInterface create(ContainerInterface $container, array $configuration, string $plugin_id, mixed $plugin_definition)

Creates an instance of the plugin.

Parameters

ContainerInterface $container

The container to pull out services used in the plugin.

array $configuration

A configuration array containing information about the plugin instance.

string $plugin_id

The plugin ID for the plugin instance.

mixed $plugin_definition

The plugin implementation definition.

Return Value

ContainerFactoryPluginInterface

Returns an instance of this plugin.

protected FieldableEntityInterface getEntity()

Gets the entity storing the overrides.

Return Value

FieldableEntityInterface

The entity storing the overrides.

string getStorageId()

Returns an identifier for this storage.

Return Value

string

The unique identifier for this storage.

ContextInterface[] deriveContextsFromRoute(mixed $value, mixed $definition, string $name, array $defaults)

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().

Parameters

mixed $value

The raw value.

mixed $definition

The parameter definition provided in the route options.

string $name

The name of the parameter.

array $defaults

The route defaults array.

Return Value

ContextInterface[]

The available plugin contexts.

buildRoutes(RouteCollection $collection)

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.

Parameters

RouteCollection $collection

The route collection.

array buildLocalTasks(mixed $base_plugin_definition)

Provides the local tasks dynamically for Layout Builder plugins.

Parameters

mixed $base_plugin_definition

The definition of the base plugin.

Return Value

array

An array of full derivative definitions keyed on derivative ID.

protected bool hasIntegerId(EntityTypeInterface $entity_type)

Determines if this entity type's ID is stored as an integer.

Parameters

EntityTypeInterface $entity_type

An entity type.

Return Value

bool

TRUE if this entity type's ID key is always an integer, FALSE otherwise.

protected EntityTypeInterface[] getEntityTypes()

Returns an array of relevant entity types.

Return Value

EntityTypeInterface[]

An array of entity types.

DefaultsSectionStorageInterface getDefaultSectionStorage()

Returns the corresponding defaults section storage for this override.

Return Value

DefaultsSectionStorageInterface

The defaults section storage.

Url getRedirectUrl()

Gets the URL used when redirecting away from the Layout Builder UI.

Return Value

Url

The URL object.

Url getLayoutBuilderUrl(string $rel = 'view')

Gets the URL used to display the Layout Builder UI.

Parameters

string $rel

(optional) The link relationship type, for example: 'view' or 'disable'. Defaults to 'view'.

Return Value

Url

The URL object.

string label()

Gets the label for the object using the sections.

Return Value

string

The label, or NULL if there is no label defined.

int save()

Saves the sections.

Return Value

int

SAVED_NEW or SAVED_UPDATED is returned depending on the operation performed.

bool|AccessResultInterface access(string $operation, AccountInterface $account = NULL, bool $return_as_object = FALSE)

Checks data value access.

Parameters

string $operation

The operation to be performed.

AccountInterface $account

(optional) The user for which to check access, or NULL to check access for the current user. Defaults to NULL.

bool $return_as_object

(optional) Defaults to FALSE.

Return Value

bool|AccessResultInterface

The access result. Returns a boolean if $return_as_object is FALSE (this is the default) and otherwise an AccessResultInterface object. When a boolean is returned, the result of AccessInterface::isAllowed() is returned, i.e. TRUE means access is explicitly allowed, FALSE means access is either explicitly forbidden or "no opinion".

protected AccessResultInterface handleTranslationAccess(AccessResult $result, string $operation, AccountInterface $account)

Handles access checks related to translations.

Parameters

AccessResult $result

The access result.

string $operation

The operation to be performed.

AccountInterface $account

The user for which to check access.

Return Value

AccessResultInterface

The access result.

bool isApplicable(RefinableCacheableDependencyInterface $cacheability)

Determines if this section storage is applicable for the current contexts.

Parameters

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 Value

bool

TRUE if this section storage is applicable, FALSE otherwise.

bool isOverridden()

Indicates if overrides are in use.

Return Value

bool

TRUE if this overrides section storage is in use, otherwise FALSE.