class DynamicLayout in Dynamic Layouts 8
Same name in this branch
- 8 src/Entity/DynamicLayout.php \Drupal\dynamic_layouts\Entity\DynamicLayout
- 8 src/Plugin/Layout/DynamicLayout.php \Drupal\dynamic_layouts\Plugin\Layout\DynamicLayout
Dynamically prepare the dynamic layout build.
Plugin annotation
@Layout(
id = "dynamic_layout",
admin_label = @Translation("Dynamic layout"),
category = @Translation("Dynamic layout category"),
deriver = "Drupal\dynamic_layouts\Plugin\Derivative\DynamicLayoutDeriver"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\Core\Layout\LayoutDefault implements LayoutInterface, PluginFormInterface
- class \Drupal\dynamic_layouts\Plugin\Layout\DynamicLayout implements ContainerFactoryPluginInterface
- class \Drupal\Core\Layout\LayoutDefault implements LayoutInterface, PluginFormInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of DynamicLayout
File
- src/
Plugin/ Layout/ DynamicLayout.php, line 20
Namespace
Drupal\dynamic_layouts\Plugin\LayoutView source
class DynamicLayout extends LayoutDefault implements ContainerFactoryPluginInterface {
/**
* The entity type manager.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* @var \Drupal\dynamic_layouts\Entity\DynamicLayoutSettings
*/
protected $settings;
/**
* {@inheritdoc}
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entityTypeManager) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->entityTypeManager = $entityTypeManager;
$this->settings = $this->entityTypeManager
->getStorage('dynamic_layout_settings')
->load('settings');
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('entity_type.manager'));
}
/**
* {@inheritdoc}
*/
public function build(array $regions) {
// Get the layout config entity type & entity id from the plugin id.
$plugin_id = $this
->getPluginId();
list($entity_type, $entity_id) = explode(':', $plugin_id);
/* @var \Drupal\dynamic_layouts\DynamicLayoutInterface $config_entity */
$rows = [];
if ($config_entity = $this->entityTypeManager
->getStorage($entity_type)
->load($entity_id)) {
$rows = $config_entity
->getRows();
}
// Ensure $build only contains defined regions and in the order defined.
$build = [];
foreach ($this
->getPluginDefinition()
->getRegionNames() as $region_name) {
if (array_key_exists($region_name, $regions)) {
$build[$region_name] = $regions[$region_name];
}
}
$build['#settings'] = $this
->getConfiguration();
$build['#layout'] = $this->pluginDefinition;
$build['#wrapperClasses'] = $this
->getWrapperClasses();
$build['#theme'] = $this->pluginDefinition
->getThemeHook();
if ($library = $this->pluginDefinition
->getLibrary()) {
$build['#attached']['library'][] = $library;
}
if ($this->settings
->getFrontendLibrary() == 'custom') {
$build['#attached']['library'][] = 'dynamic_layouts/dynamic_layouts_frontend';
}
$build['rows'] = [
'#markup' => $rows,
];
return $build;
}
/**
* Get all the wrapper classes.
*/
private function getWrapperClasses() {
$frontend_library = $this->settings
->getFrontendLibrary();
if ($column_count = $this->settings
->getGridColumnCount()) {
return $frontend_library . '-' . $column_count;
}
return '';
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
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 | |
DynamicLayout:: |
protected | property | The entity type manager. | |
DynamicLayout:: |
protected | property | ||
DynamicLayout:: |
public | function |
Build a render array for layout with regions. Overrides LayoutDefault:: |
|
DynamicLayout:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
|
DynamicLayout:: |
private | function | Get all the wrapper classes. | |
DynamicLayout:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides LayoutDefault:: |
|
LayoutDefault:: |
protected | property |
The layout definition. Overrides PluginBase:: |
|
LayoutDefault:: |
public | function |
Form constructor. Overrides PluginFormInterface:: |
2 |
LayoutDefault:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
2 |
LayoutDefault:: |
public | function |
Gets default configuration for this plugin. Overrides ConfigurableInterface:: |
3 |
LayoutDefault:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
LayoutDefault:: |
public | function |
Overrides PluginBase:: |
|
LayoutDefault:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
|
LayoutDefault:: |
public | function |
Form submission handler. Overrides PluginFormInterface:: |
2 |
LayoutDefault:: |
public | function |
Form validation handler. Overrides PluginFormInterface:: |
1 |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 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 plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
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. |