class ArgumentValidatorPluginBase

Same name and namespace in other branches
  1. 11.x core/modules/views/src/Plugin/views/argument_validator/ArgumentValidatorPluginBase.php \Drupal\views\Plugin\views\argument_validator\ArgumentValidatorPluginBase
  2. 10 core/modules/views/src/Plugin/views/argument_validator/ArgumentValidatorPluginBase.php \Drupal\views\Plugin\views\argument_validator\ArgumentValidatorPluginBase
  3. 8.9.x core/modules/views/src/Plugin/views/argument_validator/ArgumentValidatorPluginBase.php \Drupal\views\Plugin\views\argument_validator\ArgumentValidatorPluginBase

Base argument validator plugin to provide basic functionality.

Hierarchy

Expanded class hierarchy of ArgumentValidatorPluginBase

Related topics

1 file declares its use of ArgumentValidatorPluginBase
ArgumentValidatorTest.php in core/modules/views/tests/modules/views_test_data/src/Plugin/views/argument_validator/ArgumentValidatorTest.php

File

core/modules/views/src/Plugin/views/argument_validator/ArgumentValidatorPluginBase.php, line 34

Namespace

Drupal\views\Plugin\views\argument_validator
View source
abstract class ArgumentValidatorPluginBase extends PluginBase {
  
  /**
   * The argument handler instance associated with this plugin.
   *
   * @var \Drupal\views\Plugin\views\argument\ArgumentPluginBase
   */
  protected $argument;
  
  /**
   * Sets the parent argument this plugin is associated with.
   *
   * @param \Drupal\views\Plugin\views\argument\ArgumentPluginBase $argument
   *   The parent argument to set.
   */
  public function setArgument(ArgumentPluginBase $argument) {
    $this->argument = $argument;
  }
  
  /**
   * Retrieves the options when this is a new access control plugin.
   */
  protected function defineOptions() {
    return [];
  }
  
  /**
   * Provides the default form for setting options.
   */
  public function buildOptionsForm(&$form, FormStateInterface $form_state) {
  }
  
  /**
   * Provides the default form for validating options.
   */
  public function validateOptionsForm(&$form, FormStateInterface $form_state) {
  }
  
  /**
   * Provides the default form for submitting options.
   */
  public function submitOptionsForm(&$form, FormStateInterface $form_state, &$options = []) {
  }
  
  /**
   * Determines if the administrator has the privileges to use this plugin.
   */
  public function access() {
    return TRUE;
  }
  
  /**
   * Blocks user input when the form is shown but we don´t have access.
   *
   * This is only called by child objects if specified in the buildOptionsForm(),
   * so it will not always be used.
   */
  protected function checkAccess(&$form, $option_name) {
    if (!$this->access()) {
      $form[$option_name]['#disabled'] = TRUE;
      $form[$option_name]['#value'] = $form[$this->option_name]['#default_value'];
      $form[$option_name]['#description'] .= ' <strong>' . $this->t('Note: you do not have permission to modify this. If you change the default filter type, this setting will be lost and you will NOT be able to get it back.') . '</strong>';
    }
  }
  
  /**
   * Performs validation for a given argument.
   */
  public function validateArgument($arg) {
    return TRUE;
  }
  
  /**
   * Processes the summary arguments for displaying.
   *
   * Some plugins alter the argument so it uses something else internally.
   * For example the user validation set's the argument to the uid,
   * for a faster query. But there are use cases where you want to use
   * the old value again, for example the summary.
   */
  public function processSummaryArguments(&$args) {
  }
  
  /**
   * Returns a context definition for this argument.
   *
   * @return \Drupal\Core\Plugin\Context\ContextDefinitionInterface|null
   *   A context definition that represents the argument or NULL if that is
   *   not possible.
   */
  public function getContextDefinition() {
  }

}

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