aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/config_default.inc.php10
-rw-r--r--include/constants.php2
-rw-r--r--include/functions.inc.php18
-rw-r--r--include/functions_user.inc.php42
-rw-r--r--include/ws_functions/pwg.users.php52
5 files changed, 87 insertions, 37 deletions
diff --git a/include/config_default.inc.php b/include/config_default.inc.php
index 87baa29ab..f66dab486 100644
--- a/include/config_default.inc.php
+++ b/include/config_default.inc.php
@@ -121,7 +121,7 @@ $conf['paginate_pages_around'] = 2;
// show_version : shall the version of Piwigo be displayed at the
// bottom of each page ?
-$conf['show_version'] = false;
+$conf['show_version'] = true;
// meta_ref to reference multiple sets of incorporated pages or elements
// Set it false to avoid referencing in google, and other search engines.
@@ -238,7 +238,7 @@ $conf['available_permission_levels'] = array(0,1,2,4,8);
//
// This configuration parameter is set to true in BSF branch and to false
// elsewhere.
-$conf['check_upgrade_feed'] = false;
+$conf['check_upgrade_feed'] = true;
// rate_items: available rates for a picture
$conf['rate_items'] = array(0,1,2,3,4,5);
@@ -430,7 +430,7 @@ $conf['session_use_ip_address'] = true;
$conf['show_queries'] = false;
// show_gt : display generation time at the bottom of each page
-$conf['show_gt'] = false;
+$conf['show_gt'] = true;
// debug_l10n : display a warning message each time an unset language key is
// accessed
@@ -443,7 +443,7 @@ $conf['debug_template'] = false;
$conf['debug_mail'] = false;
// die_on_sql_error: if an SQL query fails, should everything stop?
-$conf['die_on_sql_error'] = false;
+$conf['die_on_sql_error'] = true;
// if true, some language strings are replaced during template compilation
// (instead of template output). this results in better performance. however
@@ -828,7 +828,7 @@ $conf['log_dir'] = '/logs';
// Log level (OFF, CRITICAL, ERROR, WARNING, NOTICE, INFO, DEBUG)
// development = DEBUG, production = ERROR
-$conf['log_level'] = 'ERROR';
+$conf['log_level'] = 'DEBUG';
// Keep logs file during X days
$conf['log_archive_days'] = 30;
diff --git a/include/constants.php b/include/constants.php
index 22bb96787..64b783da6 100644
--- a/include/constants.php
+++ b/include/constants.php
@@ -22,7 +22,7 @@
// +-----------------------------------------------------------------------+
// Default settings
-define('PHPWG_VERSION', '2.8.2');
+define('PHPWG_VERSION', '2.9.0beta1');
define('PHPWG_DEFAULT_LANGUAGE', 'en_UK');
define('PHPWG_DEFAULT_TEMPLATE', 'elegant');
diff --git a/include/functions.inc.php b/include/functions.inc.php
index 018747817..a7135a4f4 100644
--- a/include/functions.inc.php
+++ b/include/functions.inc.php
@@ -411,6 +411,24 @@ function pwg_log($image_id = null, $image_type = null, $format_id = null)
{
global $conf, $user, $page;
+ $update_last_visit = false;
+ if (empty($user['last_visit']) or strtotime($user['last_visit']) < time()-$conf['session_length'])
+ {
+ $update_last_visit = true;
+ }
+ $update_last_visit = trigger_change('pwg_log_update_last_visit', $update_last_visit);
+
+ if ($update_last_visit)
+ {
+ $query = '
+UPDATE '.USER_INFOS_TABLE.'
+ SET last_visit = NOW(),
+ lastmodified = lastmodified
+ WHERE user_id = '.$user['id'].'
+';
+ pwg_query($query);
+ }
+
$do_log = $conf['log'];
if (is_admin())
{
diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php
index de8f87c7f..6a910c511 100644
--- a/include/functions_user.inc.php
+++ b/include/functions_user.inc.php
@@ -1614,4 +1614,46 @@ UPDATE '.USER_AUTH_KEYS_TABLE.'
;';
pwg_query($query);
}
+
+/**
+ * Gets the last visit (datetime) of a user, based on history table
+ *
+ * @since 2.9
+ * @param int $user_id
+ * @param boolean $save_in_user_infos to store result in user_infos.last_visit
+ * @return string date & time of last visit
+ */
+function get_user_last_visit_from_history($user_id, $save_in_user_infos=false)
+{
+ $last_visit = null;
+
+ $query = '
+SELECT
+ date,
+ time
+FROM '.HISTORY_TABLE.'
+ WHERE user_id = '.$user_id.'
+ ORDER BY id DESC
+ LIMIT 1
+;';
+ $result = pwg_query($query);
+ while ($row = pwg_db_fetch_assoc($result))
+ {
+ $last_visit = $row['date'].' '.$row['time'];
+ }
+
+ if ($save_in_user_infos)
+ {
+ $query = '
+UPDATE '.USER_INFOS_TABLE.'
+ SET last_visit = '.(is_null($last_visit) ? 'NULL' : "'".$last_visit."'").',
+ last_visit_from_history = \'true\',
+ lastmodified = lastmodified
+ WHERE user_id = '.$user_id.'
+';
+ pwg_query($query);
+ }
+
+ return $last_visit;
+}
?>
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
+?>