public function SearchApiFilterLocation::buildExtraOptionsForm in Search API Location 8
Provide a form for setting options.
Overrides HandlerBase::buildExtraOptionsForm
File
- modules/
search_api_location_views/ src/ Plugin/ views/ filter/ SearchApiFilterLocation.php, line 101
Class
- SearchApiFilterLocation
- Defines a filter for filtering on location fields.
Namespace
Drupal\search_api_location_views\Plugin\views\filterCode
public function buildExtraOptionsForm(&$form, FormStateInterface $form_state) {
$form['plugin'] = [
'#type' => 'select',
'#title' => $this
->t('Input method'),
'#description' => $this
->t('Select the method to use for parsing locations entered by the user.'),
'#options' => $this->locationInputManager
->getInstancesOptions(),
'#default_value' => $this->options['plugin'],
'#required' => TRUE,
];
foreach ($this->locationInputManager
->getDefinitions() as $id => $plugin) {
$settings = !empty($this->options['plugin-' . $id]) ? $this->options['plugin-' . $id] : [];
$plugin = $this->locationInputManager
->createInstance($id, $settings);
$form["plugin-{$id}"] = [
'#type' => 'fieldset',
'#title' => $plugin
->getDescription(),
'#tree' => TRUE,
'#states' => [
'visible' => [
'select[name="options[plugin]"]' => [
'value' => $id,
],
],
],
];
$form["plugin-{$id}"] += $plugin
->buildConfigurationForm($form["plugin-{$id}"], $form_state);
}
return $form;
}