You are here

function String::operators in Views (for Drupal 7) 8.3

This kind of construct makes it relatively easy for a child class to add or remove functionality by overriding this function and adding/removing items from this array.

4 calls to String::operators()
Combine::query in lib/Drupal/views/Plugin/views/filter/Combine.php
Add this filter to the query.
String::operator_options in lib/Drupal/views/Plugin/views/filter/String.php
Build strings from the operators() for 'select' options
String::operator_values in lib/Drupal/views/Plugin/views/filter/String.php
String::query in lib/Drupal/views/Plugin/views/filter/String.php
Add this filter to the query.

File

lib/Drupal/views/Plugin/views/filter/String.php, line 41
Definition of Drupal\views\Plugin\views\filter\String.

Class

String
Basic textfield filter to handle string filtering commands including equality, like, not like, etc.

Namespace

Drupal\views\Plugin\views\filter

Code

function operators() {
  $operators = array(
    '=' => array(
      'title' => t('Is equal to'),
      'short' => t('='),
      'method' => 'op_equal',
      'values' => 1,
    ),
    '!=' => array(
      'title' => t('Is not equal to'),
      'short' => t('!='),
      'method' => 'op_equal',
      'values' => 1,
    ),
    'contains' => array(
      'title' => t('Contains'),
      'short' => t('contains'),
      'method' => 'op_contains',
      'values' => 1,
    ),
    'word' => array(
      'title' => t('Contains any word'),
      'short' => t('has word'),
      'method' => 'op_word',
      'values' => 1,
    ),
    'allwords' => array(
      'title' => t('Contains all words'),
      'short' => t('has all'),
      'method' => 'op_word',
      'values' => 1,
    ),
    'starts' => array(
      'title' => t('Starts with'),
      'short' => t('begins'),
      'method' => 'op_starts',
      'values' => 1,
    ),
    'not_starts' => array(
      'title' => t('Does not start with'),
      'short' => t('not_begins'),
      'method' => 'op_not_starts',
      'values' => 1,
    ),
    'ends' => array(
      'title' => t('Ends with'),
      'short' => t('ends'),
      'method' => 'op_ends',
      'values' => 1,
    ),
    'not_ends' => array(
      'title' => t('Does not end with'),
      'short' => t('not_ends'),
      'method' => 'op_not_ends',
      'values' => 1,
    ),
    'not' => array(
      'title' => t('Does not contain'),
      'short' => t('!has'),
      'method' => 'op_not',
      'values' => 1,
    ),
    'shorterthan' => array(
      'title' => t('Length is shorter than'),
      'short' => t('shorter than'),
      'method' => 'op_shorter',
      'values' => 1,
    ),
    'longerthan' => array(
      'title' => t('Length is longer than'),
      'short' => t('longer than'),
      'method' => 'op_longer',
      'values' => 1,
    ),
  );

  // if the definition allows for the empty operator, add it.
  if (!empty($this->definition['allow empty'])) {
    $operators += array(
      'empty' => array(
        'title' => t('Is empty (NULL)'),
        'method' => 'op_empty',
        'short' => t('empty'),
        'values' => 0,
      ),
      'not empty' => array(
        'title' => t('Is not empty (NOT NULL)'),
        'method' => 'op_empty',
        'short' => t('not empty'),
        'values' => 0,
      ),
    );
  }

  // Add regexp support for MySQL.
  if (Database::getConnection()
    ->databaseType() == 'mysql') {
    $operators += array(
      'regular_expression' => array(
        'title' => t('Regular expression'),
        'short' => t('regex'),
        'method' => 'op_regex',
        'values' => 1,
      ),
    );
  }
  return $operators;
}