public function WordFilter::settingsForm in Wordfilter 8.2
Generates a filter's settings form.
Parameters
array $form: A minimally prepopulated form array.
\Drupal\Core\Form\FormStateInterface $form_state: The state of the (entire) configuration form.
Return value
array The $form array with additional form elements for the settings of this filter. The submitted form values should match $this->settings.
Overrides FilterBase::settingsForm
File
- src/
Plugin/ Filter/ WordFilter.php, line 72
Class
- WordFilter
- Plugin annotation @Filter( id = "wordfilter", title = @Translation("Apply filtering of words"), description = @Translation("Filter out words by given Wordfilter configurations (choose below)."), type =…
Namespace
Drupal\wordfilter\Plugin\FilterCode
public function settingsForm(array $form, FormStateInterface $form_state) {
$storage = \Drupal::entityTypeManager()
->getStorage('wordfilter_configuration');
$wordfilter_configs = $storage
->loadMultiple();
foreach ($wordfilter_configs as $key => $config) {
$wordfilter_configs[$key] = $config
->label();
}
$descriptions = [
$this
->t('Choose the available Wordfilter configurations as active filters.'),
];
if (\Drupal::currentUser()
->hasPermission('access wordfilter configurations page')) {
$descriptions[] = $this
->t('You can create and manage Wordfilter configurations at the <a target="_blank" href=":url">Wordfilter configuration page</a>.', [
':url' => '/admin/config/wordfilter_configuration',
]);
}
$form['active_wordfilter_configs'] = array(
'#type' => 'select',
'#title' => $this
->t('Active Wordfilter configurations'),
'#options' => $wordfilter_configs,
'#default_value' => !empty($this->settings['active_wordfilter_configs']) ? $this->settings['active_wordfilter_configs'] : [],
'#description' => \Drupal::theme()
->render('item_list', [
'items' => $descriptions,
]),
'#multiple' => TRUE,
);
return $form;
}