Changeset 25472 for trunk


Ignore:
Timestamp:
Nov 13, 2013, 12:08:22 PM (10 years ago)
Author:
mistic100
Message:

feature 2976: improve lisiblity of pwg.users.getList options on APi explore + optimizations (remove in_array())

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/ws_functions/pwg.users.php

    r25461 r25472  
    3434 *    @option int page
    3535 *    @option string order
     36 *    @option string display
    3637 */
    3738function ws_users_getList($params, &$service)
     
    7879  if ($params['display'] != 'none')
    7980  {
    80     $params['display'] = explode(',', $params['display']);
     81    $params['display'] = array_map('trim', explode(',', $params['display']));
    8182
    8283    if (in_array('all', $params['display']))
    8384    {
    84       $params['display'] = array_merge($params['display'], array(
     85      $params['display'] = array(
    8586        'username','email','status','level','groups','language','theme',
    8687        'nb_image_page','recent_period','expand','show_nb_comments','show_nb_hits',
     
    8889        'registration_date_since', 'last_visit', 'last_visit_string',
    8990        'last_visit_since'
    90         ));
     91        );
    9192    }
    9293    else if (in_array('basics', $params['display']))
     
    9697        ));
    9798    }
     99    $params['display'] = array_flip($params['display']);
    98100
    99101    // if registration_date_string or registration_date_since is requested,
    100102    // then registration_date is automatically added
    101     if (in_array('registration_date_string', $params['display']) and !in_array('registration_date', $params['display']))
    102     {
    103       $params['display'][] = 'registration_date';
    104     }
    105 
    106     if (in_array('registration_date_since', $params['display']) and !in_array('registration_date', $params['display']))
    107     {
    108       $params['display'][] = 'registration_date';
     103    if (isset($params['display']['registration_date_string']) or isset($params['display']['registration_date_since']))
     104    {
     105      $params['display']['registration_date'] = true;
    109106    }
    110107
    111108    // if last_visit_string or last_visit_since is requested, then
    112109    // last_visit is automatically added
    113     if (in_array('last_visit_string', $params['display']) and !in_array('last_visit', $params['display']))
    114     {
    115       $params['display'][] = 'last_visit';
    116     }
    117 
    118     if (in_array('last_visit_since', $params['display']) and !in_array('last_visit', $params['display']))
    119     {
    120       $params['display'][] = 'last_visit';
    121     }
    122 
    123     if (in_array('username', $params['display']))
     110    if (isset($params['display']['last_visit_string']) or isset($params['display']['last_visit_since']))
     111    {
     112      $params['display']['last_visit'] = true;
     113    }
     114
     115    if (isset($params['display']['username']))
    124116    {
    125117      $display['u.'.$conf['user_fields']['username']] = 'username';
    126118    }
    127     if (in_array('email', $params['display']))
     119    if (isset($params['display']['email']))
    128120    {
    129121      $display['u.'.$conf['user_fields']['email']] = 'email';
     
    136128    foreach ($ui_fields as $field)
    137129    {
    138       if (in_array($field, $params['display']))
     130      if (isset($params['display'][$field]))
    139131      {
    140132        $display['ui.'.$field] = $field;
     
    157149    $query.= $field .' AS '. $name;
    158150  }
    159   if (in_array('groups', $params['display']))
     151  if (isset($params['display']['groups']))
    160152  {
    161153    if (!$first) $query.= ', ';
     
    180172  if (count($users) > 0)
    181173  {
    182     if (in_array('groups', $params['display']))
     174    if (isset($params['display']['groups']))
    183175    {
    184176      $query = '
     
    195187    }
    196188   
    197     if (in_array('registration_date_string', $params['display']))
     189    if (isset($params['display']['registration_date_string']))
    198190    {
    199191      foreach ($users as $cur_user)
     
    203195    }
    204196
    205     if (in_array('registration_date_since', $params['display']))
     197    if (isset($params['display']['registration_date_since']))
    206198    {
    207199      foreach ($users as $cur_user)
     
    211203    }
    212204
    213     if (in_array('last_visit', $params['display']))
     205    if (isset($params['display']['last_visit']))
    214206    {
    215207      $query = '
     
    241233        $users[ $row['user_id'] ]['last_visit'] = $last_visit;
    242234       
    243         if (in_array('last_visit_string', $params['display']))
     235        if (isset($params['display']['last_visit_string']))
    244236        {
    245237          $users[ $row['user_id'] ]['last_visit_string'] = format_date($last_visit, false, false);
    246238        }
    247239       
    248         if (in_array('last_visit_since', $params['display']))
     240        if (isset($params['display']['last_visit_since']))
    249241        {
    250242          $users[ $row['user_id'] ]['last_visit_since'] = time_since($last_visit, 'day');
  • trunk/ws.php

    r25394 r25472  
    827827                              'info'=>'id, username, level, email'),
    828828        'display' =>    array('default'=>'basics',
    829                               'info'=>'all,basics,none,username,email,status,level,groups,language,theme,nb_image_page,recent_period,expand,show_nb_comments,show_nb_hits,enabled_high'),
    830         ),
    831       'Retrieves a list of all the users.
    832 <br>"display" controls which data are returned, "basics" stands for "username,email,status,level,groups"',
     829                              'info'=>'Comma saparated list (see method description)'),
     830        ),
     831      'Retrieves a list of all the users.<br>
     832<br>
     833<b>display</b> controls which data are returned, possible values are:<br>
     834all, basics, none,<br>
     835username, email, status, level, groups,<br>
     836language, theme, nb_image_page, recent_period, expand, show_nb_comments, show_nb_hits,<br>
     837enabled_high, registration_date, registration_date_string, registration_date_since, last_visit, last_visit_string, last_visit_since<br>
     838<b>basics</b> stands for "username,email,status,level,groups"',
    833839      $ws_functions_root . 'pwg.users.php',
    834840      array('admin_only'=>true)
Note: See TracChangeset for help on using the changeset viewer.