aboutsummaryrefslogtreecommitdiff
path: root/mod/lightpics/pages/lists
diff options
context:
space:
mode:
authorSem <sembrestels@riseup.net>2013-11-09 16:22:50 +0100
committerSem <sembrestels@riseup.net>2013-11-09 16:22:50 +0100
commitf448cd91f9ecebea37daf40aada2fa1a20200817 (patch)
tree4636059da6a1be133a4974e5098b7c1e08944dd5 /mod/lightpics/pages/lists
parent52335325e5ea8c89c711e1ba40d9ac1657004e61 (diff)
parent324f39c3a9aa41e9e23bafba38882a2b72f62441 (diff)
downloadelgg-f448cd91f9ecebea37daf40aada2fa1a20200817.tar.gz
elgg-f448cd91f9ecebea37daf40aada2fa1a20200817.tar.bz2
Add 'mod/lightpics/' from commit '324f39c3a9aa41e9e23bafba38882a2b72f62441'
git-subtree-dir: mod/lightpics git-subtree-mainline: 52335325e5ea8c89c711e1ba40d9ac1657004e61 git-subtree-split: 324f39c3a9aa41e9e23bafba38882a2b72f62441
Diffstat (limited to 'mod/lightpics/pages/lists')
-rw-r--r--mod/lightpics/pages/lists/highestrated.php65
-rw-r--r--mod/lightpics/pages/lists/highestvotecount.php50
-rw-r--r--mod/lightpics/pages/lists/mostcommentedimages.php42
-rw-r--r--mod/lightpics/pages/lists/mostcommentedimagesthismonth.php50
-rw-r--r--mod/lightpics/pages/lists/mostcommentedimagestoday.php50
-rw-r--r--mod/lightpics/pages/lists/mostrecentimages.php56
-rw-r--r--mod/lightpics/pages/lists/mostviewedimages.php79
-rw-r--r--mod/lightpics/pages/lists/mostviewedimageslastmonth.php50
-rw-r--r--mod/lightpics/pages/lists/mostviewedimagesthismonth.php50
-rw-r--r--mod/lightpics/pages/lists/mostviewedimagesthisyear.php50
-rw-r--r--mod/lightpics/pages/lists/mostviewedimagestoday.php50
-rw-r--r--mod/lightpics/pages/lists/recentlycommented.php61
-rw-r--r--mod/lightpics/pages/lists/recentlyviewed.php60
-rw-r--r--mod/lightpics/pages/lists/recentvotes.php52
14 files changed, 765 insertions, 0 deletions
diff --git a/mod/lightpics/pages/lists/highestrated.php b/mod/lightpics/pages/lists/highestrated.php
new file mode 100644
index 000000000..e05e7a9ba
--- /dev/null
+++ b/mod/lightpics/pages/lists/highestrated.php
@@ -0,0 +1,65 @@
+<?php
+ /**
+ * Tidypics Friends Albums Listing
+ *
+ */
+
+ include_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . "/engine/start.php";
+
+ //if no friends were requested, see world pictures instead, or redirect to user's friends
+/* if (is_null(get_input('username')) || get_input('username')=='') {
+ if (!isloggedin()) {
+ forward('pg/photos/world');
+ } else {
+ forward('pg/photos/friends/' . $_SESSION['user']->username);
+ }
+ }*/
+
+// if (is_null(page_owner_entity()->name) || page_owner_entity()->name == '') {
+// $groupname = get_input('username');
+// } else {
+// $groupname = page_owner_entity()->name;
+// };
+//
+ //there has to be a better way to do this
+ if(!$groupname) {
+ $page = get_input("page");
+ list($pagename, $groupname) = split("/", $page);
+ }
+
+ list($group_holder, $album_id) = split(":", $groupname);
+// echo "<pre>page: $page\ngroup: $groupname\nalbum: $album_id"; die;
+
+ $user = get_user_by_username($friendname);
+ global $CONFIG;
+ $prefix = $CONFIG->dbprefix;
+ $max = 24;
+
+ $sql = "SELECT ent.guid, count(1) as mycount, avg(ms2.string) as average
+ FROM " . $prefix . "entities ent
+ INNER JOIN " . $prefix . "entity_subtypes sub ON ent.subtype = sub.id
+ AND sub.subtype = 'image' AND ent.container_guid = $album_id
+ INNER JOIN " . $prefix . "annotations ann1 ON ann1.entity_guid = ent.guid
+ INNER JOIN " . $prefix . "metastrings ms ON ms.id = ann1.name_id
+ AND ms.string = 'generic_rate'
+ INNER JOIN " . $prefix . "metastrings ms2 ON ms2.id = ann1.value_id
+ INNER JOIN " . $prefix . "users_entity u ON ann1.owner_guid = u.guid
+ GROUP BY ent.guid HAVING mycount > 1
+ ORDER BY average DESC
+ LIMIT $max";
+
+ $result = get_data($sql);
+
+ $entities = array();
+ foreach($result as $entity) {
+ $entities[] = get_entity($entity->guid);
+ }
+
+ $album = get_entity($album_id);
+ $title = $album["title"] . ": " . elgg_echo("tidypics:highestrated");
+ $area2 = elgg_view_title($title);
+ $area2 .= elgg_view_entity_list($entities, $max, 0, $max, false);
+ $body = elgg_view_layout('two_column_left_sidebar', '', $area2);
+ page_draw($title, $body);
+
+?> \ No newline at end of file
diff --git a/mod/lightpics/pages/lists/highestvotecount.php b/mod/lightpics/pages/lists/highestvotecount.php
new file mode 100644
index 000000000..26b907144
--- /dev/null
+++ b/mod/lightpics/pages/lists/highestvotecount.php
@@ -0,0 +1,50 @@
+<?php
+
+ /**
+ * Tidypics full view of an image
+ * Given a GUID, this page will try and display any entity
+ *
+ */
+
+ // Load Elgg engine
+ include_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . "/engine/start.php";
+
+ global $CONFIG;
+ $prefix = $CONFIG->dbprefix;
+ $max = 24;
+
+ $sql = "SELECT ent.guid, u.name as owner, count( 1 ) AS mycount, avg( ms2.string ) AS average
+ 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
+ INNER JOIN " . $prefix . "metastrings ms ON ms.id = ann1.name_id
+ AND ms.string = 'generic_rate'
+ INNER JOIN " . $prefix . "metastrings ms2 ON ms2.id = ann1.value_id
+ INNER JOIN " . $prefix . "users_entity u ON ent.owner_guid = u.guid
+ GROUP BY ent.guid
+ ORDER BY mycount DESC
+ LIMIT $max";
+
+ $result = get_data($sql);
+
+ $title = "Most voted images";
+ $area2 = elgg_view_title($title);
+
+ $entities = array();
+ foreach($result as $entity) {
+ $entities[] = get_entity($entity->guid);
+ $full_entity = get_entity($entity->guid);
+ $area2 .= " <div class='tidypics_album_images'>
+ Owner: $entity->owner<br />
+ Votes: $entity->mycount<br />
+ Average: $entity->average
+ </div>
+ ";
+ $area2 .= elgg_view_entity($full_entity);
+
+ }
+
+ $body = elgg_view_layout('two_column_left_sidebar', '', $area2);
+ page_draw($title, $body);
+?> \ No newline at end of file
diff --git a/mod/lightpics/pages/lists/mostcommentedimages.php b/mod/lightpics/pages/lists/mostcommentedimages.php
new file mode 100644
index 000000000..0a4eb9622
--- /dev/null
+++ b/mod/lightpics/pages/lists/mostcommentedimages.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * Tidypics full view of an image
+ * Given a GUID, this page will try and display any entity
+ *
+ */
+
+// Load Elgg engine
+include_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . "/engine/start.php";
+
+global $CONFIG;
+$prefix = $CONFIG->dbprefix;
+$max = 24;
+
+//this works but is wildly inefficient
+//$annotations = get_annotations(0, "object", "image", "tp_view", "", "", 5000);
+
+$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
+ INNER JOIN " . $prefix . "metastrings ms ON ms.id = ann1.name_id
+ AND ms.string = 'generic_comment'
+ 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);
+}
+
+tidypics_mostviewed_submenus();
+$title = elgg_echo("tidypics:mostcommented");
+$area2 = elgg_view_title($title);
+$area2 .= elgg_view_entity_list($entities, $max, 0, $max, false);
+$body = elgg_view_layout('two_column_left_sidebar', '', $area2);
+page_draw($title, $body); \ No newline at end of file
diff --git a/mod/lightpics/pages/lists/mostcommentedimagesthismonth.php b/mod/lightpics/pages/lists/mostcommentedimagesthismonth.php
new file mode 100644
index 000000000..d95e2aff5
--- /dev/null
+++ b/mod/lightpics/pages/lists/mostcommentedimagesthismonth.php
@@ -0,0 +1,50 @@
+<?php
+
+ /**
+ * Tidypics full view of an image
+ * Given a GUID, this page will try and display any entity
+ *
+ */
+
+ // Load Elgg engine
+ include_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . "/engine/start.php";
+
+ global $CONFIG;
+ $prefix = $CONFIG->dbprefix;
+ $max = 24;
+
+
+ //find timestamps for first and last days of this month
+ $time_info = new stdClass();
+ $time_info->start = mktime(0,0,0, date("m"), 1, date("Y"));
+ $time_info->end = mktime();
+
+ //this works but is wildly inefficient
+ //$annotations = get_annotations(0, "object", "image", "tp_view", "", "", 5000);
+
+ $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
+ INNER JOIN " . $prefix . "metastrings ms ON ms.id = ann1.name_id
+ AND ms.string = 'generic_comment'
+ WHERE ann1.time_created BETWEEN $time_info->start AND $time_info->end
+ 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);
+ }
+
+ tidypics_mostviewed_submenus();
+ $title = elgg_echo("tidypics:mostcommentedthismonth");
+ $area2 = elgg_view_title($title);
+ $area2 .= elgg_view_entity_list($entities, $max, 0, $max, false);
+ $body = elgg_view_layout('two_column_left_sidebar', '', $area2);
+ page_draw($title, $body);
+?> \ No newline at end of file
diff --git a/mod/lightpics/pages/lists/mostcommentedimagestoday.php b/mod/lightpics/pages/lists/mostcommentedimagestoday.php
new file mode 100644
index 000000000..bd1a0cbec
--- /dev/null
+++ b/mod/lightpics/pages/lists/mostcommentedimagestoday.php
@@ -0,0 +1,50 @@
+<?php
+
+ /**
+ * Tidypics full view of an image
+ * Given a GUID, this page will try and display any entity
+ *
+ */
+
+ // Load Elgg engine
+ include_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . "/engine/start.php";
+
+ global $CONFIG;
+ $prefix = $CONFIG->dbprefix;
+ $max = 24;
+
+
+ //find timestamps for today
+ $time_info = new stdClass();
+ $time_info->start = mktime(0,0,0, date("m"), date("d"), date("Y"));
+ $time_info->end = mktime();
+
+ //this works but is wildly inefficient
+ //$annotations = get_annotations(0, "object", "image", "tp_view", "", "", 5000);
+
+ $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
+ INNER JOIN " . $prefix . "metastrings ms ON ms.id = ann1.name_id
+ AND ms.string = 'generic_comment'
+ WHERE ann1.time_created BETWEEN $time_info->start AND $time_info->end
+ 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);
+ }
+
+ tidypics_mostviewed_submenus();
+ $title = elgg_echo("tidypics:mostcommentedtoday");
+ $area2 = elgg_view_title($title);
+ $area2 .= elgg_view_entity_list($entities, $max, 0, $max, false);
+ $body = elgg_view_layout('two_column_left_sidebar', '', $area2);
+ page_draw($title, $body);
+?> \ No newline at end of file
diff --git a/mod/lightpics/pages/lists/mostrecentimages.php b/mod/lightpics/pages/lists/mostrecentimages.php
new file mode 100644
index 000000000..83ec3e988
--- /dev/null
+++ b/mod/lightpics/pages/lists/mostrecentimages.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * Most recently uploaded images - individual or world
+ *
+ */
+
+// Load Elgg engine
+include_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . "/engine/start.php";
+
+// start with assumption this is for all site photos
+$title = elgg_echo('tidypics:mostrecent');
+$user_id = 0;
+
+// is this all site or an individuals images
+$username = get_input('username');
+if ($username) {
+ $user = get_user_by_username($username);
+ if ($user) {
+ $user_id = $user->guid;
+
+ if ($user_id == get_loggedin_userid()) {
+ $title = elgg_echo('tidypics:yourmostrecent');
+ } else {
+ $title = sprintf(elgg_echo("tidypics:friendmostrecent"), $user->name);
+ }
+ }
+} else {
+ // world view - set page owner to logged in user
+ if (isloggedin()) {
+ set_page_owner(get_loggedin_userid());
+ }
+}
+
+// how many do we display
+$max = 12;
+
+// grab the html to display the images
+$images = elgg_list_entities(array(
+ "type" => "object",
+ "subtype" => "image",
+ "owner_guid" => $user_id,
+ "limit" => $max,
+ "full_view" => 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' => $images,));
+if (empty($area2)) {
+ $area2 = $images;
+}
+
+$body = elgg_view_layout('two_column_left_sidebar', '', $area2);
+
+page_draw($title, $body);
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);
diff --git a/mod/lightpics/pages/lists/mostviewedimageslastmonth.php b/mod/lightpics/pages/lists/mostviewedimageslastmonth.php
new file mode 100644
index 000000000..1ed9161f7
--- /dev/null
+++ b/mod/lightpics/pages/lists/mostviewedimageslastmonth.php
@@ -0,0 +1,50 @@
+<?php
+
+ /**
+ * Tidypics full view of an image
+ * Given a GUID, this page will try and display any entity
+ *
+ */
+
+ // Load Elgg engine
+ include_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . "/engine/start.php";
+
+ global $CONFIG;
+ $prefix = $CONFIG->dbprefix;
+ $max = 24;
+
+
+ //find timestamps for first and last days of last month
+ $time_info = new stdClass();
+ $time_info->start = strtotime("-1 months", mktime(0,0,0, date("m"), 1, date("Y")));
+ $time_info->end = mktime(0,0,0,date("m"), 0, date("Y"));
+
+ //this works but is wildly inefficient
+ //$annotations = get_annotations(0, "object", "image", "tp_view", "", "", 5000);
+
+ $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'
+ WHERE ann1.time_created BETWEEN $time_info->start AND $time_info->end
+ 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);
+ }
+
+ tidypics_mostviewed_submenus();
+ $title = elgg_echo("tidypics:mostviewedlastmonth");
+ $area2 = elgg_view_title($title);
+ $area2 .= elgg_view_entity_list($entities, $max, 0, $max, false);
+ $body = elgg_view_layout('two_column_left_sidebar', '', $area2);
+ page_draw($title, $body);
+?> \ No newline at end of file
diff --git a/mod/lightpics/pages/lists/mostviewedimagesthismonth.php b/mod/lightpics/pages/lists/mostviewedimagesthismonth.php
new file mode 100644
index 000000000..bfe08e1da
--- /dev/null
+++ b/mod/lightpics/pages/lists/mostviewedimagesthismonth.php
@@ -0,0 +1,50 @@
+<?php
+
+ /**
+ * Tidypics full view of an image
+ * Given a GUID, this page will try and display any entity
+ *
+ */
+
+ // Load Elgg engine
+ include_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . "/engine/start.php";
+
+ global $CONFIG;
+ $prefix = $CONFIG->dbprefix;
+ $max = 24;
+
+
+ //find timestamps for first and last days of this month
+ $time_info = new stdClass();
+ $time_info->start = mktime(0,0,0, date("m"), 1, date("Y"));
+ $time_info->end = mktime();
+
+ //this works but is wildly inefficient
+ //$annotations = get_annotations(0, "object", "image", "tp_view", "", "", 5000);
+
+ $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'
+ WHERE ann1.time_created BETWEEN $time_info->start AND $time_info->end
+ 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);
+ }
+
+ tidypics_mostviewed_submenus();
+ $title = elgg_echo("tidypics:mostviewedthismonth");
+ $area2 = elgg_view_title($title);
+ $area2 .= elgg_view_entity_list($entities, $max, 0, $max, false);
+ $body = elgg_view_layout('two_column_left_sidebar', '', $area2);
+ page_draw($title, $body);
+?> \ No newline at end of file
diff --git a/mod/lightpics/pages/lists/mostviewedimagesthisyear.php b/mod/lightpics/pages/lists/mostviewedimagesthisyear.php
new file mode 100644
index 000000000..fe1a63d38
--- /dev/null
+++ b/mod/lightpics/pages/lists/mostviewedimagesthisyear.php
@@ -0,0 +1,50 @@
+<?php
+
+ /**
+ * Tidypics full view of an image
+ * Given a GUID, this page will try and display any entity
+ *
+ */
+
+ // Load Elgg engine
+ include_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . "/engine/start.php";
+
+ global $CONFIG;
+ $prefix = $CONFIG->dbprefix;
+ $max = 24;
+
+
+ //find timestamps for first day of the year and current date
+ $time_info = new stdClass();
+ $time_info->start = mktime(0,0,0, 1, 1, date("Y"));
+ $time_info->end = mktime();
+
+ //this works but is wildly inefficient
+ //$annotations = get_annotations(0, "object", "image", "tp_view", "", "", 5000);
+
+ $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'
+ WHERE ann1.time_created BETWEEN $time_info->start AND $time_info->end
+ 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);
+ }
+
+ tidypics_mostviewed_submenus();
+ $title = elgg_echo("tidypics:mostviewedthisyear");
+ $area2 = elgg_view_title($title);
+ $area2 .= elgg_view_entity_list($entities, $max, 0, $max, false);
+ $body = elgg_view_layout('two_column_left_sidebar', '', $area2);
+ page_draw($title, $body);
+?> \ No newline at end of file
diff --git a/mod/lightpics/pages/lists/mostviewedimagestoday.php b/mod/lightpics/pages/lists/mostviewedimagestoday.php
new file mode 100644
index 000000000..f8e844753
--- /dev/null
+++ b/mod/lightpics/pages/lists/mostviewedimagestoday.php
@@ -0,0 +1,50 @@
+<?php
+
+ /**
+ * Tidypics full view of an image
+ * Given a GUID, this page will try and display any entity
+ *
+ */
+
+ // Load Elgg engine
+ include_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . "/engine/start.php";
+
+ global $CONFIG;
+ $prefix = $CONFIG->dbprefix;
+ $max = 24;
+
+
+ //find timestamps for today
+ $time_info = new stdClass();
+ $time_info->start = mktime(0,0,0, date("m"), date("d"), date("Y"));
+ $time_info->end = mktime();
+
+ //this works but is wildly inefficient
+ //$annotations = get_annotations(0, "object", "image", "tp_view", "", "", 5000);
+
+ $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'
+ WHERE ann1.time_created BETWEEN $time_info->start AND $time_info->end
+ 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);
+ }
+
+ tidypics_mostviewed_submenus();
+ $title = elgg_echo("tidypics:mostviewedtoday");
+ $area2 = elgg_view_title($title);
+ $area2 .= elgg_view_entity_list($entities, $max, 0, $max, false);
+ $body = elgg_view_layout('two_column_left_sidebar', '', $area2);
+ page_draw($title, $body);
+?> \ No newline at end of file
diff --git a/mod/lightpics/pages/lists/recentlycommented.php b/mod/lightpics/pages/lists/recentlycommented.php
new file mode 100644
index 000000000..08f69603a
--- /dev/null
+++ b/mod/lightpics/pages/lists/recentlycommented.php
@@ -0,0 +1,61 @@
+<?php
+
+/**
+ * Images recently commented on - world view only
+ *
+ */
+
+// Load Elgg engine
+include_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . "/engine/start.php";
+
+// world view - set page owner to logged in user
+if (isloggedin()) {
+ set_page_owner(get_loggedin_userid());
+}
+
+
+global $CONFIG;
+$prefix = $CONFIG->dbprefix;
+$max_limit = 200; //get extra because you'll have multiple views per image in the result set
+$max = 16; //controls how many actually show on screen
+
+//this works but is wildly inefficient
+//$annotations = get_annotations(0, "object", "image", "tp_view", "", "", 5000);
+
+$sql = "SELECT distinct (ent.guid), ann1.time_created
+ 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
+ INNER JOIN " . $prefix . "metastrings ms ON ms.id = ann1.name_id
+ AND ms.string = 'generic_comment'
+ ORDER BY ann1.time_created DESC
+ LIMIT $max_limit";
+
+$result = get_data($sql);
+
+$entities = array();
+foreach ($result as $entity) {
+ if (!$entities[$entity->guid]) {
+ $entities[$entity->guid] = get_entity($entity->guid);
+ }
+ if (count($entities) >= $max) {
+ break;
+ }
+}
+
+$user = get_loggedin_user();
+$title = elgg_echo("tidypics:recentlycommented");
+$area2 = elgg_view_title($title);
+
+// grab the html to display the images
+$images = tp_view_entity_list($entities, $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' => $images,));
+if (empty($area2)) {
+ $area2 = $images;
+}
+
+$body = elgg_view_layout('two_column_left_sidebar', '', $area2);
+page_draw($title, $body);
diff --git a/mod/lightpics/pages/lists/recentlyviewed.php b/mod/lightpics/pages/lists/recentlyviewed.php
new file mode 100644
index 000000000..851804e99
--- /dev/null
+++ b/mod/lightpics/pages/lists/recentlyviewed.php
@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * Most recently viewed images - world view only right now
+ *
+ */
+
+// Load Elgg engine
+include_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . "/engine/start.php";
+
+// world view - set page owner to logged in user
+if (isloggedin()) {
+ set_page_owner(get_loggedin_userid());
+}
+
+
+global $CONFIG;
+$prefix = $CONFIG->dbprefix;
+$max_limit = 200; //get extra because you'll have multiple views per image in the result set
+$max = 16; //controls how many actually show on screen
+
+//this works but is wildly inefficient
+//$annotations = get_annotations(0, "object", "image", "tp_view", "", "", 5000);
+
+$sql = "SELECT distinct ent.guid, ann1.time_created
+ 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
+ INNER JOIN " . $prefix . "metastrings ms ON ms.id = ann1.name_id
+ AND ms.string = 'tp_view'
+ ORDER BY ann1.id DESC
+ LIMIT $max_limit";
+
+$result = get_data($sql);
+
+$entities = array();
+foreach ($result as $entity) {
+ if (!$entities[$entity->guid]) {
+ $entities[$entity->guid] = get_entity($entity->guid);
+ }
+ if (count($entities) >= $max) {
+ break;
+ }
+}
+
+$title = elgg_echo("tidypics:recentlyviewed");
+$area2 = elgg_view_title($title);
+
+// grab the html to display the images
+$images = tp_view_entity_list($entities, $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' => $images,));
+if (empty($area2)) {
+ $area2 = $images;
+}
+
+$body = elgg_view_layout('two_column_left_sidebar', '', $area2);
+page_draw($title, $body);
diff --git a/mod/lightpics/pages/lists/recentvotes.php b/mod/lightpics/pages/lists/recentvotes.php
new file mode 100644
index 000000000..3d8eac97e
--- /dev/null
+++ b/mod/lightpics/pages/lists/recentvotes.php
@@ -0,0 +1,52 @@
+<?php
+
+ /**
+ * Tidypics full view of an image
+ * Given a GUID, this page will try and display any entity
+ *
+ */
+
+ // Load Elgg engine
+ include_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . "/engine/start.php";
+
+ global $CONFIG;
+ $prefix = $CONFIG->dbprefix;
+ $max = 24;
+
+ $sql = "SELECT ent.guid, u2.name AS owner, u.name AS voter, ms2.string as vote
+ 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
+ INNER JOIN " . $prefix . "metastrings ms ON ms.id = ann1.name_id
+ AND ms.string = 'generic_rate'
+ INNER JOIN " . $prefix . "metastrings ms2 ON ms2.id = ann1.value_id
+ INNER JOIN " . $prefix . "users_entity u ON ann1.owner_guid = u.guid
+ INNER JOIN " . $prefix . "users_entity u2 ON ent.owner_guid = u2.guid
+ ORDER BY ann1.time_created DESC
+ LIMIT $max";
+
+ $result = get_data($sql);
+
+ $title = "Recently rated images";
+ $area2 = elgg_view_title($title);
+
+ $entities = array();
+ foreach($result as $entity) {
+ $entities[] = get_entity($entity->guid);
+ $full_entity = get_entity($entity->guid);
+ $area2 .= " <div class='tidypics_album_images'>
+ Owner: $entity->owner<br />
+ Voter: $entity->voter<br />
+ Rating: $entity->vote
+ </div>
+ ";
+ $area2 .= elgg_view_entity($full_entity);
+
+ }
+
+
+// $area2 .= elgg_view_entity_list($entities, $max, 0, $max);
+ $body = elgg_view_layout('two_column_left_sidebar', '', $area2);
+ page_draw($title, $body);
+?> \ No newline at end of file