-
Notifications
You must be signed in to change notification settings - Fork 2
/
og_sm.views.inc
45 lines (40 loc) · 1.24 KB
/
og_sm.views.inc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
/**
* @file
* Views hooks.
*/
use Drupal\field\FieldStorageConfigInterface;
/**
* Implements hook_field_views_data_alter().
*/
function og_sm_field_views_data_alter(array &$data, FieldStorageConfigInterface $field_storage) {
if ($field_storage->getType() !== 'og_standard_reference') {
return;
}
foreach ($data as $table_name => $table_data) {
$field_name = $field_storage->getName();
if (!isset($table_data[$field_name])) {
continue;
}
$relationship_handler = $data[$table_name][$field_name]['relationship'];
$data[$table_name]['og_sm_sites'] = [
'title' => t('Site'),
'group' => $relationship_handler['group'],
'help' => t('Filter on the site linked to the entity.'),
'filter' => [
'id' => 'og_sm_sites',
'field' => 'og_audience_target_id',
],
];
$data[$table_name]['og_sm_manageable_sites_by_current_user'] = [
'title' => t('Manageable sites by current user'),
'group' => $relationship_handler['group'],
'help' => t('Filter on all sites the current user can manage.'),
'filter' => [
'id' => 'og_sm_manageable_sites_by_current_user',
'field' => 'og_audience_target_id',
'type' => 'yes-no',
],
];
}
}