final class OverridesSectionStorage in Layout Builder Symmetric Translations 8
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Component\Plugin\ContextAwarePluginBase implements ContextAwarePluginInterface
- class \Drupal\Core\Plugin\ContextAwarePluginBase implements CacheableDependencyInterface, ContextAwarePluginInterface uses DependencySerializationTrait, StringTranslationTrait, TypedDataTrait
- class \Drupal\layout_builder\Plugin\SectionStorage\SectionStorageBase implements SectionStorageInterface, TempStoreIdentifierInterface uses LayoutBuilderRoutesTrait
- class \Drupal\layout_builder\Plugin\SectionStorage\OverridesSectionStorage implements ContainerFactoryPluginInterface, OverridesSectionStorageInterface, SectionStorageLocalTaskProviderInterface
- class \Drupal\layout_builder_st\Plugin\SectionStorage\OverridesSectionStorage implements TranslatableSectionStorageInterface
- class \Drupal\layout_builder\Plugin\SectionStorage\OverridesSectionStorage implements ContainerFactoryPluginInterface, OverridesSectionStorageInterface, SectionStorageLocalTaskProviderInterface
- class \Drupal\layout_builder\Plugin\SectionStorage\SectionStorageBase implements SectionStorageInterface, TempStoreIdentifierInterface uses LayoutBuilderRoutesTrait
- class \Drupal\Core\Plugin\ContextAwarePluginBase implements CacheableDependencyInterface, ContextAwarePluginInterface uses DependencySerializationTrait, StringTranslationTrait, TypedDataTrait
- class \Drupal\Component\Plugin\ContextAwarePluginBase implements ContextAwarePluginInterface
Expanded class hierarchy of OverridesSectionStorage
7 files declare their use of OverridesSectionStorage
- LayoutBuilderEntityViewDisplay.php in src/
Entity/ LayoutBuilderEntityViewDisplay.php - LayoutBuilderEntityViewDisplayResourceTestBase.php in tests/
src/ Functional/ Rest/ LayoutBuilderEntityViewDisplayResourceTestBase.php - LayoutBuilderEntityViewDisplayTest.php in tests/
src/ Functional/ Jsonapi/ LayoutBuilderEntityViewDisplayTest.php - LayoutBuilderWidget.php in src/
Plugin/ Field/ FieldWidget/ LayoutBuilderWidget.php - layout_builder_st.install in ./
layout_builder_st.install
File
- src/
Plugin/ SectionStorage/ OverridesSectionStorage.php, line 11
Namespace
Drupal\layout_builder_st\Plugin\SectionStorageView source
final class OverridesSectionStorage extends CoreOverridesSectionStorage implements TranslatableSectionStorageInterface {
/**
* The field name for translated configuration used by this storage.
*
* @var string
*/
const TRANSLATED_CONFIGURATION_FIELD_NAME = 'layout_builder__translation';
/**
* {@inheritdoc}
*/
protected function handleTranslationAccess(AccessResult $result, $operation, AccountInterface $account) {
$entity = $this
->getEntity();
$field_config = $entity
->getFieldDefinition(static::FIELD_NAME)
->getConfig($entity
->bundle());
// Access is allow if one of the following conditions is true:
// 1. This is the default translation.
// 2. The entity is translatable and the layout is overridden and the layout
// field is not translatable.
return $result
->andIf(AccessResult::allowedIf($this
->isDefaultTranslation() || $entity instanceof TranslatableInterface && $this
->isOverridden() && !$field_config
->isTranslatable()))
->addCacheableDependency($entity)
->addCacheableDependency($field_config);
}
/**
* Indicates if the layout is translatable.
*
* @return bool
* TRUE if the layout is translatable, otherwise FALSE.
*/
protected function isTranslatable() {
$entity = $this
->getEntity();
if ($entity instanceof TranslatableInterface) {
return $entity
->isTranslatable();
}
return FALSE;
}
/**
* {@inheritdoc}
*/
public function isDefaultTranslation() {
if ($this
->isTranslatable()) {
/** @var \Drupal\Core\Entity\TranslatableInterface $entity */
$entity = $this
->getEntity();
return $entity
->isDefaultTranslation();
}
return TRUE;
}
/**
* {@inheritdoc}
*/
public function setTranslatedComponentConfiguration($uuid, array $configuration) {
if (!$this
->getEntity()
->get(OverridesSectionStorage::TRANSLATED_CONFIGURATION_FIELD_NAME)
->isEmpty()) {
$translation_settings = $this
->getEntity()
->get(OverridesSectionStorage::TRANSLATED_CONFIGURATION_FIELD_NAME)
->getValue()[0];
}
$translation_settings['value']['components'][$uuid] = $configuration;
$this
->getEntity()
->set(OverridesSectionStorage::TRANSLATED_CONFIGURATION_FIELD_NAME, [
$translation_settings,
]);
}
/**
* {@inheritdoc}
*/
public function getTranslatedComponentConfiguration($uuid) {
if ($this
->getEntity()
->get(OverridesSectionStorage::TRANSLATED_CONFIGURATION_FIELD_NAME)
->isEmpty()) {
return [];
}
$translation_settings = $this
->getEntity()
->get(OverridesSectionStorage::TRANSLATED_CONFIGURATION_FIELD_NAME)
->getValue()[0];
return isset($translation_settings['value']['components'][$uuid]) ? $translation_settings['value']['components'][$uuid] : [];
}
/**
* {@inheritdoc}
*/
public function getTranslatedConfiguration() {
if ($this
->getEntity()
->get(OverridesSectionStorage::TRANSLATED_CONFIGURATION_FIELD_NAME)
->isEmpty()) {
return [];
}
return $this
->getEntity()
->get(OverridesSectionStorage::TRANSLATED_CONFIGURATION_FIELD_NAME)
->getValue()[0];
}
/**
* {@inheritdoc}
*/
public function getTranslationLanguage() {
if (!$this
->isDefaultTranslation()) {
return $this
->getEntity()
->language();
}
return NULL;
}
/**
* {@inheritdoc}
*/
public function getSourceLanguage() {
if (!$this
->isDefaultTranslation()) {
/** @var \Drupal\Core\Entity\TranslatableInterface $entity */
$entity = $this
->getEntity();
return $entity
->getUntranslated()
->language();
}
return NULL;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ContextAwarePluginBase:: |
protected | property | The data objects representing the context of this plugin. | |
ContextAwarePluginBase:: |
private | property | Data objects representing the contexts passed in the plugin configuration. | |
ContextAwarePluginBase:: |
protected | function | Wraps the context handler. | |
ContextAwarePluginBase:: |
protected | function |
Overrides ContextAwarePluginBase:: |
|
ContextAwarePluginBase:: |
public | function |
The cache contexts associated with this object. Overrides CacheableDependencyInterface:: |
9 |
ContextAwarePluginBase:: |
public | function |
The maximum age for which this object may be cached. Overrides CacheableDependencyInterface:: |
7 |
ContextAwarePluginBase:: |
public | function |
The cache tags associated with this object. Overrides CacheableDependencyInterface:: |
4 |
ContextAwarePluginBase:: |
public | function |
This code is identical to the Component in order to pick up a different
Context class. Overrides ContextAwarePluginBase:: |
|
ContextAwarePluginBase:: |
public | function |
Overrides ContextAwarePluginBase:: |
|
ContextAwarePluginBase:: |
public | function |
Overrides ContextAwarePluginBase:: |
|
ContextAwarePluginBase:: |
public | function |
Gets a mapping of the expected assignment names to their context names. Overrides ContextAwarePluginInterface:: |
|
ContextAwarePluginBase:: |
public | function |
Gets the defined contexts. Overrides ContextAwarePluginInterface:: |
|
ContextAwarePluginBase:: |
public | function |
Gets the value for a defined context. Overrides ContextAwarePluginInterface:: |
|
ContextAwarePluginBase:: |
public | function |
Gets the values for all defined contexts. Overrides ContextAwarePluginInterface:: |
|
ContextAwarePluginBase:: |
public | function |
Set a context on this plugin. Overrides ContextAwarePluginBase:: |
|
ContextAwarePluginBase:: |
public | function |
Sets a mapping of the expected assignment names to their context names. Overrides ContextAwarePluginInterface:: |
|
ContextAwarePluginBase:: |
public | function |
Sets the value for a defined context. Overrides ContextAwarePluginBase:: |
|
ContextAwarePluginBase:: |
public | function |
Validates the set values for the defined contexts. Overrides ContextAwarePluginInterface:: |
|
ContextAwarePluginBase:: |
public | function | Implements magic __get() method. | |
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
LayoutBuilderRoutesTrait:: |
protected | function | Builds the layout routes for the given values. | |
OverridesSectionStorage:: |
protected | property | The current user. | |
OverridesSectionStorage:: |
protected | property | The entity field manager. | |
OverridesSectionStorage:: |
protected | property | The entity repository. | |
OverridesSectionStorage:: |
protected | property | The entity type manager. | |
OverridesSectionStorage:: |
protected | property | The section storage manager. | |
OverridesSectionStorage:: |
public | function |
Overrides \Drupal\Core\Access\AccessibleInterface::access(). Overrides SectionStorageInterface:: |
|
OverridesSectionStorage:: |
public | function |
Provides the local tasks dynamically for Layout Builder plugins. Overrides SectionStorageLocalTaskProviderInterface:: |
|
OverridesSectionStorage:: |
public | function |
Provides the routes needed for Layout Builder UI. Overrides SectionStorageInterface:: |
|
OverridesSectionStorage:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
|
OverridesSectionStorage:: |
public | function |
Derives the available plugin contexts from route values. Overrides SectionStorageInterface:: |
|
OverridesSectionStorage:: |
private | function | Extracts an entity from the route values. | |
OverridesSectionStorage:: |
public | function |
Configures the plugin based on route values. Overrides SectionStorageInterface:: |
|
OverridesSectionStorage:: |
constant | The field name used by this storage. | ||
OverridesSectionStorage:: |
public | function |
Gets contexts for use during preview. Overrides SectionStorageBase:: |
|
OverridesSectionStorage:: |
public | function |
Returns the corresponding defaults section storage for this override. Overrides OverridesSectionStorageInterface:: |
|
OverridesSectionStorage:: |
protected | function | Gets the entity storing the overrides. | |
OverridesSectionStorage:: |
protected | function | Returns an array of relevant entity types. | |
OverridesSectionStorage:: |
public | function |
Gets the URL used to display the Layout Builder UI. Overrides SectionStorageInterface:: |
|
OverridesSectionStorage:: |
public | function |
Gets the URL used when redirecting away from the Layout Builder UI. Overrides SectionStorageInterface:: |
|
OverridesSectionStorage:: |
protected | function |
Gets the section list. Overrides SectionStorageBase:: |
|
OverridesSectionStorage:: |
public | function |
Derives the section list from the storage ID. Overrides SectionStorageInterface:: |
|
OverridesSectionStorage:: |
public | function |
Gets the source language of the translation if any. Overrides TranslatableSectionStorageInterface:: |
|
OverridesSectionStorage:: |
public | function |
Returns an identifier for this storage. Overrides SectionStorageInterface:: |
|
OverridesSectionStorage:: |
public | function |
Gets a string suitable for use as a tempstore key. Overrides SectionStorageBase:: |
|
OverridesSectionStorage:: |
public | function |
Gets the translated component configuration. Overrides TranslatableSectionStorageInterface:: |
|
OverridesSectionStorage:: |
public | function |
Gets the translated configuration for the layout. Overrides TranslatableSectionStorageInterface:: |
|
OverridesSectionStorage:: |
public | function |
Gets the language of the translation if any. Overrides TranslatableSectionStorageInterface:: |
|
OverridesSectionStorage:: |
protected | function |
Handles access checks related to translations. Overrides OverridesSectionStorage:: |
|
OverridesSectionStorage:: |
protected | function | Determines if this entity type's ID is stored as an integer. | |
OverridesSectionStorage:: |
public | function |
Determines if this section storage is applicable for the current contexts. Overrides SectionStorageInterface:: |
|
OverridesSectionStorage:: |
public | function |
Indicates if the layout is default translation layout. Overrides TranslatableSectionStorageInterface:: |
|
OverridesSectionStorage:: |
public | function |
Indicates if overrides are in use. Overrides OverridesSectionStorageInterface:: |
|
OverridesSectionStorage:: |
protected | function | Indicates if the layout is translatable. | |
OverridesSectionStorage:: |
public | function |
Gets the label for the object using the sections. Overrides SectionStorageInterface:: |
|
OverridesSectionStorage:: |
public | function |
Saves the sections. Overrides SectionStorageInterface:: |
|
OverridesSectionStorage:: |
public | function |
Sets the translated component configuration. Overrides TranslatableSectionStorageInterface:: |
|
OverridesSectionStorage:: |
constant | The field name for translated configuration used by this storage. | ||
OverridesSectionStorage:: |
public | function |
Overrides \Drupal\Component\Plugin\PluginBase::__construct(). Overrides ContextAwarePluginBase:: |
|
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
SectionStorageBase:: |
public | function |
Appends a new section to the end of the list. Overrides SectionListInterface:: |
|
SectionStorageBase:: |
public | function | ||
SectionStorageBase:: |
public | function |
Gets a domain object for the layout section. Overrides SectionListInterface:: |
|
SectionStorageBase:: |
public | function |
Gets the layout sections. Overrides SectionListInterface:: |
1 |
SectionStorageBase:: |
public | function |
Returns the type of this storage. Overrides SectionStorageInterface:: |
|
SectionStorageBase:: |
public | function |
Inserts a new section at a given delta. Overrides SectionListInterface:: |
|
SectionStorageBase:: |
public | function |
Removes all of the sections. Overrides SectionListInterface:: |
|
SectionStorageBase:: |
public | function |
Removes the section at the given delta. Overrides SectionListInterface:: |
|
SectionStorageBase:: |
public | function | Sets the section list on the storage. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
TypedDataTrait:: |
protected | property | The typed data manager used for creating the data types. | |
TypedDataTrait:: |
public | function | Gets the typed data manager. | 2 |
TypedDataTrait:: |
public | function | Sets the typed data manager. | 2 |