public function NodeTooltip::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_node/ src/ Plugin/ Filter/ NodeTooltip.php, line 32
Class
- NodeTooltip
- Filter to find and process found taxonomy terms in the fields value.
Namespace
Drupal\glossify_node\Plugin\FilterCode
public function settingsForm(array $form, FormStateInterface $form_state) {
$ntype_options = [];
// Get all node types.
$node_types = NodeType::loadMultiple();
foreach ($node_types as $id => $node_type) {
$ntype_options[$id] = $node_type
->get('name');
}
$form['glossify_node_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_node_case_sensitivity'],
];
$form['glossify_node_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_node_first_only'],
];
$form['glossify_node_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_node_type'],
];
$form['glossify_node_bundles'] = [
'#type' => 'checkboxes',
'#multiple' => TRUE,
'#element_validate' => [
[
get_class($this),
'validateNodeBundles',
],
],
'#title' => $this
->t('Node types'),
'#description' => $this
->t('Select the node types you want to use titles from to link to their node page.'),
'#options' => $ntype_options,
'#default_value' => explode(';', $this->settings['glossify_node_bundles']),
];
$form['glossify_node_urlpattern'] = [
'#type' => 'textfield',
'#title' => $this
->t('URL pattern'),
'#description' => $this
->t('Url pattern, used for linking matched words. Accepts "[id]" as token. Example: "/node/[id]"'),
'#default_value' => $this->settings['glossify_node_urlpattern'],
];
return $form;
}