Projet

Général

Profil

Paste
Télécharger (5,2 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / views / modules / tracker.views.inc @ 5d12d676

1
<?php
2

    
3
/**
4
 * @file
5
 * Provide views data and handlers for tracker.module.
6
 *
7
 * @ingroup views_module_handlers
8
 */
9

    
10
/**
11
 * Implements hook_views_data().
12
 */
13
function tracker_views_data() {
14
  $data = array();
15

    
16
  $data['tracker_node']['table']['group'] = t('Tracker');
17
  $data['tracker_node']['table']['join'] = array(
18
    'node' => array(
19
      'type' => 'INNER',
20
      'left_field' => 'nid',
21
      'field' => 'nid',
22
    ),
23
  );
24
  $data['tracker_node']['nid'] = array(
25
    'title' => t('Nid'),
26
    'help' => t('The node ID of the node.'),
27
    'field' => array(
28
      'handler' => 'views_handler_field_node',
29
      'click sortable' => TRUE,
30
    ),
31
    'argument' => array(
32
      'handler' => 'views_handler_argument_node_nid',
33
      'name field' => 'title',
34
      'numeric' => TRUE,
35
      'validate type' => 'nid',
36
    ),
37
    'filter' => array(
38
      'handler' => 'views_handler_filter_numeric',
39
    ),
40
    'sort' => array(
41
      'handler' => 'views_handler_sort',
42
    ),
43
  );
44
  $data['tracker_node']['changed'] = array(
45
    'title' => t('Updated date'),
46
    'help' => t('The date the node was last updated.'),
47
    'field' => array(
48
      'handler' => 'views_handler_field_date',
49
      'click sortable' => TRUE,
50
    ),
51
    'sort' => array(
52
      'handler' => 'views_handler_sort_date',
53
    ),
54
    'filter' => array(
55
      'handler' => 'views_handler_filter_date',
56
    ),
57
  );
58
  $data['tracker_node']['published'] = array(
59
    'title' => t('Published'),
60
    'help' => t('Whether or not the node is published.'),
61
    'field' => array(
62
      'handler' => 'views_handler_field_boolean',
63
      'click sortable' => TRUE,
64
    ),
65
    'filter' => array(
66
      'handler' => 'views_handler_filter_tracker_boolean_operator',
67
      'label' => t('Published'),
68
      'type' => 'yes-no',
69
    ),
70
    'sort' => array(
71
      'handler' => 'views_handler_sort',
72
    ),
73
  );
74

    
75
  $data['tracker_user']['table']['group'] = t('Tracker - User');
76
  $data['tracker_user']['table']['join'] = array(
77
    'node' => array(
78
      'type' => 'INNER',
79
      'left_field' => 'nid',
80
      'field' => 'nid',
81
    ),
82
    'user' => array(
83
      'type' => 'INNER',
84
      'left_field' => 'uid',
85
      'field' => 'uid',
86
    ),
87
  );
88
  $data['tracker_user']['nid'] = array(
89
    'title' => t('Nid'),
90
    '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.'),
91
    'field' => array(
92
      'handler' => 'views_handler_field_node',
93
      'click sortable' => TRUE,
94
    ),
95
    'argument' => array(
96
      'handler' => 'views_handler_argument_node_nid',
97
      'name field' => 'title',
98
      'numeric' => TRUE,
99
      'validate type' => 'nid',
100
    ),
101
    'filter' => array(
102
      'handler' => 'views_handler_filter_numeric',
103
    ),
104
    'sort' => array(
105
      'handler' => 'views_handler_sort',
106
    ),
107
  );
108
  $data['tracker_user']['uid'] = array(
109
    'title' => t('Uid'),
110
    'help' => t('The user ID of a user who touched the node (either created or commented on it).'),
111
    'field' => array(
112
      'handler' => 'views_handler_field_user',
113
      'click sortable' => TRUE,
114
    ),
115
    'argument' => array(
116
      'handler' => 'views_handler_argument_user_uid',
117
      'name field' => 'name',
118
    ),
119
    'filter' => array(
120
      'title' => t('Name'),
121
      'handler' => 'views_handler_filter_user_name',
122
    ),
123
    'sort' => array(
124
      'handler' => 'views_handler_sort',
125
    ),
126
  );
127
  $data['tracker_user']['changed'] = array(
128
    'title' => t('Updated date'),
129
    '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.'),
130
    'field' => array(
131
      'handler' => 'views_handler_field_date',
132
      'click sortable' => TRUE,
133
    ),
134
    'sort' => array(
135
      'handler' => 'views_handler_sort_date',
136
    ),
137
    'filter' => array(
138
      'handler' => 'views_handler_filter_date',
139
    ),
140
  );
141
  $data['tracker_user']['published'] = array(
142
    'title' => t('Published'),
143
    '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.'),
144
    'field' => array(
145
      'handler' => 'views_handler_field_boolean',
146
      'click sortable' => TRUE,
147
    ),
148
    'filter' => array(
149
      'handler' => 'views_handler_filter_tracker_boolean_operator',
150
      'label' => t('Published'),
151
      'type' => 'yes-no',
152
    ),
153
    'sort' => array(
154
      'handler' => 'views_handler_sort',
155
    ),
156
  );
157

    
158
  return $data;
159
}
160

    
161
/**
162
 * Implements hook_views_data_alter().
163
 */
164
function tracker_views_data_alter(&$data) {
165
  // Provide additional uid_touch handlers which are handled by tracker.
166
  $data['node']['uid_touch_tracker'] = array(
167
    'group' => t('Tracker - User'),
168
    'title' => t('User posted or commented'),
169
    'help' => t('Display nodes only if a user posted the node or commented on the node.'),
170
    'argument' => array(
171
      'field' => 'uid',
172
      'name table' => 'users',
173
      'name field' => 'name',
174
      'handler' => 'views_handler_argument_tracker_comment_user_uid',
175
      'no group by' => TRUE,
176
    ),
177
    'filter' => array(
178
      'field' => 'uid',
179
      'name table' => 'users',
180
      'name field' => 'name',
181
      'handler' => 'views_handler_filter_tracker_comment_user_uid',
182
    ),
183
  );
184
}