<?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)); // allow other plugins to override the slideshow $slideshow_link = trigger_plugin_hook('tp_slideshow', 'album', array(), null); if ($slideshow_link) { add_submenu_item(elgg_echo('album:slideshow'), $slideshow_link, 'photos' ); } 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);