'fieldset', '#title' => $this->t('Configure Search Block'), ]; if (!$config->get(SettingsForm::SEARCH_ALL_FIELDS_FLAG)) { $form['search-attributes'][SettingsForm::SEARCH_ALL_FIELDS_FLAG] = [ '#markup' => $this ->t('This block is required to enable searching all fields for the Advanced Search. To proceed, please enable "Enable searching all fields" in Advanced Seach Configuration.'), ]; } else { $views = \Drupal::EntityTypeManager()->getStorage('view')->loadMultiple(); $options = []; foreach ($views as $view_name => $view) { $displays = $view->get("display"); foreach ($displays as $display) { if ($display['display_plugin'] === "page") { $options["view.$view_name" . "." . $display['id']] = "view.$view_name" . "." . $display['id']; } } } $form['search-attributes']['view_machine_name'] = [ '#type' => 'select', '#title' => $this->t('Select the machine name of Search Results Page:'), '#default_value' => $this->configuration['search_view_machine_name'], '#options' => $options, ]; $form['search-attributes']['search_textfield'] = [ '#type' => 'textfield', '#title' => $this->t('Search Keyword Text field label:'), '#default_value' => $this->configuration['search_textfield_label'], '#maxlength' => 255, ]; $form['search-attributes']['search_placeholder_textfield'] = [ '#type' => 'textfield', '#title' => $this->t('Search Keyword text field placeholder:'), '#default_value' => $this->configuration['search_placeholder'], '#maxlength' => 255, ]; $form['search-attributes']['search_submit'] = [ '#type' => 'textfield', '#title' => $this->t('Search Button Label:'), '#default_value' => $this->configuration['search_submit_label'], '#maxlength' => 255, ]; } return $form; } /** * {@inheritdoc} */ public function blockSubmit($form, FormStateInterface $form_state) { $this->configuration['block_id'] = $form_state->getBuildInfo()['callback_object']->getEntity()->id(); $this->configuration['search_view_machine_name'] = $form_state->getValues()['search-attributes']['view_machine_name']; $this->configuration['search_textfield_label'] = $form_state->getValues()['search-attributes']['search_textfield']; $this->configuration['search_placeholder'] = $form_state->getValues()['search-attributes']['search_placeholder_textfield']; $this->configuration['search_submit_label'] = $form_state->getValues()['search-attributes']['search_submit']; } /** * {@inheritdoc} */ public function build() { $config = $this->getConfiguration(); $blockId = $config['block_id']; $searchForm = new SearchForm($blockId); return \Drupal::formBuilder()->getForm($searchForm); } }