public function IndexTidDepthModifier::preQuery in Views (for Drupal 7) 8.3
Run before the view is built.
This gives all the handlers some time to set up before any handler has been fully run.
Overrides HandlerBase::preQuery
File
- lib/
Views/ taxonomy/ Plugin/ views/ argument/ IndexTidDepthModifier.php, line 32 - Definition of Views\taxonomy\Plugin\views\argument\IndexTidDepthModifier.
Class
- IndexTidDepthModifier
- Argument handler for to modify depth for a previous term.
Namespace
Views\taxonomy\Plugin\views\argumentCode
public function preQuery() {
// We don't know our argument yet, but it's based upon our position:
$argument = isset($this->view->args[$this->position]) ? $this->view->args[$this->position] : NULL;
if (!is_numeric($argument)) {
return;
}
if ($argument > 10) {
$argument = 10;
}
if ($argument < -10) {
$argument = -10;
}
// figure out which argument preceded us.
$keys = array_reverse(array_keys($this->view->argument));
$skip = TRUE;
foreach ($keys as $key) {
if ($key == $this->options['id']) {
$skip = FALSE;
continue;
}
if ($skip) {
continue;
}
if (empty($this->view->argument[$key])) {
continue;
}
if (isset($handler)) {
unset($handler);
}
$handler =& $this->view->argument[$key];
if (empty($handler->definition['accept depth modifier'])) {
continue;
}
// Finally!
$handler->options['depth'] = $argument;
}
}