You are here

public function TaxonomyTooltip::settingsForm in Glossify 8

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

modules/glossify_taxonomy/src/Plugin/Filter/TaxonomyTooltip.php, line 32

Class

TaxonomyTooltip
Filter to find and process found taxonomy terms in the fields value.

Namespace

Drupal\glossify_taxonomy\Plugin\Filter

Code

public function settingsForm(array $form, FormStateInterface $form_state) {
  $vocab_options = [];
  $vocabularies = Vocabulary::loadMultiple();
  foreach ($vocabularies as $vocab) {
    $vocab_options[$vocab
      ->id()] = $vocab
      ->get('name');
  }
  $form['glossify_taxonomy_case_sensitivity'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Case sensitive'),
    '#description' => $this
      ->t('Whether or not the match is case sensitive.'),
    '#default_value' => $this->settings['glossify_taxonomy_case_sensitivity'],
  ];
  $form['glossify_taxonomy_first_only'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('First match only'),
    '#description' => $this
      ->t('Match and link only the first occurance per field.'),
    '#default_value' => $this->settings['glossify_taxonomy_first_only'],
  ];
  $form['glossify_taxonomy_type'] = [
    '#type' => 'radios',
    '#title' => $this
      ->t('Type'),
    '#required' => TRUE,
    '#options' => [
      'tooltips' => $this
        ->t('Tooltips'),
      'links' => $this
        ->t('Links'),
      'tooltips_links' => $this
        ->t('Tooltips and links'),
    ],
    '#description' => $this
      ->t('How to show matches in content. Description as HTML5 tooltip (abbr element), link to description or both.'),
    '#default_value' => $this->settings['glossify_taxonomy_type'],
  ];
  $form['glossify_taxonomy_vocabs'] = [
    '#type' => 'checkboxes',
    '#multiple' => TRUE,
    '#element_validate' => [
      [
        get_class($this),
        'validateTaxonomyVocabs',
      ],
    ],
    '#title' => $this
      ->t('Taxonomy vocabularies'),
    '#description' => $this
      ->t('Select the taxonomy vocabularies you want to use term names from to link their term page.'),
    '#options' => $vocab_options,
    '#default_value' => explode(';', $this->settings['glossify_taxonomy_vocabs']),
  ];
  $form['glossify_taxonomy_urlpattern'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('URL pattern'),
    '#description' => $this
      ->t('Url pattern, used for linking matched words. Accepts "[id]" as token. Example: "/taxonomy/term/[id]"'),
    '#default_value' => $this->settings['glossify_taxonomy_urlpattern'],
  ];
  return $form;
}