Changeset 25461


Ignore:
Timestamp:
Nov 11, 2013, 11:11:11 PM (10 years ago)
Author:
plg
Message:

feature 2976: makes sure we output registration_date if registration_date_* is requested (same for last_visit_*)

File:
1 edited

Legend:

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

    r25459 r25461  
    9797    }
    9898
     99    // if registration_date_string or registration_date_since is requested,
     100    // 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';
     109    }
     110
     111    // if last_visit_string or last_visit_since is requested, then
     112    // 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
    99123    if (in_array('username', $params['display']))
    100124    {
     
    154178  $users = hash_from_query($query, 'id');
    155179
    156   if (count($users) > 0 and in_array('groups', $params['display']))
    157   {
    158     $query = '
     180  if (count($users) > 0)
     181  {
     182    if (in_array('groups', $params['display']))
     183    {
     184      $query = '
    159185SELECT user_id, group_id
    160186  FROM '. USER_GROUP_TABLE .'
    161187  WHERE user_id IN ('. implode(',', array_keys($users)) .')
    162188;';
    163     $result = pwg_query($query);
    164 
    165     while ($row = pwg_db_fetch_assoc($result))
    166     {
    167       $users[ $row['user_id'] ]['groups'][] = $row['group_id'];
    168     }
    169   }
    170 
    171   if (count($users) > 0 and in_array('registration_date_string', $params['display']))
    172   {
    173     foreach ($users as $cur_user)
    174     {
    175       $users[ $cur_user['id'] ]['registration_date_string'] = format_date($cur_user['registration_date'], false, false);
    176     }
    177   }
    178 
    179   if (count($users) > 0 and in_array('registration_date_since', $params['display']))
    180   {
    181     foreach ($users as $cur_user)
    182     {
    183       $users[ $cur_user['id'] ]['registration_date_since'] = time_since($cur_user['registration_date'], 'month');
    184     }
    185   }
    186 
    187   if (count($users) > 0 and in_array('last_visit', $params['display']))
    188   {
    189     $query = '
     189      $result = pwg_query($query);
     190     
     191      while ($row = pwg_db_fetch_assoc($result))
     192      {
     193        $users[ $row['user_id'] ]['groups'][] = $row['group_id'];
     194      }
     195    }
     196   
     197    if (in_array('registration_date_string', $params['display']))
     198    {
     199      foreach ($users as $cur_user)
     200      {
     201        $users[$cur_user['id']]['registration_date_string'] = format_date($cur_user['registration_date'], false, false);
     202      }
     203    }
     204
     205    if (in_array('registration_date_since', $params['display']))
     206    {
     207      foreach ($users as $cur_user)
     208      {
     209        $users[ $cur_user['id'] ]['registration_date_since'] = time_since($cur_user['registration_date'], 'month');
     210      }
     211    }
     212
     213    if (in_array('last_visit', $params['display']))
     214    {
     215      $query = '
    190216SELECT
    191217    MAX(id) as history_id
     
    194220  GROUP BY user_id
    195221;';
    196     $history_ids = array_from_query($query, 'history_id');
    197 
    198     if (count($history_ids) == 0)
    199     {
    200       $history_ids[] = -1;
    201     }
    202    
    203     $query = '
     222      $history_ids = array_from_query($query, 'history_id');
     223     
     224      if (count($history_ids) == 0)
     225      {
     226        $history_ids[] = -1;
     227      }
     228     
     229      $query = '
    204230SELECT
    205231    user_id,
     
    209235  WHERE id IN ('.implode(',', $history_ids).')
    210236;';
    211     $result = pwg_query($query);
    212     while ($row = pwg_db_fetch_assoc($result))
    213     {
    214       $last_visit = $row['date'].' '.$row['time'];
    215       $users[ $row['user_id'] ]['last_visit'] = $last_visit;
    216 
    217       if (in_array('last_visit_string', $params['display']))
    218       {
    219         $users[ $row['user_id'] ]['last_visit_string'] = format_date($last_visit, false, false);
    220       }
    221      
    222       if (in_array('last_visit_since', $params['display']))
    223       {
    224         $users[ $row['user_id'] ]['last_visit_since'] = time_since($last_visit, 'day');
     237      $result = pwg_query($query);
     238      while ($row = pwg_db_fetch_assoc($result))
     239      {
     240        $last_visit = $row['date'].' '.$row['time'];
     241        $users[ $row['user_id'] ]['last_visit'] = $last_visit;
     242       
     243        if (in_array('last_visit_string', $params['display']))
     244        {
     245          $users[ $row['user_id'] ]['last_visit_string'] = format_date($last_visit, false, false);
     246        }
     247       
     248        if (in_array('last_visit_since', $params['display']))
     249        {
     250          $users[ $row['user_id'] ]['last_visit_since'] = time_since($last_visit, 'day');
     251        }
    225252      }
    226253    }
Note: See TracChangeset for help on using the changeset viewer.