• Main Page
  • Related Pages
  • Modules
  • Classes
  • Files
  • File List
  • File Members

modules/user.views.inc

Go to the documentation of this file.
00001 <?php
00016 function user_views_data() {
00017   // ----------------------------------------------------------------
00018   // users table
00019 
00020   // Define the base group of this table. Fields that don't
00021   // have a group defined will go into this field by default.
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   // uid
00049   $data['users']['uid'] = array(
00050     'title' => t('Uid'),
00051     'help' => t('The user ID'), // The help that appears on the UI,
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', // display this field in the summary
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   // uid
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   // uid
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   // name
00106   $data['users']['name'] = array(
00107     'title' => t('Name'), // The item it appears as on the UI,
00108     'help' => t('The user or author name.'), // The help that appears on the UI,
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   // mail
00127   // Note that this field implements field level access control.
00128   $data['users']['mail'] = array(
00129     'title' => t('E-mail'), // The item it appears as on the UI,
00130     'help' => t('Email address for a given user. This field is normally not shown to users, so be cautious when using it.'), // The help that appears on the UI,
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   // language
00147   $data['users']['language'] = array(
00148     'title' => t('Language'), // The item it appears as on the UI,
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   // picture
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."), // The help that appears on the UI,
00170     // Information for displaying the uid
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   // link
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   // created field
00195   $data['users']['created'] = array(
00196     'title' => t('Created date'), // The item it appears as on the UI,
00197     'help' => t('The date the user was created.'), // The help that appears on the UI,
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   // access field
00266   $data['users']['access'] = array(
00267     'title' => t('Last access'), // The item it appears as on the UI,
00268     'help' => t("The user's last access date."), // The help that appears on the UI,
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   // login field
00282   $data['users']['login'] = array(
00283     'title' => t('Last login'), // The item it appears as on the UI,
00284     'help' => t("The user's last login date."), // The help that appears on the UI,
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   // active status
00298   $data['users']['status'] = array(
00299     'title' => t('Active'), // The item it appears as on the UI,
00300     'help' => t('Whether a user is active or blocked.'), // The help that appears on the UI,
00301      // Information for displaying a title as a field
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   // log field
00320   $data['users']['signature'] = array(
00321     'title' => t('Signature'), // The item it appears as on the UI,
00322     'help' => t("The user's signature."), // The help that appears on the UI,
00323      // Information for displaying a title as a field
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   // users_roles table
00359 
00360   $data['users_roles']['table']['group']  = t('User');
00361 
00362   // Explain how this table joins to others.
00363   $data['users_roles']['table']['join'] = array(
00364      // Directly links to users table.
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   // role table
00406 
00407   $data['role']['table']['join'] = array(
00408      // Directly links to users table.
00409     'users' => array(
00410       'left_table' => 'users_roles',
00411       'left_field' => 'rid',
00412       'field' => 'rid',
00413     ),
00414     // needed for many to one helper sometimes
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   // permission table
00433   $data['role_permission']['table']['group']  = t('User');
00434   $data['role_permission']['table']['join'] = array(
00435      // Directly links to users table.
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   // authmap table
00457 
00458   $data['authmap']['table']['group']  = t('User');
00459   $data['authmap']['table']['join'] = array(
00460      // Directly links to users table.
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', // This just tells our themes are elsewhere.
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'), // only works with 'users' as base.
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', // not necessary for most modules
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', // not necessary for most modules
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', // not necessary for most modules
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 

Generated on Sun Feb 26 2012 12:52:51 for Views by  doxygen 1.7.1