diff --git a/modules/ui_patterns_layouts/src/Plugin/Layout/PatternLayout.php b/modules/ui_patterns_layouts/src/Plugin/Layout/PatternLayout.php index 648d76760de94bf9fe3f195799e5a43c5752e5ee..fcbddd8aebf250cffb06d098e8808b7652778d6c 100644 --- a/modules/ui_patterns_layouts/src/Plugin/Layout/PatternLayout.php +++ b/modules/ui_patterns_layouts/src/Plugin/Layout/PatternLayout.php @@ -3,17 +3,18 @@ namespace Drupal\ui_patterns_layouts\Plugin\Layout; use Drupal\Core\Form\FormStateInterface; +use Drupal\Core\Layout\LayoutDefault; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; -use Drupal\layout_plugin\Plugin\Layout\LayoutBase; +use Drupal\Core\Plugin\PluginFormInterface; use Drupal\ui_patterns\UiPatternsManager; use Symfony\Component\DependencyInjection\ContainerInterface; /** * Class LayoutDefault. * - * @package Drupal\layout_plugin\Plugin\Layout + * @package Drupal\ui_patterns_layouts\Plugin\Layout */ -class PatternLayout extends LayoutBase implements ContainerFactoryPluginInterface { +class PatternLayout extends LayoutDefault implements PluginFormInterface, ContainerFactoryPluginInterface { /** * Pattern manager service. @@ -91,8 +92,8 @@ class PatternLayout extends LayoutBase implements ContainerFactoryPluginInterfac * {@inheritdoc} */ public function buildConfigurationForm(array $form, FormStateInterface $form_state) { - $form = parent::buildConfigurationForm($form, $form_state); $configuration = $this->getConfiguration(); + $form = []; $form['pattern'] = [ '#group' => 'additional_settings', @@ -117,6 +118,19 @@ class PatternLayout extends LayoutBase implements ContainerFactoryPluginInterfac return $form; } + /** + * {@inheritdoc} + */ + public function validateConfigurationForm(array &$form, FormStateInterface $form_state) { + } + + /** + * {@inheritdoc} + */ + public function submitConfigurationForm(array &$form, FormStateInterface $form_state) { + $this->configuration = $form_state->getValues(); + } + /** * Remove default field template if "Only content" option has been selected. * diff --git a/modules/ui_patterns_layouts/ui_patterns_layouts.info.yml b/modules/ui_patterns_layouts/ui_patterns_layouts.info.yml index 05ed6ab45c987733179f06da52a19e1ef199464e..400df99101bd971015c618d9bd3984dbfd6f1553 100644 --- a/modules/ui_patterns_layouts/ui_patterns_layouts.info.yml +++ b/modules/ui_patterns_layouts/ui_patterns_layouts.info.yml @@ -4,5 +4,5 @@ description: Use patterns as layout plugins. core: 8.x package: User interface dependencies: - - layout_plugin + - layout_discovery - ui_patterns diff --git a/modules/ui_patterns_layouts/ui_patterns_layouts.module b/modules/ui_patterns_layouts/ui_patterns_layouts.module index abc29c592b1a0cf999a6527de3939dca9c7e52db..b0a07b9d3b150b544b0b3911e424c8557faabf52 100644 --- a/modules/ui_patterns_layouts/ui_patterns_layouts.module +++ b/modules/ui_patterns_layouts/ui_patterns_layouts.module @@ -6,6 +6,7 @@ */ use Drupal\ui_patterns\Element\PatternContext; +use Drupal\Core\Layout\LayoutDefinition; /** * Implements hook_layout_alter(). @@ -21,14 +22,12 @@ function ui_patterns_layouts_layout_alter(&$definitions) { 'category' => 'Patterns', 'class' => '\Drupal\ui_patterns_layouts\Plugin\Layout\PatternLayout', 'pattern' => $pattern_definition['id'], - 'path' => '', - 'template_path' => NULL, + 'template' => 'pattern-' . $pattern_definition['id'], ]; foreach ($pattern_definition['fields'] as $field_name => $field) { $definition['regions'][$field_name]['label'] = $field['label']; - $definition['region_names'][$field_name] = $field['label']; } - $definitions['pattern_' . $pattern_definition['id']] = $definition; + $definitions['pattern_' . $pattern_definition['id']] = new LayoutDefinition($definition); } }