diff options
Diffstat (limited to 'mod/lightpics/pages/lists/mostviewedimages.php')
-rw-r--r-- | mod/lightpics/pages/lists/mostviewedimages.php | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/mod/lightpics/pages/lists/mostviewedimages.php b/mod/lightpics/pages/lists/mostviewedimages.php new file mode 100644 index 000000000..c113c39e2 --- /dev/null +++ b/mod/lightpics/pages/lists/mostviewedimages.php @@ -0,0 +1,79 @@ +<?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 { + // world view - set page owner to logged in user + if (isloggedin()) { + set_page_owner(get_loggedin_userid()); + } + + $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); |