Projet

Général

Profil

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

root / drupal7 / sites / all / modules / views / modules / tracker.views.inc @ 7547bb19

1
<?php
2

    
3
/**
4
 * @file
5
 * Provide views data and handlers for tracker.module.
6
 *
7
 * @ingroup views_module_handlers
8
 */
9
/**
10
 * Implementation of hook_views_data().
11
 */
12
function tracker_views_data() {
13
  $data = array();
14

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

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

    
157
  return $data;
158
}
159

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