You are here

protected function FilterPluginBase::validateIdentifier in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/views/src/Plugin/views/filter/FilterPluginBase.php \Drupal\views\Plugin\views\filter\FilterPluginBase::validateIdentifier()
  2. 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:

array $form_group: 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 756

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 ($identifier == 'value') {
    $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;
}