LayoutTestPlugin.php in Drupal 10
File
core/modules/system/tests/modules/layout_test/src/Plugin/Layout/LayoutTestPlugin.php
View source
<?php
namespace Drupal\layout_test\Plugin\Layout;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Layout\LayoutDefault;
use Drupal\Core\Plugin\PluginFormInterface;
class LayoutTestPlugin extends LayoutDefault implements PluginFormInterface {
public function defaultConfiguration() {
return [
'setting_1' => 'Default',
];
}
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$form['setting_1'] = [
'#type' => 'textfield',
'#title' => 'Blah',
'#default_value' => $this->configuration['setting_1'],
];
return $form;
}
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');
}
}
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
$this->configuration['setting_1'] = $form_state
->getValue('setting_1');
}
}