class TaxonomyIndexTidDepth in Drupal 10
Same name and namespace in other branches
- 8 core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTidDepth.php \Drupal\taxonomy\Plugin\views\filter\TaxonomyIndexTidDepth
- 9 core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTidDepth.php \Drupal\taxonomy\Plugin\views\filter\TaxonomyIndexTidDepth
Filter handler for taxonomy terms with depth.
This handler is actually part of the node table and has some restrictions, because it uses a subquery to find nodes with.
Plugin annotation
@ViewsFilter("taxonomy_index_tid_depth");
Hierarchy
- class \Drupal\views\Plugin\views\filter\FilterPluginBase extends \Drupal\views\Plugin\views\HandlerBase implements CacheableDependencyInterface
- class \Drupal\views\Plugin\views\filter\InOperator
- class \Drupal\views\Plugin\views\filter\ManyToOne
- class \Drupal\taxonomy\Plugin\views\filter\TaxonomyIndexTid
- class \Drupal\taxonomy\Plugin\views\filter\TaxonomyIndexTidDepth uses TaxonomyIndexDepthQueryTrait
- class \Drupal\taxonomy\Plugin\views\filter\TaxonomyIndexTid
- class \Drupal\views\Plugin\views\filter\ManyToOne
- class \Drupal\views\Plugin\views\filter\InOperator
Expanded class hierarchy of TaxonomyIndexTidDepth
Related topics
File
- core/
modules/ taxonomy/ src/ Plugin/ views/ filter/ TaxonomyIndexTidDepth.php, line 18
Namespace
Drupal\taxonomy\Plugin\views\filterView source
class TaxonomyIndexTidDepth extends TaxonomyIndexTid {
use TaxonomyIndexDepthQueryTrait;
public function operatorOptions($which = 'title') {
return [
'or' => $this
->t('Is one of'),
];
}
protected function defineOptions() {
$options = parent::defineOptions();
$options['depth'] = [
'default' => 0,
];
return $options;
}
public function buildExtraOptionsForm(&$form, FormStateInterface $form_state) {
parent::buildExtraOptionsForm($form, $form_state);
$form['depth'] = [
'#type' => 'weight',
'#title' => $this
->t('Depth'),
'#default_value' => $this->options['depth'],
'#description' => $this
->t('The depth will match nodes tagged with terms in the hierarchy. For example, if you have the term "fruit" and a child term "apple", with a depth of 1 (or higher) then filtering for the term "fruit" will get nodes that are tagged with "apple" as well as "fruit". If negative, the reverse is true; searching for "apple" will also pick up nodes tagged with "fruit" if depth is -1 (or lower).'),
];
}
public function query() {
// If no filter values are present, then do nothing.
if (count($this->value) == 0) {
return;
}
elseif (count($this->value) == 1) {
// Sometimes $this->value is an array with a single element so convert it.
if (is_array($this->value)) {
$this->value = current($this->value);
}
}
// The normal use of ensureMyTable() here breaks Views.
// So instead we trick the filter into using the alias of the base table.
// See https://www.drupal.org/node/271833.
// If a relationship is set, we must use the alias it provides.
if (!empty($this->relationship)) {
$this->tableAlias = $this->relationship;
}
else {
$this->tableAlias = $this->query
->ensureTable($this->view->storage
->get('base_table'));
}
$this
->addSubQueryJoin($this->value);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
FilterPluginBase:: |
protected | property | Disable the possibility to force a single value. | 4 |
FilterPluginBase:: |
public | property | Disable the possibility to allow an exposed input to be optional. | |
FilterPluginBase:: |
public | property | Contains the information of the selected item in a grouped filter. | |
FilterPluginBase:: |
public | property | Disable the possibility to use operators. | 1 |
FilterPluginBase:: |
public | property | Contains the operator which is used on the query. | |
FilterPluginBase:: |
public | property | Contains the actual value of the field,either configured in the views ui or entered in the exposed filters. | |
FilterPluginBase:: |
public | function | Add a new group to the exposed filter groups. | |
FilterPluginBase:: |
protected static | function | Filter by no empty values, though allow the use of (string) "0". | |
FilterPluginBase:: |
protected | function | Build the form to let users create the group of exposed filters. | |
FilterPluginBase:: |
public | function | Render our chunk of the exposed filter form when selecting. | |
FilterPluginBase:: |
public | function | Displays the Build Group form. | |
FilterPluginBase:: |
protected | function | Provide default options for exposed filters. | |
FilterPluginBase:: |
protected | function | Save new group items, re-enumerates and remove groups marked to delete. | |
FilterPluginBase:: |
protected | function | Validate the build group options form. | |
FilterPluginBase:: |
public | function | Provide the basic form which calls through to subforms. | 1 |
FilterPluginBase:: |
protected | function | Builds wrapper for value and operator forms. | |
FilterPluginBase:: |
protected | function | Determine if a filter can be converted into a group. | |
FilterPluginBase:: |
public | function | Determine if a filter can be exposed. | 5 |
FilterPluginBase:: |
public | function | Can this filter be used in OR groups? | 1 |
FilterPluginBase:: |
public | function | Transform the input from a grouped filter into a standard filter. | |
FilterPluginBase:: |
public | function | Tell the renderer about our exposed form. This only needs to be overridden for particularly complex forms. And maybe not even then. | |
FilterPluginBase:: |
protected | function | Make some translations to a form item to make it more suitable to exposing. | |
FilterPluginBase:: |
public | function |
The maximum age for which this object may be cached. Overrides CacheableDependencyInterface:: |
|
FilterPluginBase:: |
public | function |
The cache tags associated with this object. Overrides CacheableDependencyInterface:: |
1 |
FilterPluginBase:: |
public | function | Build a form containing a group of operator | values to apply as a single filter. | |
FilterPluginBase:: |
public | function | Returns the options available for a grouped filter that users checkboxes as widget, and therefore has to be applied several times, one per item selected. | |
FilterPluginBase:: |
protected | function | Determines if the given grouped filter entry has a valid value. | 1 |
FilterPluginBase:: |
public | function | Returns TRUE if the exposed filter works like a grouped filter. | |
FilterPluginBase:: |
public | function | Returns TRUE if users can select multiple groups items of a grouped exposed filter. | |
FilterPluginBase:: |
protected | function | Options form subform for setting the operator. | 5 |
FilterPluginBase:: |
public | function | Perform any necessary changes to the form values prior to storage. | |
FilterPluginBase:: |
protected | function | Validate the operator form. | |
FilterPluginBase:: |
protected | function | Sanitizes the HTML select element's options. | |
FilterPluginBase:: |
protected | function | Shortcut to display the build_group/hide button. | |
FilterPluginBase:: |
public | function | Shortcut to display the exposed options form. | |
FilterPluginBase:: |
public | function | Shortcut to display the expose/hide button. | |
FilterPluginBase:: |
public | function | Shortcut to display the operator form. | |
FilterPluginBase:: |
protected | function | Shortcut to display the value form. | |
FilterPluginBase:: |
public | function | ||
FilterPluginBase:: |
public | function | If set to remember exposed input in the session, store it there. | |
FilterPluginBase:: |
public | function | Simple submit handler. | |
FilterPluginBase:: |
public static | function | ||
FilterPluginBase:: |
public | function | Validate the options form. | |
FilterPluginBase:: |
protected | function | Validates a filter identifier. | |
FilterPluginBase:: |
public | function | Simple validate handler. | 1 |
InOperator:: |
protected | property | Stores all operations which are available on the form. | |
InOperator:: |
protected | property | The filter title. | |
InOperator:: |
public | function |
Provide default options for exposed filters. Overrides FilterPluginBase:: |
|
InOperator:: |
protected | function | ||
InOperator:: |
protected | function | ||
InOperator:: |
protected | function | 1 | |
InOperator:: |
public | function | When using exposed filters, we may be required to reduce the set. | |
InOperator:: |
public | function |
Overrides FilterPluginBase:: |
|
ManyToOne:: |
public | property | Stores the Helper object which handles the many_to_one complexity. | |
ManyToOne:: |
protected | property |
Overrides InOperator:: |
|
ManyToOne:: |
public | function | Override ensureMyTable so we can control how this joins in. The operator actually has influence over joining. | |
ManyToOne:: |
public | function |
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. Overrides InOperator:: |
1 |
ManyToOne:: |
protected | function | ||
TaxonomyIndexDepthQueryTrait:: |
protected | function | Builds a performant depth subquery and adds it as a join to the query. | |
TaxonomyIndexTid:: |
protected | property | The current user. | |
TaxonomyIndexTid:: |
protected | property | The term storage. | |
TaxonomyIndexTid:: |
public | property | Stores the exposed input for this filter. | |
TaxonomyIndexTid:: |
protected | property | The vocabulary storage. | |
TaxonomyIndexTid:: |
public | function |
Determines if the input from a filter should change the generated query. Overrides InOperator:: |
|
TaxonomyIndexTid:: |
public | function |
Display the filter on the administrative summary. Overrides InOperator:: |
|
TaxonomyIndexTid:: |
public | function |
Options form subform for exposed filter options. Overrides InOperator:: |
|
TaxonomyIndexTid:: |
public | function | ||
TaxonomyIndexTid:: |
public static | function | ||
TaxonomyIndexTid:: |
public | function |
The cache contexts associated with this object. Overrides FilterPluginBase:: |
|
TaxonomyIndexTid:: |
public | function |
Child classes should be used to override this function and set the
'value options', unless 'options callback' is defined as a valid function
or static public method to generate these values. Overrides InOperator:: |
|
TaxonomyIndexTid:: |
public | function | ||
TaxonomyIndexTid:: |
public | function |
Overrides \Drupal\views\Plugin\views\HandlerBase::init(). Overrides ManyToOne:: |
|
TaxonomyIndexTid:: |
public | function | ||
TaxonomyIndexTid:: |
protected | function |
Options form subform for setting options. Overrides ManyToOne:: |
|
TaxonomyIndexTid:: |
protected | function |
Perform any necessary changes to the form values prior to storage. Overrides InOperator:: |
|
TaxonomyIndexTid:: |
protected | function |
Validate the options form. Overrides FilterPluginBase:: |
|
TaxonomyIndexTid:: |
public | function | Constructs a TaxonomyIndexTid object. | |
TaxonomyIndexTidDepth:: |
public | function |
Overrides TaxonomyIndexTid:: |
|
TaxonomyIndexTidDepth:: |
protected | function |
Overrides TaxonomyIndexTid:: |
|
TaxonomyIndexTidDepth:: |
public | function |
Build strings from the operators() for 'select' options. Overrides InOperator:: |
|
TaxonomyIndexTidDepth:: |
public | function |
Add this filter to the query. Overrides InOperator:: |