Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 /**
|
Chris@0
|
4 * @file
|
Chris@0
|
5 * Provide views data for tracker.module.
|
Chris@0
|
6 */
|
Chris@0
|
7
|
Chris@0
|
8 /**
|
Chris@0
|
9 * Implements hook_views_data().
|
Chris@0
|
10 */
|
Chris@0
|
11 function tracker_views_data() {
|
Chris@0
|
12 $data = [];
|
Chris@0
|
13
|
Chris@0
|
14 $data['tracker_node']['table']['group'] = t('Tracker');
|
Chris@0
|
15 $data['tracker_node']['table']['join'] = [
|
Chris@0
|
16 'node_field_data' => [
|
Chris@0
|
17 'type' => 'INNER',
|
Chris@0
|
18 'left_field' => 'nid',
|
Chris@0
|
19 'field' => 'nid',
|
Chris@0
|
20 ],
|
Chris@0
|
21 ];
|
Chris@0
|
22 $data['tracker_node']['nid'] = [
|
Chris@0
|
23 'title' => t('Nid'),
|
Chris@0
|
24 'help' => t('The node ID of the node.'),
|
Chris@0
|
25 'field' => [
|
Chris@0
|
26 'id' => 'node',
|
Chris@0
|
27 ],
|
Chris@0
|
28 'argument' => [
|
Chris@0
|
29 'id' => 'node_nid',
|
Chris@0
|
30 'name field' => 'title',
|
Chris@0
|
31 'numeric' => TRUE,
|
Chris@0
|
32 'validate type' => 'nid',
|
Chris@0
|
33 ],
|
Chris@0
|
34 'filter' => [
|
Chris@0
|
35 'id' => 'numeric',
|
Chris@0
|
36 ],
|
Chris@0
|
37 'sort' => [
|
Chris@0
|
38 'id' => 'standard',
|
Chris@0
|
39 ],
|
Chris@0
|
40 ];
|
Chris@0
|
41 $data['tracker_node']['published'] = [
|
Chris@0
|
42 'title' => t('Published'),
|
Chris@0
|
43 'help' => t('Whether or not the node is published.'),
|
Chris@0
|
44 'field' => [
|
Chris@0
|
45 'id' => 'boolean',
|
Chris@0
|
46 ],
|
Chris@0
|
47 'filter' => [
|
Chris@0
|
48 'id' => 'boolean',
|
Chris@0
|
49 'label' => t('Published'),
|
Chris@0
|
50 'type' => 'yes-no',
|
Chris@0
|
51 'accept null' => TRUE,
|
Chris@0
|
52 'use_equal' => TRUE,
|
Chris@0
|
53 ],
|
Chris@0
|
54 'sort' => [
|
Chris@0
|
55 'id' => 'standard',
|
Chris@0
|
56 ],
|
Chris@0
|
57 ];
|
Chris@0
|
58 $data['tracker_node']['changed'] = [
|
Chris@0
|
59 'title' => t('Updated date'),
|
Chris@0
|
60 'help' => t('The date the node was last updated.'),
|
Chris@0
|
61 'field' => [
|
Chris@0
|
62 'id' => 'date',
|
Chris@0
|
63 ],
|
Chris@0
|
64 'sort' => [
|
Chris@0
|
65 'id' => 'date',
|
Chris@0
|
66 ],
|
Chris@0
|
67 'filter' => [
|
Chris@0
|
68 'id' => 'date',
|
Chris@0
|
69 ],
|
Chris@0
|
70 ];
|
Chris@0
|
71
|
Chris@0
|
72 $data['tracker_user']['table']['group'] = t('Tracker - User');
|
Chris@0
|
73 $data['tracker_user']['table']['join'] = [
|
Chris@0
|
74 'node_field_data' => [
|
Chris@0
|
75 'type' => 'INNER',
|
Chris@0
|
76 'left_field' => 'nid',
|
Chris@0
|
77 'field' => 'nid',
|
Chris@0
|
78 ],
|
Chris@0
|
79 'user_field_data' => [
|
Chris@0
|
80 'type' => 'INNER',
|
Chris@0
|
81 'left_field' => 'uid',
|
Chris@0
|
82 'field' => 'uid',
|
Chris@0
|
83 ],
|
Chris@0
|
84 ];
|
Chris@0
|
85 $data['tracker_user']['nid'] = [
|
Chris@0
|
86 'title' => t('Nid'),
|
Chris@0
|
87 'help' => t('The node ID of the node a user created or commented on. You must use an argument or filter on UID or you will get misleading results using this field.'),
|
Chris@0
|
88 'field' => [
|
Chris@0
|
89 'id' => 'node',
|
Chris@0
|
90 ],
|
Chris@0
|
91 'argument' => [
|
Chris@0
|
92 'id' => 'node_nid',
|
Chris@0
|
93 'name field' => 'title',
|
Chris@0
|
94 'numeric' => TRUE,
|
Chris@0
|
95 'validate type' => 'nid',
|
Chris@0
|
96 ],
|
Chris@0
|
97 'filter' => [
|
Chris@0
|
98 'id' => 'numeric',
|
Chris@0
|
99 ],
|
Chris@0
|
100 'sort' => [
|
Chris@0
|
101 'id' => 'standard',
|
Chris@0
|
102 ],
|
Chris@0
|
103 ];
|
Chris@0
|
104 $data['tracker_user']['uid'] = [
|
Chris@0
|
105 'title' => t('Uid'),
|
Chris@0
|
106 'help' => t('The user ID of a user who touched the node (either created or commented on it).'),
|
Chris@0
|
107 'field' => [
|
Chris@0
|
108 'id' => 'user_name',
|
Chris@0
|
109 ],
|
Chris@0
|
110 'argument' => [
|
Chris@0
|
111 'id' => 'user_uid',
|
Chris@0
|
112 'name field' => 'name',
|
Chris@0
|
113 ],
|
Chris@0
|
114 'filter' => [
|
Chris@0
|
115 'title' => t('Name'),
|
Chris@0
|
116 'id' => 'user_name',
|
Chris@0
|
117 ],
|
Chris@0
|
118 'sort' => [
|
Chris@0
|
119 'id' => 'standard',
|
Chris@0
|
120 ],
|
Chris@0
|
121 ];
|
Chris@0
|
122 $data['tracker_user']['published'] = [
|
Chris@0
|
123 'title' => t('Published'),
|
Chris@0
|
124 'help' => t('Whether or not the node is published. You must use an argument or filter on UID or you will get misleading results using this field.'),
|
Chris@0
|
125 'field' => [
|
Chris@0
|
126 'id' => 'boolean',
|
Chris@0
|
127 ],
|
Chris@0
|
128 'filter' => [
|
Chris@0
|
129 'id' => 'boolean',
|
Chris@0
|
130 'label' => t('Published'),
|
Chris@0
|
131 'type' => 'yes-no',
|
Chris@0
|
132 'accept null' => TRUE,
|
Chris@0
|
133 'use_equal' => TRUE,
|
Chris@0
|
134 ],
|
Chris@0
|
135 'sort' => [
|
Chris@0
|
136 'id' => 'standard',
|
Chris@0
|
137 ],
|
Chris@0
|
138 ];
|
Chris@0
|
139 $data['tracker_user']['changed'] = [
|
Chris@0
|
140 'title' => t('Updated date'),
|
Chris@0
|
141 'help' => t('The date the node was last updated or commented on. You must use an argument or filter on UID or you will get misleading results using this field.'),
|
Chris@0
|
142 'field' => [
|
Chris@0
|
143 'id' => 'date',
|
Chris@0
|
144 ],
|
Chris@0
|
145 'sort' => [
|
Chris@0
|
146 'id' => 'date',
|
Chris@0
|
147 ],
|
Chris@0
|
148 'filter' => [
|
Chris@0
|
149 'id' => 'date',
|
Chris@0
|
150 ],
|
Chris@0
|
151 ];
|
Chris@0
|
152
|
Chris@0
|
153 return $data;
|
Chris@0
|
154 }
|
Chris@0
|
155
|
Chris@0
|
156 /**
|
Chris@0
|
157 * Implements hook_views_data_alter().
|
Chris@0
|
158 */
|
Chris@0
|
159 function tracker_views_data_alter(&$data) {
|
Chris@0
|
160 // Provide additional uid_touch handlers which are handled by tracker
|
Chris@0
|
161 $data['node_field_data']['uid_touch_tracker'] = [
|
Chris@0
|
162 'group' => t('Tracker - User'),
|
Chris@0
|
163 'title' => t('User posted or commented'),
|
Chris@0
|
164 'help' => t('Display nodes only if a user posted the node or commented on the node.'),
|
Chris@0
|
165 'argument' => [
|
Chris@0
|
166 'field' => 'uid',
|
Chris@0
|
167 'name table' => 'users_field_data',
|
Chris@0
|
168 'name field' => 'name',
|
Chris@0
|
169 'id' => 'tracker_user_uid',
|
Chris@0
|
170 'no group by' => TRUE,
|
Chris@0
|
171 ],
|
Chris@0
|
172 'filter' => [
|
Chris@0
|
173 'field' => 'uid',
|
Chris@0
|
174 'name table' => 'users_field_data',
|
Chris@0
|
175 'name field' => 'name',
|
Chris@17
|
176 'id' => 'tracker_user_uid',
|
Chris@0
|
177 ],
|
Chris@0
|
178 ];
|
Chris@0
|
179 }
|