aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/statistics.php
diff options
context:
space:
mode:
Diffstat (limited to 'engine/lib/statistics.php')
-rw-r--r--engine/lib/statistics.php61
1 files changed, 39 insertions, 22 deletions
diff --git a/engine/lib/statistics.php b/engine/lib/statistics.php
index b8bf2b012..4cb0bb0b8 100644
--- a/engine/lib/statistics.php
+++ b/engine/lib/statistics.php
@@ -1,20 +1,20 @@
<?php
/**
* Elgg statistics library.
+ *
* This file contains a number of functions for obtaining statistics about the running system.
- * These statistics are mainly used by the administration pages, and is also where the basic views for statistics
- * are added.
+ * These statistics are mainly used by the administration pages, and is also where the basic
+ * views for statistics are added.
*
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
+ * @package Elgg.Core
+ * @subpackage Statistics
*/
/**
* Return an array reporting the number of various entities in the system.
*
* @param int $owner_guid Optional owner of the statistics
+ *
* @return array
*/
function get_entity_statistics($owner_guid = 0) {
@@ -23,7 +23,10 @@ function get_entity_statistics($owner_guid = 0) {
$entity_stats = array();
$owner_guid = (int)$owner_guid;
- $query = "SELECT distinct e.type,s.subtype,e.subtype as subtype_id from {$CONFIG->dbprefix}entities e left join {$CONFIG->dbprefix}entity_subtypes s on e.subtype=s.id";
+ $query = "SELECT distinct e.type,s.subtype,e.subtype as subtype_id
+ from {$CONFIG->dbprefix}entities e left
+ join {$CONFIG->dbprefix}entity_subtypes s on e.subtype=s.id";
+
$owner_query = "";
if ($owner_guid) {
$query .= " where owner_guid=$owner_guid";
@@ -39,9 +42,11 @@ function get_entity_statistics($owner_guid = 0) {
$entity_stats[$type->type] = array();
}
- $query = "SELECT count(*) as count from {$CONFIG->dbprefix}entities where type='{$type->type}' $owner_query";
+ $query = "SELECT count(*) as count
+ from {$CONFIG->dbprefix}entities where type='{$type->type}' $owner_query";
+
if ($type->subtype) {
- $query.= " and subtype={$type->subtype_id}";
+ $query .= " and subtype={$type->subtype_id}";
}
$subtype_cnt = get_data_row($query);
@@ -59,7 +64,8 @@ function get_entity_statistics($owner_guid = 0) {
/**
* Return the number of users registered in the system.
*
- * @param bool $show_deactivated
+ * @param bool $show_deactivated Count not enabled users?
+ *
* @return int
*/
function get_number_users($show_deactivated = false) {
@@ -71,7 +77,10 @@ function get_number_users($show_deactivated = false) {
$access = "and " . get_access_sql_suffix();
}
- $result = get_data_row("SELECT count(*) as count from {$CONFIG->dbprefix}entities where type='user' $access");
+ $query = "SELECT count(*) as count
+ from {$CONFIG->dbprefix}entities where type='user' $access";
+
+ $result = get_data_row($query);
if ($result) {
return $result->count;
@@ -82,28 +91,36 @@ function get_number_users($show_deactivated = false) {
/**
* Return a list of how many users are currently online, rendered as a view.
+ *
+ * @return string
*/
function get_online_users() {
- $offset = get_input('offset', 0);
- $count = count(find_active_users(600, 9999));
- $objects = find_active_users(600, 10, $offset);
+ $limit = max(0, (int) get_input("limit", 10));
+ $offset = max(0, (int) get_input("offset", 0));
+
+ $count = find_active_users(600, $limit, $offset, true);
+ $objects = find_active_users(600, $limit, $offset);
if ($objects) {
- return elgg_view_entity_list($objects, $count,$offset,10,false);
+ return elgg_view_entity_list($objects, array(
+ 'count' => $count,
+ 'limit' => $limit,
+ 'offset' => $offset
+ ));
}
+ return '';
}
/**
* Initialise the statistics admin page.
+ *
+ * @return void
+ * @access private
*/
function statistics_init() {
- extend_elgg_admin_page('admin/statistics_opt/basic', 'admin/statistics');
- extend_elgg_admin_page('admin/statistics_opt/numentities', 'admin/statistics');
- extend_elgg_admin_page('admin/statistics_opt/online', 'admin/statistics');
-
- extend_elgg_settings_page('usersettings/statistics_opt/online', 'usersettings/statistics');
- extend_elgg_settings_page('usersettings/statistics_opt/numentities', 'usersettings/statistics');
+ elgg_extend_view('core/settings/statistics', 'core/settings/statistics/online');
+ elgg_extend_view('core/settings/statistics', 'core/settings/statistics/numentities');
}
/// Register init function
-register_elgg_event_handler('init','system','statistics_init'); \ No newline at end of file
+elgg_register_event_handler('init', 'system', 'statistics_init');