diff options
| author | Cash Costello <cash.costello@gmail.com> | 2009-12-12 02:41:16 +0000 | 
|---|---|---|
| committer | Cash Costello <cash.costello@gmail.com> | 2009-12-12 02:41:16 +0000 | 
| commit | 1738eb457318068194571f337cff52f9a2bbb29b (patch) | |
| tree | ea7d3931ab9419d0babe7571acee0ff875cc1479 /lib | |
| parent | 58fd575a7b28936455baea2856b1d5613d29b477 (diff) | |
| download | elgg-1738eb457318068194571f337cff52f9a2bbb29b.tar.gz elgg-1738eb457318068194571f337cff52f9a2bbb29b.tar.bz2 | |
using image rss view for album display and condensed most viewed pages
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/tidypics.php | 69 | 
1 files changed, 69 insertions, 0 deletions
| diff --git a/lib/tidypics.php b/lib/tidypics.php index a5b713ee4..e24e4d77e 100644 --- a/lib/tidypics.php +++ b/lib/tidypics.php @@ -191,6 +191,75 @@  		return $html;
  	}
 +	function tp_get_entities_from_annotations_calculate_x($sum = "sum", $entity_type = "", $entity_subtype = "", $name = "", $mdname = '', $mdvalue = '', $owner_guid = 0, $limit = 10, $offset = 0, $orderdir = 'desc', $count = false)
 +	{
 +		global $CONFIG;
 +		
 +		$sum = sanitise_string($sum);
 +		$entity_type = sanitise_string($entity_type);
 +		$entity_subtype = get_subtype_id($entity_type, $entity_subtype);
 +		$name = get_metastring_id($name);
 +		$limit = (int) $limit;
 +		$offset = (int) $offset;
 +		$owner_guid = (int) $owner_guid;
 +		if (!empty($mdname) && !empty($mdvalue)) {
 +			$meta_n = get_metastring_id($mdname);
 +			$meta_v = get_metastring_id($mdvalue);
 +		}
 +		
 +		if (empty($name)) return 0;
 +		
 +		$where = array();
 +		
 +		if ($entity_type!="")
 +			$where[] = "e.type='$entity_type'";
 +		if ($owner_guid > 0)
 +			$where[] = "e.owner_guid = $owner_guid";
 +		if ($entity_subtype)
 +			$where[] = "e.subtype=$entity_subtype";
 +		if ($name!="")
 +			$where[] = "a.name_id='$name'";
 +			
 +		if (!empty($mdname) && !empty($mdvalue)) {
 +			if ($mdname!="")
 +				$where[] = "m.name_id='$meta_n'";
 +			if ($mdvalue!="")
 +				$where[] = "m.value_id='$meta_v'";
 +		}
 +			
 +		if ($sum != "count")
 +			$where[] = "a.value_type='integer'"; // Limit on integer types
 +
 +		if (!$count) {
 +			$query = "SELECT distinct e.*, $sum(ms.string) as sum ";
 +		} else {
 +			$query = "SELECT count(distinct e.guid) as num, $sum(ms.string) as sum ";
 +		}
 +		$query .= " from {$CONFIG->dbprefix}entities e JOIN {$CONFIG->dbprefix}annotations a on a.entity_guid = e.guid JOIN {$CONFIG->dbprefix}metastrings ms on a.value_id=ms.id ";
 +		
 +		if (!empty($mdname) && !empty($mdvalue)) {
 +			$query .= " JOIN {$CONFIG->dbprefix}metadata m on m.entity_guid = e.guid "; 
 +		}
 +		
 +		$query .= " WHERE ";
 +		foreach ($where as $w)
 +			$query .= " $w and ";
 +		$query .= get_access_sql_suffix("a"); // now add access
 +		$query .= ' and ' . get_access_sql_suffix("e"); // now add access
 +		if (!$count) $query .= ' group by e.guid';
 +		
 +		if (!$count) {
 +			$query .= ' order by sum ' . $orderdir;
 +			$query .= ' limit ' . $offset . ' , ' . $limit;
 +			return get_data($query, "entity_row_to_elggstar");
 +		} else {
 +			if ($row = get_data_row($query)) {
 +				return $row->num;
 +			}
 +		}
 +		return false;
 +	}
 +	
  	/**
  	 * Is page owner a group - convenience function
  	 * 
 | 
