diff options
Diffstat (limited to 'engine/lib')
-rw-r--r-- | engine/lib/statistics.php | 13 | ||||
-rw-r--r-- | engine/lib/users.php | 23 |
2 files changed, 31 insertions, 5 deletions
diff --git a/engine/lib/statistics.php b/engine/lib/statistics.php index 844cbfa01..8744db4ab 100644 --- a/engine/lib/statistics.php +++ b/engine/lib/statistics.php @@ -79,13 +79,16 @@ } /** - * Return a list of how many users are currently online. - * - * @param int $limit Number of users to return + * Return a list of how many users are currently online, rendered as a view. */ - function get_online_users($limit = 10) + function get_online_users() { - // TODO: Writeme + $objects = find_active_users(); + + if ($objects) + { + return elgg_view_entity_list($objects, count($objects), 0, 10); + } } /** diff --git a/engine/lib/users.php b/engine/lib/users.php index 51cb748c5..3bd87dbff 100644 --- a/engine/lib/users.php +++ b/engine/lib/users.php @@ -726,6 +726,29 @@ } return false; } + + /** + * A function that returns a maximum of $limit users who have done something within the last + * $seconds seconds. + * + * @param int $seconds Number of seconds (default 600 = 10min) + * @param int $limit Limit, default 10. + * @param int $offset Offset, defualt 0. + */ + function find_active_users($seconds = 600, $limit = 10, $offset = 0) + { + global $CONFIG; + + $seconds = (int)$seconds; + $limit = (int)$limit; + $offset = (int)$offset; + + $time = time() - $seconds; + + $query = "SELECT * from {$CONFIG->dbprefix}entities where type='user' and time_updated>=$time order by time_updated desc limit $offset, $limit"; + + return get_data($query, "entity_row_to_elggstar"); + } /**
* Registers a user, returning false if the username already exists
|