Skip to content
Snippets Groups Projects

Resolve #3506819 "Add better support"

1 file
+ 39
0
Compare changes
  • Side-by-side
  • Inline
+ 39
0
<?php
/**
* @file
* double_reference.module.
*/
declare(strict_types=1);
use Drupal\field\FieldStorageConfigInterface;
/**
* Implements hook_field_views_data_views_data_alter().
*/
function double_reference_field_views_data_views_data_alter(
array &$data,
FieldStorageConfigInterface $field
): void {
// Guard the field type.
if ($field->getType() !== 'double_reference') {
return;
}
$fieldName = $field->getName();
$targetType = $field->getSetting('target_type');
$arTargetType = $field->getSetting('ar_target_type');
// Change the target_type filter to use the entity reference filter.
$data["{$field->getTargetEntityTypeId()}__{$fieldName}"]["{$fieldName}_target_id"]['filter']['id'] = match($targetType) {
'taxonomy_term' => 'taxonomy_index_tid',
default => 'entity_reference',
};
// Change the ar_target_type filter to use the entity reference filter.
$data["{$field->getTargetEntityTypeId()}__{$fieldName}"]["{$fieldName}_ar_target_id"]['filter']['id'] = match($arTargetType) {
'taxonomy_term' => 'taxonomy_index_tid',
default => 'entity_reference',
};
}
Loading