aboutsummaryrefslogtreecommitdiff
path: root/pages/lists/mostviewedimages.php
blob: 16b9d72956948f09555c3b12360ed7889046b6b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php

	/**
	 * Most viewed images - either for a user or all site
	 * 
	 */

	// Load Elgg engine
	include_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . "/engine/start.php";

	global $CONFIG;
	$prefix = $CONFIG->dbprefix;
	$max = 24;
	
	$owner_guid = page_owner();
	
	//$start = microtime(true);
	$photos = tp_get_entities_from_annotations_calculate_x(	
													'count',
													'object', 
													'image', 
													'tp_view', 
													'', 
													'', 
													$owner_guid, 
													$max);
	//error_log("elgg query is " . (float)(microtime(true) - $start));
		
	//this works but is wildly inefficient
	//$annotations = get_annotations(0, "object", "image", "tp_view", "", "", 5000);
/*
	$start = microtime(true);
	$sql = "SELECT ent.guid, count( * ) AS views
			FROM " . $prefix . "entities ent
			INNER JOIN " . $prefix . "entity_subtypes sub ON ent.subtype = sub.id
			AND sub.subtype = 'image'
			INNER JOIN " . $prefix . "annotations ann1 ON ann1.entity_guid = ent.guid AND ann1.owner_guid != ent.owner_guid
			INNER JOIN " . $prefix . "metastrings ms ON ms.id = ann1.name_id
			AND ms.string = 'tp_view'
			GROUP BY ent.guid
			ORDER BY views DESC
			LIMIT $max";
	
	$result = get_data($sql);

	$entities = array();
	foreach($result as $entity) {
		$entities[] = get_entity($entity->guid);
	}
*/
	//error_log("custom query is " . (float)(microtime(true) - $start));

	if ($owner_guid) {
		if ($owner_guid == get_loggedin_userid()) {
			$title = elgg_echo("tidypics:yourmostviewed");	
		} else {
			$title = sprintf(elgg_echo("tidypics:friendmostviewed"), page_owner_entity()->name);
		}
	} else {
		$title = elgg_echo("tidypics:mostviewed");
	}
	$area2 = elgg_view_title($title);
	
	// grab the html to display the images
	$content = tp_view_entity_list($photos, $max, 0, $max, false);
	
	// this view takes care of the title on the main column and the content wrapper
	$area2 = elgg_view('tidypics/content_wrapper', array('title' => $title, 'content' => $content,));
	if( empty( $area2 )) $area2 = $content;	
	
	$body = elgg_view_layout('two_column_left_sidebar', '', $area2);
	page_draw($title, $body);
?>