aboutsummaryrefslogtreecommitdiffstats
path: root/include/ws_functions
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2016-06-23 17:57:54 +0200
committerplegall <plg@piwigo.org>2016-06-23 17:57:54 +0200
commitba2b2ab574698eb70de3700953cfac6b1dfbe790 (patch)
tree040a358c01f75b7432897a57747a52a1fcd4996e /include/ws_functions
parent1c7b673e4c5083561ad2fc7fd7decef1dd1dee9e (diff)
parent3f1dbf19c5ef84ae048501f6270e74d7d9638a71 (diff)
Merge branch 'feature/478-last-visit'
Diffstat (limited to '')
-rw-r--r--include/ws_functions/pwg.users.php52
1 files changed, 21 insertions, 31 deletions
diff --git a/include/ws_functions/pwg.users.php b/include/ws_functions/pwg.users.php
index eaa96c9c1..1a55fcf90 100644
--- a/include/ws_functions/pwg.users.php
+++ b/include/ws_functions/pwg.users.php
@@ -123,7 +123,8 @@ function ws_users_getList($params, &$service)
$ui_fields = array(
'status','level','language','theme','nb_image_page','recent_period','expand',
- 'show_nb_comments','show_nb_hits','enabled_high','registration_date'
+ 'show_nb_comments','show_nb_hits','enabled_high','registration_date',
+ 'last_visit'
);
foreach ($ui_fields as $field)
{
@@ -154,6 +155,12 @@ SELECT DISTINCT ';
$query.= '"" AS groups';
}
+ if (isset($display['ui.last_visit']))
+ {
+ if (!$first) $query.= ', ';
+ $query.= 'ui.last_visit_from_history AS last_visit_from_history';
+ }
+
$query.= '
FROM '. USERS_TABLE .' AS u
INNER JOIN '. USER_INFOS_TABLE .' AS ui
@@ -210,42 +217,25 @@ SELECT user_id, group_id
if (isset($params['display']['last_visit']))
{
- $query = '
-SELECT
- MAX(id) as history_id
- FROM '.HISTORY_TABLE.'
- WHERE user_id IN ('.implode(',', array_keys($users)).')
- GROUP BY user_id
-;';
- $history_ids = array_from_query($query, 'history_id');
-
- if (count($history_ids) == 0)
- {
- $history_ids[] = -1;
- }
-
- $query = '
-SELECT
- user_id,
- date,
- time
- FROM '.HISTORY_TABLE.'
- WHERE id IN ('.implode(',', $history_ids).')
-;';
- $result = pwg_query($query);
- while ($row = pwg_db_fetch_assoc($result))
+ foreach ($users as $cur_user)
{
- $last_visit = $row['date'].' '.$row['time'];
- $users[ $row['user_id'] ]['last_visit'] = $last_visit;
-
+ $last_visit = $cur_user['last_visit'];
+ $users[ $cur_user['id'] ]['last_visit'] = $last_visit;
+
+ if (!get_boolean($cur_user['last_visit_from_history']) and empty($last_visit))
+ {
+ $last_visit = get_user_last_visit_from_history($cur_user['id'], true);
+ $users[ $cur_user['id'] ]['last_visit'] = $last_visit;
+ }
+
if (isset($params['display']['last_visit_string']))
{
- $users[ $row['user_id'] ]['last_visit_string'] = format_date($last_visit, array('day', 'month', 'year'));
+ $users[ $cur_user['id'] ]['last_visit_string'] = format_date($last_visit, array('day', 'month', 'year'));
}
if (isset($params['display']['last_visit_since']))
{
- $users[ $row['user_id'] ]['last_visit_since'] = time_since($last_visit, 'day');
+ $users[ $cur_user['id'] ]['last_visit_since'] = time_since($last_visit, 'day');
}
}
}
@@ -632,4 +622,4 @@ SELECT
));
}
-?> \ No newline at end of file
+?>