You are here

public function Suggester::buildConfigurationForm in Search API Solr 4.x

Same name and namespace in other branches
  1. 8.3 src/Plugin/search_api_autocomplete/suggester/Suggester.php \Drupal\search_api_solr\Plugin\search_api_autocomplete\suggester\Suggester::buildConfigurationForm()
  2. 8.2 src/Plugin/search_api_autocomplete/suggester/Suggester.php \Drupal\search_api_solr\Plugin\search_api_autocomplete\suggester\Suggester::buildConfigurationForm()

Throws

\Drupal\search_api\SearchApiException

\Drupal\search_api_autocomplete\SearchApiAutocompleteException

Overrides PluginFormInterface::buildConfigurationForm

File

src/Plugin/search_api_autocomplete/suggester/Suggester.php, line 60

Class

Suggester
Provides a suggester plugin that retrieves suggestions from the server.

Namespace

Drupal\search_api_solr\Plugin\search_api_autocomplete\suggester

Code

public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
  $search = $this
    ->getSearch();
  $server = $search
    ->getIndex()
    ->getServerInstance();
  $form['search_api_solr/site_hash'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('From this site only'),
    '#description' => $this
      ->t('Limit the suggestion dictionary to entries created by this site in case of a multisite setup.'),
    '#default_value' => $this
      ->getConfiguration()['search_api_solr/site_hash'],
  ];
  $index_options['any'] = $this
    ->t('Any index');
  foreach ($server
    ->getIndexes() as $index) {
    $index_options[$index
      ->id()] = $this
      ->t('Index @index', [
      '@index' => $index
        ->label(),
    ]);
  }
  $form['search_api/index'] = [
    '#type' => 'radios',
    '#title' => $this
      ->t('Index'),
    '#description' => $this
      ->t('Limit the suggestion dictionary to entries to those created by a specific index.'),
    '#options' => $index_options,
    '#default_value' => $this
      ->getConfiguration()['search_api/index'] ?: $search
      ->getIndex()
      ->id(),
  ];
  $langcode_options['any'] = $this
    ->t('Any language');
  $langcode_options['multilingual'] = $this
    ->t('Let the Solr server handle it dynamically.');
  foreach (\Drupal::languageManager()
    ->getLanguages() as $language) {
    $langcode_options[$language
      ->getId()] = $language
      ->getName();
  }
  $langcode_options[LanguageInterface::LANGCODE_NOT_SPECIFIED] = $this
    ->t('Undefined');
  $form['drupal/langcode'] = [
    '#type' => 'radios',
    '#title' => $this
      ->t('Language'),
    '#description' => $this
      ->t('Limit the suggestion dictionary to entries that belong to a specific language.'),
    '#options' => $langcode_options,
    '#default_value' => $this
      ->getConfiguration()['drupal/langcode'],
  ];
  return $form;
}