You are here

public function ManyToOne::title in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/views/src/Plugin/views/argument/ManyToOne.php \Drupal\views\Plugin\views\argument\ManyToOne::title()

Get the title this argument will assign the view, given the argument.

This usually needs to be overridden to provide a proper title.

Overrides ArgumentPluginBase::title

File

core/modules/views/src/Plugin/views/argument/ManyToOne.php, line 129

Class

ManyToOne
An argument handler for use in fields that have a many to one relationship with the table(s) to the left. This adds a bunch of options that are reasonably common with this type of relationship. Definition terms:

Namespace

Drupal\views\Plugin\views\argument

Code

public function title() {
  if (!$this->argument) {
    return !empty($this->definition['empty field name']) ? $this->definition['empty field name'] : $this
      ->t('Uncategorized');
  }
  if (!empty($this->options['break_phrase'])) {
    $force_int = !empty($this->definition['numeric']);
    $this
      ->unpackArgumentValue($force_int);
  }
  else {
    $this->value = [
      $this->argument,
    ];
    $this->operator = 'or';
  }

  // @todo -- both of these should check definition for alternate keywords.
  if (empty($this->value)) {
    return !empty($this->definition['empty field name']) ? $this->definition['empty field name'] : $this
      ->t('Uncategorized');
  }
  if ($this->value === [
    -1,
  ]) {
    return !empty($this->definition['invalid input']) ? $this->definition['invalid input'] : $this
      ->t('Invalid input');
  }
  return implode($this->operator == 'or' ? ' + ' : ', ', $this
    ->titleQuery());
}