LayoutTestPlugin.php

Same filename in other branches
  1. 9 core/modules/system/tests/modules/layout_test/src/Plugin/Layout/LayoutTestPlugin.php
  2. 8.9.x core/modules/system/tests/modules/layout_test/src/Plugin/Layout/LayoutTestPlugin.php
  3. 10 core/modules/system/tests/modules/layout_test/src/Plugin/Layout/LayoutTestPlugin.php

Namespace

Drupal\layout_test\Plugin\Layout

File

core/modules/system/tests/modules/layout_test/src/Plugin/Layout/LayoutTestPlugin.php

View source
<?php

declare (strict_types=1);
namespace Drupal\layout_test\Plugin\Layout;

use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Layout\Attribute\Layout;
use Drupal\Core\Layout\LayoutDefault;
use Drupal\Core\Plugin\PluginFormInterface;
use Drupal\Core\StringTranslation\TranslatableMarkup;

/**
 * The plugin that handles the default layout template.
 */
class LayoutTestPlugin extends LayoutDefault implements PluginFormInterface {
    
    /**
     * {@inheritdoc}
     */
    public function defaultConfiguration() {
        return [
            'setting_1' => 'Default',
        ];
    }
    
    /**
     * {@inheritdoc}
     */
    public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
        $form['setting_1'] = [
            '#type' => 'textfield',
            '#title' => 'Blah',
            '#default_value' => $this->configuration['setting_1'],
        ];
        return $form;
    }
    
    /**
     * {@inheritdoc}
     */
    public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
        if ($form_state->getValue('setting_1') === 'Test Validation Error Message') {
            $form_state->setErrorByName('setting_1', 'Validation Error Message');
        }
    }
    
    /**
     * {@inheritdoc}
     */
    public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
        $this->configuration['setting_1'] = $form_state->getValue('setting_1');
    }

}

Classes

Title Deprecated Summary
LayoutTestPlugin The plugin that handles the default layout template.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.