Changeset 25472 for trunk/include


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())

File:
1 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');
Note: See TracChangeset for help on using the changeset viewer.