function FilterPluginBase::validateIdentifier

Same name and namespace in other branches
  1. 9 core/modules/views/src/Plugin/views/filter/FilterPluginBase.php \Drupal\views\Plugin\views\filter\FilterPluginBase::validateIdentifier()
  2. 8.9.x core/modules/views/src/Plugin/views/filter/FilterPluginBase.php \Drupal\views\Plugin\views\filter\FilterPluginBase::validateIdentifier()
  3. 10 core/modules/views/src/Plugin/views/filter/FilterPluginBase.php \Drupal\views\Plugin\views\filter\FilterPluginBase::validateIdentifier()

Validates a filter identifier.

Sets the form error if $form_state is passed or an error string if $form_state is not passed.

Parameters

string $identifier: The identifier to check.

\Drupal\Core\Form\FormStateInterface $form_state: (optional) The current state of the form.

array $form_group: (optional) The form element to set any errors on.

Return value

string

3 calls to FilterPluginBase::validateIdentifier()
FilterPluginBase::buildGroupValidate in core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
Validate the build group options form.
FilterPluginBase::validate in core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
Validate that the plugin is correct and can be saved.
FilterPluginBase::validateExposeForm in core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
Validate the options form.

File

core/modules/views/src/Plugin/views/filter/FilterPluginBase.php, line 799

Class

FilterPluginBase
Base class for Views filters handler plugins.

Namespace

Drupal\views\Plugin\views\filter

Code

protected function validateIdentifier($identifier, ?FormStateInterface $form_state = NULL, &$form_group = []) {
    $error = '';
    if (empty($identifier)) {
        $error = $this->t('The identifier is required if the filter is exposed.');
    }
    elseif (in_array($identifier, self::RESTRICTED_IDENTIFIERS)) {
        $error = $this->t('This identifier is not allowed.');
    }
    elseif (preg_match('/[^a-zA-Z0-9_~\\.\\-]+/', $identifier)) {
        $error = $this->t('This identifier has illegal characters.');
    }
    if ($form_state && !$this->view->display_handler
        ->isIdentifierUnique($form_state->get('id'), $identifier)) {
        $error = $this->t('This identifier is used by another handler.');
    }
    if (!empty($form_state) && !empty($error)) {
        $form_state->setError($form_group, $error);
    }
    return $error;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.