00001 <?php
00016 function user_views_data() {
00017
00018
00019
00020
00021
00022 $data['users']['table']['group'] = t('User');
00023
00024 $data['users']['table']['base'] = array(
00025 'field' => 'uid',
00026 'title' => t('User'),
00027 'help' => t('Users who have created accounts on your site.'),
00028 'access query tag' => 'user_access',
00029 );
00030 $data['users']['table']['entity type'] = 'user';
00031
00032
00033 $data['users']['table']['default_relationship'] = array(
00034 'node' => array(
00035 'table' => 'node',
00036 'field' => 'uid',
00037 ),
00038 'node_revision' => array(
00039 'table' => 'node_revision',
00040 'field' => 'uid',
00041 ),
00042 'file' => array(
00043 'table' => 'file',
00044 'field' => 'uid',
00045 ),
00046 );
00047
00048
00049 $data['users']['uid'] = array(
00050 'title' => t('Uid'),
00051 'help' => t('The user ID'),
00052 'field' => array(
00053 'handler' => 'views_handler_field_user',
00054 'click sortable' => TRUE,
00055 ),
00056 'argument' => array(
00057 'handler' => 'views_handler_argument_user_uid',
00058 'name field' => 'name',
00059 ),
00060 'filter' => array(
00061 'title' => t('Name'),
00062 'handler' => 'views_handler_filter_user_name',
00063 ),
00064 'sort' => array(
00065 'handler' => 'views_handler_sort',
00066 ),
00067 'relationship' => array(
00068 'title' => t('Content authored'),
00069 'help' => t('Relate content to the user who created it. This relationship will create one record for each content item created by the user.'),
00070 'handler' => 'views_handler_relationship',
00071 'base' => 'node',
00072 'base field' => 'uid',
00073 'field' => 'uid',
00074 'label' => t('nodes'),
00075 ),
00076 );
00077
00078
00079 $data['users']['uid_representative'] = array(
00080 'relationship' => array(
00081 'title' => t('Representative node'),
00082 'label' => t('Representative node'),
00083 'help' => t('Obtains a single representative node for each user, according to a chosen sort criterion.'),
00084 'handler' => 'views_handler_relationship_groupwise_max',
00085 'relationship field' => 'uid',
00086 'outer field' => 'users.uid',
00087 'argument table' => 'users',
00088 'argument field' => 'uid',
00089 'base' => 'node',
00090 'field' => 'nid',
00091 ),
00092 );
00093
00094
00095 $data['users']['uid_current'] = array(
00096 'real field' => 'uid',
00097 'title' => t('Current'),
00098 'help' => t('Filter the view to the currently logged in user.'),
00099 'filter' => array(
00100 'handler' => 'views_handler_filter_user_current',
00101 'type' => 'yes-no',
00102 ),
00103 );
00104
00105
00106 $data['users']['name'] = array(
00107 'title' => t('Name'),
00108 'help' => t('The user or author name.'),
00109 'field' => array(
00110 'handler' => 'views_handler_field_user_name',
00111 'click sortable' => TRUE,
00112 ),
00113 'sort' => array(
00114 'handler' => 'views_handler_sort',
00115 ),
00116 'argument' => array(
00117 'handler' => 'views_handler_argument_string',
00118 ),
00119 'filter' => array(
00120 'handler' => 'views_handler_filter_string',
00121 'title' => t('Name (raw)'),
00122 'help' => t('The user or author name. This filter does not check if the user exists and allows partial matching. Does not utilize autocomplete.')
00123 ),
00124 );
00125
00126
00127
00128 $data['users']['mail'] = array(
00129 'title' => t('E-mail'),
00130 'help' => t('Email address for a given user. This field is normally not shown to users, so be cautious when using it.'),
00131 'field' => array(
00132 'handler' => 'views_handler_field_user_mail',
00133 'click sortable' => TRUE,
00134 ),
00135 'sort' => array(
00136 'handler' => 'views_handler_sort',
00137 ),
00138 'filter' => array(
00139 'handler' => 'views_handler_filter_string',
00140 ),
00141 'argument' => array(
00142 'handler' => 'views_handler_argument_string',
00143 ),
00144 );
00145
00146
00147 $data['users']['language'] = array(
00148 'title' => t('Language'),
00149 'help' => t('Language of the user'),
00150 'field' => array(
00151 'handler' => 'views_handler_field_user_language',
00152 'click sortable' => TRUE,
00153 ),
00154 'sort' => array(
00155 'handler' => 'views_handler_sort',
00156 ),
00157 'filter' => array(
00158 'handler' => 'views_handler_filter_node_language',
00159 ),
00160 'argument' => array(
00161 'handler' => 'views_handler_argument_node_language',
00162 ),
00163 );
00164
00165
00166 $data['users']['picture_fid']['moved to'] = array('users', 'picture');
00167 $data['users']['picture'] = array(
00168 'title' => t('Picture'),
00169 'help' => t("The user's picture, if allowed."),
00170
00171 'field' => array(
00172 'handler' => 'views_handler_field_user_picture',
00173 'click sortable' => TRUE,
00174 ),
00175 'sort' => array(
00176 'handler' => 'views_handler_sort',
00177 ),
00178 'filter' => array(
00179 'handler' => 'views_handler_filter_boolean_operator',
00180 'label' => t('Has Avatar'),
00181 'type' => 'yes-no',
00182 ),
00183 );
00184
00185
00186 $data['users']['view_user'] = array(
00187 'field' => array(
00188 'title' => t('Link'),
00189 'help' => t('Provide a simple link to the user.'),
00190 'handler' => 'views_handler_field_user_link',
00191 ),
00192 );
00193
00194
00195 $data['users']['created'] = array(
00196 'title' => t('Created date'),
00197 'help' => t('The date the user was created.'),
00198 'field' => array(
00199 'handler' => 'views_handler_field_date',
00200 'click sortable' => TRUE,
00201 ),
00202 'sort' => array(
00203 'handler' => 'views_handler_sort_date',
00204 ),
00205 'filter' => array(
00206 'handler' => 'views_handler_filter_date',
00207 ),
00208 );
00209
00210 $data['users']['created_fulldate'] = array(
00211 'title' => t('Created date'),
00212 'help' => t('Date in the form of CCYYMMDD.'),
00213 'argument' => array(
00214 'field' => 'created',
00215 'handler' => 'views_handler_argument_node_created_fulldate',
00216 ),
00217 );
00218
00219 $data['users']['created_year_month'] = array(
00220 'title' => t('Created year + month'),
00221 'help' => t('Date in the form of YYYYMM.'),
00222 'argument' => array(
00223 'field' => 'created',
00224 'handler' => 'views_handler_argument_node_created_year_month',
00225 ),
00226 );
00227
00228 $data['users']['timestamp_year']['moved to'] = array('users', 'created_year');
00229 $data['users']['created_year'] = array(
00230 'title' => t('Created year'),
00231 'help' => t('Date in the form of YYYY.'),
00232 'argument' => array(
00233 'field' => 'created',
00234 'handler' => 'views_handler_argument_node_created_year',
00235 ),
00236 );
00237
00238 $data['users']['created_month'] = array(
00239 'title' => t('Created month'),
00240 'help' => t('Date in the form of MM (01 - 12).'),
00241 'argument' => array(
00242 'field' => 'created',
00243 'handler' => 'views_handler_argument_node_created_month',
00244 ),
00245 );
00246
00247 $data['users']['created_day'] = array(
00248 'title' => t('Created day'),
00249 'help' => t('Date in the form of DD (01 - 31).'),
00250 'argument' => array(
00251 'field' => 'created',
00252 'handler' => 'views_handler_argument_node_created_day',
00253 ),
00254 );
00255
00256 $data['users']['created_week'] = array(
00257 'title' => t('Created week'),
00258 'help' => t('Date in the form of WW (01 - 53).'),
00259 'argument' => array(
00260 'field' => 'created',
00261 'handler' => 'views_handler_argument_node_created_week',
00262 ),
00263 );
00264
00265
00266 $data['users']['access'] = array(
00267 'title' => t('Last access'),
00268 'help' => t("The user's last access date."),
00269 'field' => array(
00270 'handler' => 'views_handler_field_date',
00271 'click sortable' => TRUE,
00272 ),
00273 'sort' => array(
00274 'handler' => 'views_handler_sort_date',
00275 ),
00276 'filter' => array(
00277 'handler' => 'views_handler_filter_date',
00278 ),
00279 );
00280
00281
00282 $data['users']['login'] = array(
00283 'title' => t('Last login'),
00284 'help' => t("The user's last login date."),
00285 'field' => array(
00286 'handler' => 'views_handler_field_date',
00287 'click sortable' => TRUE,
00288 ),
00289 'sort' => array(
00290 'handler' => 'views_handler_sort_date',
00291 ),
00292 'filter' => array(
00293 'handler' => 'views_handler_filter_date',
00294 ),
00295 );
00296
00297
00298 $data['users']['status'] = array(
00299 'title' => t('Active'),
00300 'help' => t('Whether a user is active or blocked.'),
00301
00302 'field' => array(
00303 'handler' => 'views_handler_field_boolean',
00304 'click sortable' => TRUE,
00305 'output formats' => array(
00306 'active-blocked' => array(t('Active'), t('Blocked')),
00307 ),
00308 ),
00309 'filter' => array(
00310 'handler' => 'views_handler_filter_boolean_operator',
00311 'label' => t('Active'),
00312 'type' => 'yes-no',
00313 ),
00314 'sort' => array(
00315 'handler' => 'views_handler_sort',
00316 ),
00317 );
00318
00319
00320 $data['users']['signature'] = array(
00321 'title' => t('Signature'),
00322 'help' => t("The user's signature."),
00323
00324 'field' => array(
00325 'handler' => 'views_handler_field_markup',
00326 'format' => filter_fallback_format(),
00327 ),
00328 'filter' => array(
00329 'handler' => 'views_handler_filter_string',
00330 ),
00331 );
00332
00333 $data['users']['edit_node'] = array(
00334 'field' => array(
00335 'title' => t('Edit link'),
00336 'help' => t('Provide a simple link to edit the user.'),
00337 'handler' => 'views_handler_field_user_link_edit',
00338 ),
00339 );
00340
00341 $data['users']['cancel_node'] = array(
00342 'field' => array(
00343 'title' => t('Cancel link'),
00344 'help' => t('Provide a simple link to cancel the user.'),
00345 'handler' => 'views_handler_field_user_link_cancel',
00346 ),
00347 );
00348
00349 $data['users']['data'] = array(
00350 'title' => t('Data'),
00351 'help' => t('Provide serialized data of the user'),
00352 'field' => array(
00353 'handler' => 'views_handler_field_serialized',
00354 ),
00355 );
00356
00357
00358
00359
00360 $data['users_roles']['table']['group'] = t('User');
00361
00362
00363 $data['users_roles']['table']['join'] = array(
00364
00365 'users' => array(
00366 'left_field' => 'uid',
00367 'field' => 'uid',
00368 ),
00369 );
00370
00371 $data['users_roles']['table']['default_relationship'] = array(
00372 'node' => array(
00373 'table' => 'node',
00374 'field' => 'uid',
00375 ),
00376 'node_revision' => array(
00377 'table' => 'node_revision',
00378 'field' => 'uid',
00379 ),
00380 );
00381
00382 $data['users_roles']['rid'] = array(
00383 'title' => t('Roles'),
00384 'help' => t('Roles that a user belongs to.'),
00385 'field' => array(
00386 'handler' => 'views_handler_field_user_roles',
00387 'no group by' => TRUE,
00388 ),
00389 'filter' => array(
00390 'handler' => 'views_handler_filter_user_roles',
00391 'numeric' => TRUE,
00392 'allow empty' => TRUE,
00393 ),
00394 'argument' => array(
00395 'handler' => 'views_handler_argument_users_roles_rid',
00396 'name table' => 'role',
00397 'name field' => 'name',
00398 'empty field name' => t('No role'),
00399 'zero is null' => TRUE,
00400 'numeric' => TRUE,
00401 ),
00402 );
00403
00404
00405
00406
00407 $data['role']['table']['join'] = array(
00408
00409 'users' => array(
00410 'left_table' => 'users_roles',
00411 'left_field' => 'rid',
00412 'field' => 'rid',
00413 ),
00414
00415 'users_roles' => array(
00416 'left_field' => 'rid',
00417 'field' => 'rid',
00418 ),
00419 );
00420
00421 $data['role']['table']['default_relationship'] = array(
00422 'node' => array(
00423 'table' => 'node',
00424 'field' => 'uid',
00425 ),
00426 'node_revision' => array(
00427 'table' => 'node_revision',
00428 'field' => 'uid',
00429 ),
00430 );
00431
00432
00433 $data['role_permission']['table']['group'] = t('User');
00434 $data['role_permission']['table']['join'] = array(
00435
00436 'users' => array(
00437 'left_table' => 'users_roles',
00438 'left_field' => 'rid',
00439 'field' => 'rid',
00440 ),
00441 );
00442
00443 $data['role_permission']['permission'] = array(
00444 'title' => t('Permission'),
00445 'help' => t('The user permissions.'),
00446 'field' => array(
00447 'handler' => 'views_handler_field_user_permissions',
00448 'no group by' => TRUE,
00449 ),
00450 'filter' => array(
00451 'handler' => 'views_handler_filter_user_permissions',
00452 ),
00453 );
00454
00455
00456
00457
00458 $data['authmap']['table']['group'] = t('User');
00459 $data['authmap']['table']['join'] = array(
00460
00461 'users' => array(
00462 'left_field' => 'uid',
00463 'field' => 'uid',
00464 ),
00465 );
00466
00467 $data['authmap']['table']['default_relationship'] = array(
00468 'node' => array(
00469 'table' => 'node',
00470 'field' => 'uid',
00471 ),
00472 'node_revision' => array(
00473 'table' => 'node_revision',
00474 'field' => 'uid',
00475 ),
00476 );
00477
00478 $data['authmap']['aid'] = array(
00479 'title' => t('Authmap ID'),
00480 'help' => t('The Authmap ID.'),
00481 'field' => array(
00482 'handler' => 'views_handler_field_numeric',
00483 ),
00484 'filter' => array(
00485 'handler' => 'views_handler_filter_numeric',
00486 'numeric' => TRUE,
00487 ),
00488 'argument' => array(
00489 'handler' => 'views_handler_argument_numeric',
00490 'numeric' => TRUE,
00491 ),
00492 );
00493 $data['authmap']['authname'] = array(
00494 'title' => t('Authentication name'),
00495 'help' => t('The unique authentication name.'),
00496 'field' => array(
00497 'handler' => 'views_handler_field',
00498 ),
00499 'filter' => array(
00500 'handler' => 'views_handler_filter_string',
00501 ),
00502 'argument' => array(
00503 'handler' => 'views_handler_argument_string',
00504 ),
00505 );
00506 $data['authmap']['module'] = array(
00507 'title' => t('Authentication module'),
00508 'help' => t('The name of the module managing the authentication entry.'),
00509 'field' => array(
00510 'handler' => 'views_handler_field',
00511 ),
00512 'filter' => array(
00513 'handler' => 'views_handler_filter_string',
00514 ),
00515 'argument' => array(
00516 'handler' => 'views_handler_argument_string',
00517 ),
00518 );
00519
00520 return $data;
00521 }
00522
00526 function user_views_plugins() {
00527 return array(
00528 'module' => 'views',
00529 'row' => array(
00530 'user' => array(
00531 'title' => t('User'),
00532 'help' => t('Display the user with standard user view.'),
00533 'handler' => 'views_plugin_row_user_view',
00534 'base' => array('users'),
00535 'uses options' => TRUE,
00536 'type' => 'normal',
00537 'help topic' => 'style-users',
00538 ),
00539 ),
00540 'argument default' => array(
00541 'user' => array(
00542 'title' => t('User ID from URL'),
00543 'handler' => 'views_plugin_argument_default_user',
00544 'path' => drupal_get_path('module', 'views') . '/modules/user',
00545 ),
00546 'current_user' => array(
00547 'title' => t('User ID from logged in user'),
00548 'handler' => 'views_plugin_argument_default_current_user',
00549 'path' => drupal_get_path('module', 'views') . '/modules/user',
00550 ),
00551 ),
00552 'argument validator' => array(
00553 'user' => array(
00554 'title' => t('User'),
00555 'handler' => 'views_plugin_argument_validate_user',
00556 'path' => drupal_get_path('module', 'views') . '/modules/user',
00557 ),
00558 ),
00559 );
00560 }
00561
00565 function user_views_query_substitutions($view) {
00566 global $user;
00567 return array('***CURRENT_USER***' => intval($user->uid));
00568 }
00569