You are here

public function SimpleSearchFormBlock::blockForm in Simple search form 8

Overrides BlockPluginTrait::blockForm

File

src/Plugin/Block/SimpleSearchFormBlock.php, line 100

Class

SimpleSearchFormBlock
Provides a 'SimpleSearchFormBlock' block.

Namespace

Drupal\simple_search_form\Plugin\Block

Code

public function blockForm($form, FormStateInterface $form_state) {
  $form['action_path'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Path'),
    '#description' => $this
      ->t('The path to redirect to.'),
    '#required' => TRUE,
    '#default_value' => $this->configuration['action_path'],
  ];
  $form['get_parameter'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('GET parameter'),
    '#description' => $this
      ->t('The $_GET parameter name.'),
    '#required' => TRUE,
    '#default_value' => $this->configuration['get_parameter'],
  ];
  $form['input_type'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Input element type'),
    '#options' => [
      'search' => $this
        ->t('Search'),
      'textfield' => $this
        ->t('Text field'),
    ],
    '#default_value' => $this->configuration['input_type'],
  ];
  if ($this->moduleHandler
    ->moduleExists('search_api_autocomplete')) {
    $form['input_type']['#options']['search_api_autocomplete'] = $this
      ->t('Search API Autocomplete');
    $form['search_api_autocomplete'] = [
      '#type' => 'details',
      '#title' => $this
        ->t('Search API views view to be used:'),
      '#tree' => TRUE,
      '#open' => TRUE,
      '#states' => [
        'visible' => [
          'select[name="settings[input_type]"]' => [
            'value' => 'search_api_autocomplete',
          ],
        ],
      ],
    ];
    $form['search_api_autocomplete']['search_id'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('View ID'),
      '#default_value' => $this->configuration['search_api_autocomplete']['search_id'],
      '#states' => [
        'required' => [
          'select[name="settings[input_type]"]' => [
            'value' => 'search_api_autocomplete',
          ],
        ],
      ],
    ];
    $form['search_api_autocomplete']['display'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('View display ID'),
      '#default_value' => $this->configuration['search_api_autocomplete']['display'],
      '#states' => [
        'required' => [
          'select[name="settings[input_type]"]' => [
            'value' => 'search_api_autocomplete',
          ],
        ],
      ],
    ];
    $form['search_api_autocomplete']['filter'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Fulltext search filter machine name'),
      '#default_value' => $this->configuration['search_api_autocomplete']['filter'],
      '#states' => [
        'required' => [
          'select[name="settings[input_type]"]' => [
            'value' => 'search_api_autocomplete',
          ],
        ],
      ],
    ];
    $form['search_api_autocomplete']['arguments'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('View arguments'),
      '#description' => $this
        ->t('Comma separated values.'),
      '#default_value' => $this->configuration['search_api_autocomplete']['arguments'],
    ];
  }
  $form['input_label_display'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Label display mode'),
    '#options' => [
      'before' => $this
        ->t('Before'),
      'after' => $this
        ->t('After'),
      'invisible' => $this
        ->t('Invisible'),
    ],
    '#default_value' => $this->configuration['input_label_display'],
  ];
  $form['input_label'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Search label'),
    '#description' => $this
      ->t('The label of a search input.'),
    '#default_value' => $this->configuration['input_label'],
  ];
  $form['input_placeholder'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Search placeholder'),
    '#description' => $this
      ->t('The placeholder for a search input.'),
    '#default_value' => $this->configuration['input_placeholder'],
  ];
  $form['input_css_classes'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Search CSS classes'),
    '#description' => $this
      ->t('Space separated list of CSS classes to add to a search input.'),
    '#default_value' => $this->configuration['input_css_classes'],
  ];
  $form['submit_display'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Display submit button'),
    '#default_value' => $this->configuration['submit_display'],
  ];
  $form['submit_label'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Submit label'),
    '#description' => $this
      ->t('The label of a submit button.'),
    '#default_value' => $this->configuration['submit_label'],
  ];
  $form['input_keep_value'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Keep value in search input after form submit'),
    '#default_value' => $this->configuration['input_keep_value'],
  ];
  return $form;
}