3 namespace Drupal\layout_plugin_example\Plugin\Layout;
4 use Drupal\Core\Form\FormStateInterface;
5 use Drupal\layout_plugin\Plugin\Layout\LayoutBase;
8 * The plugin that handles the default layout template.
10 * @ingroup layout_template_plugins
13 * id = "layout_example_test",
14 * label = @Translation("Test layout (with settings)"),
15 * category = @Translation("Examples"),
16 * description = @Translation("Test1 sample description"),
18 * help = @Translation("Layout"),
19 * template = "templates/layout-example-test",
22 * "label" = @Translation("Top Region"),
23 * "plugin_id" = "default"
26 * "label" = @Translation("Bottom Region"),
27 * "plugin_id" = "default"
32 class LayoutExampleTest extends LayoutBase {
37 public function defaultConfiguration() {
38 return parent::defaultConfiguration() + [
39 'setting_1' => 'Default',
46 public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
47 $configuration = $this->getConfiguration();
48 $form['setting_1'] = [
49 '#type' => 'textfield',
51 '#default_value' => $configuration['setting_1'],
59 public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
60 parent::submitConfigurationForm($form, $form_state);
62 $this->configuration['setting_1'] = $form_state->getValue('setting_1');