aboutsummaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rw-r--r--engine/lib/statistics.php37
1 files changed, 17 insertions, 20 deletions
diff --git a/engine/lib/statistics.php b/engine/lib/statistics.php
index 8744db4ab..73c424433 100644
--- a/engine/lib/statistics.php
+++ b/engine/lib/statistics.php
@@ -12,32 +12,35 @@
* @copyright Curverider Ltd 2008
* @link http://elgg.org/
*/
-
-
- // number of users
-
- // Number of objects broken down into type
-
- // who' s online now
/**
* 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()
+ function get_entity_statistics($owner_guid = 0)
{
global $CONFIG;
$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";
+ $owner_query = "";
+ if ($owner_guid) {
+ $query .= " where owner_guid=$owner_guid";
+ $owner_query = "and owner_guid=$owner_guid ";
+ }
// Get a list of major types
- $types = get_data("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");
+
+ $types = get_data($query);
foreach ($types as $type) {
if (!is_array($entity_stats[$type->type]))
$entity_stats[$type->type] = array(); // assume there are subtypes for now
- $query = "SELECT count(*) as count from {$CONFIG->dbprefix}entities where type='{$type->type}'";
+ $query = "SELECT count(*) as count from {$CONFIG->dbprefix}entities where type='{$type->type}' $owner_query";
if ($type->subtype) $query.= " and subtype={$type->subtype_id}";
$subtype_cnt = get_data_row($query);
@@ -69,16 +72,6 @@
}
/**
- * Report how many users are currently online
- *
- * @return int
- */
- function get_number_online()
- {
- // TODO: get logged in users somehow
- }
-
- /**
* Return a list of how many users are currently online, rendered as a view.
*/
function get_online_users()
@@ -99,6 +92,10 @@
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_admin_page('usersettings/statistics_opt/numentities', 'usersettings/statistics');
}
/// Register init function