diff options
Diffstat (limited to 'engine/lib/statistics.php')
| -rw-r--r-- | engine/lib/statistics.php | 37 | 
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  | 
