class LayoutSelect in Layout Paragraphs 2.0.x
Provides a layout selection element.
Extends the radios form element and adds thumbnail previews for layouts.
Usage example:
$form['layout'] = [
'#type' => 'layout_select',
'#title' => t('Choose a layout'),
'#options' => [
'layout1',
'layout2',
],
'#default_value' => 'layout1',
];
Plugin annotation
@RenderElement("layout_select");
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\Core\Render\Element\RenderElement implements ElementInterface
- class \Drupal\Core\Render\Element\FormElement implements FormElementInterface
- class \Drupal\Core\Render\Element\Radios uses CompositeFormElementTrait
- class \Drupal\layout_paragraphs\Element\LayoutSelect
- class \Drupal\Core\Render\Element\Radios uses CompositeFormElementTrait
- class \Drupal\Core\Render\Element\FormElement implements FormElementInterface
- class \Drupal\Core\Render\Element\RenderElement implements ElementInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of LayoutSelect
1 #type use of LayoutSelect
- LayoutParagraphsBehavior::buildBehaviorForm in src/
Plugin/ paragraphs/ Behavior/ LayoutParagraphsBehavior.php
File
- src/
Element/ LayoutSelect.php, line 27
Namespace
Drupal\layout_paragraphs\ElementView source
class LayoutSelect extends Radios {
/**
* The layout plugin manager service.
*
* @var Drupal\Core\Layout\LayoutPluginManager
*/
protected $layoutPluginManager;
/**
* {@inheritdoc}
*/
public function getInfo() {
$info = parent::getInfo();
$info += [
'#width' => 40,
'#height' => 60,
'#stroke_width' => 1,
'#padding' => 0,
];
$info['#process'][] = [
__CLASS__,
'processLayoutSelect',
];
return $info;
}
/**
* Add layout thumbnail previews.
*/
public static function processLayoutSelect(&$element, FormStateInterface $form_state, &$complete_form) {
foreach (Element::children($element) as $key) {
$layout_name = $key;
$definition = \Drupal::service('plugin.manager.core.layout')
->getDefinition($layout_name);
$icon = $definition
->getIcon($element['#width'], $element['#height'], $element['#stroke_width'], $element['#padding']);
$rendered_icon = \Drupal::service('renderer')
->render($icon);
$element[$key]['#icon'] = $icon;
$title = new FormattableMarkup('<span class="layout-select__item-icon">@icon</span><span class="layout-select__item-title">@title</span>', [
'@title' => $element[$key]['#title'],
'@icon' => $rendered_icon,
]);
$element[$key]['#title'] = $title;
$element[$key]['#wrapper_attributes']['class'][] = 'layout-select__item';
$element[$key]['#attributes']['class'][] = 'visually-hidden';
}
$element['#attached']['library'][] = 'layout_paragraphs/layout_select';
$element['#wrapper_attributes'] = [
'class' => [
'layout-select',
],
];
return $element;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CompositeFormElementTrait:: |
public static | function | Adds form element theming to an element if its title or description is set. | |
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
public | function | 2 | |
DependencySerializationTrait:: |
public | function | 2 | |
FormElement:: |
public static | function | Adds autocomplete functionality to elements. | |
FormElement:: |
public static | function | #process callback for #pattern form element property. | |
FormElement:: |
public static | function | #element_validate callback for #pattern form element property. | |
LayoutSelect:: |
protected | property | The layout plugin manager service. | |
LayoutSelect:: |
public | function |
Returns the element properties for this element. Overrides Radios:: |
|
LayoutSelect:: |
public static | function | Add layout thumbnail previews. | |
MessengerTrait:: |
protected | property | The messenger. | 27 |
MessengerTrait:: |
public | function | Gets the messenger. | 27 |
MessengerTrait:: |
public | function | Sets the messenger. | |
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:: |
2 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 98 |
Radios:: |
public static | function | Expands a radios element into individual radio elements. | |
Radios:: |
public static | function |
Determines how user input is mapped to an element's #value property. Overrides FormElement:: |
|
RenderElement:: |
public static | function | Adds Ajax information about an element to communicate with JavaScript. | |
RenderElement:: |
public static | function | Adds members of this group as actual elements for rendering. | |
RenderElement:: |
public static | function | Form element processing handler for the #ajax form property. | 1 |
RenderElement:: |
public static | function | Arranges elements into groups. | |
RenderElement:: |
public static | function |
Sets a form element's class attribute. Overrides ElementInterface:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 4 |
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. |