function ViewsHooks::queryViewsAlter
Implements hook_query_TAG_alter().
This is the hook_query_alter() for queries tagged by Views and is used to add in substitutions from hook_views_query_substitutions().
File
-
core/
modules/ views/ src/ Hook/ ViewsHooks.php, line 332
Class
- ViewsHooks
- Hook implementations for views.
Namespace
Drupal\views\HookCode
public function queryViewsAlter(AlterableInterface $query) : void {
$substitutions = $query->getMetaData('views_substitutions');
$tables =& $query->getTables();
$where =& $query->conditions();
// Replaces substitutions in tables.
foreach ($tables as $table_name => $table_metadata) {
foreach ($table_metadata['arguments'] as $replacement_key => $value) {
if (!is_array($value)) {
if (isset($substitutions[$value])) {
$tables[$table_name]['arguments'][$replacement_key] = $substitutions[$value];
}
}
else {
foreach ($value as $sub_key => $sub_value) {
if (isset($substitutions[$sub_value])) {
$tables[$table_name]['arguments'][$replacement_key][$sub_key] = $substitutions[$sub_value];
}
}
}
}
}
// Replaces substitutions in filter criteria.
_views_query_tag_alter_condition($query, $where, $substitutions);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.