Projet

Général

Profil

Paste
Télécharger (8,83 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / webform / views / webform.views.inc @ 74f6bef0

1
<?php
2

    
3
/**
4
 * @file
5
 * Views hooks implemented for the Webform module.
6
 */
7

    
8
function webform_views_data() {
9

    
10
  /**
11
   * Webform table definitions.
12
   */
13
  $data['webform']['table']['group'] = t('Webform');
14
  $data['webform']['table']['join'] = array(
15
    'node' => array(
16
      'left_field' => 'nid',
17
      'field' => 'nid',
18
      'type' => 'INNER',
19
    ),
20
  );
21

    
22
  // status
23
  $data['webform']['status'] = array(
24
    'title' => t('Status'),
25
    'help' => t('The open or closed status of a webform.'),
26
    'field' => array(
27
      'handler' => 'webform_handler_field_webform_status',
28
      'click sortable' => TRUE,
29
    ),
30
    'filter' => array(
31
      'label' => t('Status'),
32
      'handler' => 'webform_handler_filter_webform_status',
33
      'type' => 'open-closed',
34
    ),
35
    'sort' => array(
36
      'handler' => 'views_handler_sort',
37
    ),
38
  );
39

    
40
  /**
41
   * Submissions table definitions.
42
   */
43
  $data['webform_submissions']['table']['group'] = t('Webform submissions');
44
  $data['webform_submissions']['table']['base'] = array(
45
    'field' => 'sid',
46
    'title' => t('Webform submissions'),
47
    'help' => t('Submissions generated from Webform forms.'),
48
  );
49

    
50
  // sid
51
  $data['webform_submissions']['sid'] = array(
52
    'title' => t('Sid'),
53
    'help' => t('The submission ID of the submission.'),
54
    'field' => array(
55
      'handler' => 'views_handler_field_numeric',
56
      'click sortable' => TRUE,
57
    ),
58
    'filter' => array(
59
      'title' => t('Sid'),
60
      'handler' => 'views_handler_filter_numeric',
61
    ),
62
    'sort' => array(
63
      'handler' => 'views_handler_sort',
64
    ),
65
    'argument' => array(
66
      'handler' => 'views_handler_argument_numeric',
67
    ),
68
  );
69

    
70
  // nid
71
  $data['webform_submissions']['nid'] = array(
72
    'title' => t('Node'),
73
    'help' => t('The webform node this submission was generated from.'),
74
    'relationship' => array(
75
      'base' => 'node',
76
      'field' => 'nid',
77
      'handler' => 'views_handler_relationship',
78
      'label' => t('Webform Node'),
79
    ),
80
  );
81

    
82
  // uid
83
  $data['webform_submissions']['uid'] = array(
84
    'title' => t('User'),
85
    'help' => t('The user who sent the webform submission.'),
86
    'relationship' => array(
87
      'base' => 'users',
88
      'field' => 'uid',
89
      'handler' => 'views_handler_relationship',
90
      'label' => t('Webform Submission User'),
91
    ),
92
  );
93

    
94
  // is_draft
95
  $data['webform_submissions']['is_draft'] = array(
96
    'title' => t('Draft'),
97
    'help' => t('Whether or not the submission is a draft.'),
98
    'field' => array(
99
      'handler' => 'webform_handler_field_is_draft',
100
      'click sortable' => TRUE,
101
    ),
102
    'filter' => array(
103
      'handler' => 'webform_handler_filter_is_draft',
104
    ),
105
    'sort' => array(
106
       'handler' => 'views_handler_sort',
107
    ),
108
  );
109

    
110
  // submitted
111
  $data['webform_submissions']['submitted'] = array(
112
    'title' => t('Submitted'),
113
    'help' => t('The date this submission was submitted.'),
114
    'field' => array(
115
      'handler' => 'views_handler_field_date',
116
      'click sortable' => TRUE,
117
    ),
118
    'filter' => array(
119
      'title' => t('Submitted'),
120
      'handler' => 'views_handler_filter_date',
121
    ),
122
    'sort' => array(
123
      'handler' => 'views_handler_sort_date',
124
    ),
125
  );
126

    
127
  // remote_addr
128
  $data['webform_submissions']['remote_addr'] = array(
129
    'title' => t('Remote address'),
130
    'help' => t('The remote IP address of the user that submitted this submission.'),
131
    'field' => array(
132
      'handler' => 'views_handler_field',
133
      'click sortable' => TRUE,
134
    ),
135
    'filter' => array(
136
      'title' => t('Remote address'),
137
      'handler' => 'views_handler_filter_string',
138
    ),
139
    'sort' => array(
140
      'handler' => 'views_handler_sort',
141
    ),
142
  );
143

    
144
  // view link
145
  $data['webform_submissions']['view_submission'] = array(
146
    'field' => array(
147
      'title' => t('View link'),
148
      'help' => t('Provide a simple link to view the submission.'),
149
      'handler' => 'webform_handler_field_submission_link',
150
      'link_type' => 'view',
151
    ),
152
  );
153

    
154
  // edit link
155
  $data['webform_submissions']['edit_submission'] = array(
156
    'field' => array(
157
      'title' => t('Edit link'),
158
      'help' => t('Provide a simple link to edit the submission.'),
159
      'handler' => 'webform_handler_field_submission_link',
160
      'link_type' => 'edit',
161
    ),
162
  );
163

    
164
  // delete link
165
  $data['webform_submissions']['delete_submission'] = array(
166
    'field' => array(
167
      'title' => t('Delete link'),
168
      'help' => t('Provide a simple link to delete the submission.'),
169
      'handler' => 'webform_handler_field_submission_link',
170
      'link_type' => 'delete',
171
    ),
172
  );
173

    
174
  return $data;
175
}
176

    
177
/**
178
 * Implements hook_views_data_alter().
179
 */
180
function webform_views_data_alter(&$data) {
181
  // Webform submission from node.
182
  $data['node']['webform_submission'] = array(
183
    'title' => t('Webform submission'),
184
    'help' => t('Webform submissions of the given Webform node.'),
185
    'real field' => 'nid',
186
    'relationship' => array(
187
      'base' => 'webform_submissions',
188
      'base field' => 'nid',
189
      'handler' => 'views_handler_relationship',
190
      'label' => t('Webform Submission'),
191
    ),
192
  );
193
  $data['node']['table']['join']['webform_submissions'] = array(
194
    'field' => 'nid',
195
    'left_field' => 'nid',
196
    'left_table' => 'webform_submissions',
197
  );
198
  // Submission count (node).
199
  $data['node']['webform_submission_count_node'] = array(
200
    'group' => t('Webform'),
201
    'field' => array(
202
      'title' => t('Webform submission count'),
203
      'help' => t('The number of webform submissions on this node.'),
204
      'handler' => 'webform_handler_field_submission_count',
205
      'count_type' => 'node',
206
    ),
207
  );
208

    
209

    
210
  // Webform submission of user.
211
  $data['users']['webform_submission'] = array(
212
    'title' => t('Webform submission'),
213
    'help' => t('Webform submissions of the given user.'),
214
    'real field' => 'uid',
215
    'relationship' => array(
216
      'base' => 'webform_submissions',
217
      'base field' => 'uid',
218
      'handler' => 'views_handler_relationship',
219
      'label' => t('Webform Submission'),
220
    ),
221
  );
222
  // Submission count (user).
223
  $data['users']['webform_submission_count_user'] = array(
224
    'field' => array(
225
      'title' => t('Webform submission count'),
226
      'help' => t('The number of webform submissions for this user.'),
227
      'handler' => 'webform_handler_field_submission_count',
228
      'count_type' => 'users',
229
    ),
230
  );
231

    
232
  // Link for editing the webform.
233
  $data['node']['webform_edit'] = array(
234
    'group' => t('Webform'),
235
    'field' => array(
236
      'title' => t('Webform edit link'),
237
      'help' => t('Provide a simple link to edit the webform components and configuration.'),
238
      'handler' => 'webform_handler_field_node_link_edit',
239
    ),
240
  );
241

    
242
  // Link for viewing webform results.
243
  $data['node']['webform_results'] = array(
244
    'group' => t('Webform'),
245
    'field' => array(
246
      'title' => t('Webform results link'),
247
      'help' => t('Provide a simple link to view the results of a webform.'),
248
      'handler' => 'webform_handler_field_node_link_results',
249
    ),
250
  );
251

    
252
  // Webform form content.
253
  $data['node']['webform_form_body'] = array(
254
    'group' => t('Webform'),
255
    'field' => array(
256
      'title' => t('Webform form body'),
257
      'help' => t('The Webform form body display for this node.'),
258
      'handler' => 'webform_handler_field_form_body',
259
    ),
260
  );
261
}
262

    
263
/**
264
 * Implements hook_views_handlers().
265
 */
266
function webform_views_handlers() {
267
  return array(
268
    'info' => array(
269
      'path' => drupal_get_path('module', 'webform') . '/views',
270
    ),
271
    'handlers' => array(
272
      'webform_handler_field_submission_link' => array(
273
        'parent' => 'views_handler_field',
274
        'file' => 'webform_handler_field_submission_link.inc',
275
      ),
276
      'webform_handler_field_submission_count' => array(
277
        'parent' => 'views_handler_field',
278
        'file' => 'webform_handler_field_submission_count.inc',
279
      ),
280
      'webform_handler_field_node_link_edit' => array(
281
        'parent' => 'views_handler_field_node_link',
282
      ),
283
      'webform_handler_field_node_link_results' => array(
284
        'parent' => 'views_handler_field_node_link',
285
      ),
286
      'webform_handler_field_form_body' => array(
287
        'parent' => 'views_handler_field',
288
        'file' => 'webform_handler_field_form_body.inc',
289
      ),
290
      'webform_handler_field_is_draft' => array(
291
        'parent' => 'views_handler_field',
292
        'file' => 'webform_handler_field_is_draft.inc',
293
      ),
294
      'webform_handler_filter_is_draft' => array(
295
        'parent' => 'views_handler_filter_in_operator',
296
        'file' => 'webform_handler_filter_is_draft.inc',
297
      ),
298
      'webform_handler_field_webform_status' => array(
299
        'parent' => 'views_handler_field_boolean',
300
        'file' => 'webform_handler_field_webform_status.inc',
301
      ),
302
      'webform_handler_filter_webform_status' => array(
303
        'parent' => 'views_handler_filter_boolean_operator',
304
        'file' => 'webform_handler_filter_webform_status.inc',
305
      ),
306
    ),
307
  );
308
}