aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--friendmostrecent.php44
-rw-r--r--friendmostviewed.php55
-rw-r--r--languages/en.php4
-rw-r--r--start.php65
-rw-r--r--yourmostrecent.php33
-rw-r--r--yourmostviewed.php36
6 files changed, 226 insertions, 11 deletions
diff --git a/friendmostrecent.php b/friendmostrecent.php
new file mode 100644
index 000000000..9c6eb8ed0
--- /dev/null
+++ b/friendmostrecent.php
@@ -0,0 +1,44 @@
+<?php
+ /**
+ * Tidypics Friends Albums Listing
+ *
+ */
+
+ include_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
+
+ if (is_null(page_owner_entity()->name) || page_owner_entity()->name == '') {
+ $friendname = get_input('username');
+ } else {
+ $friendname = page_owner_entity()->name;
+ };
+
+ //there has to be a better way to do this
+ if(!$friendname) {
+ $page = get_input("page");
+ list($pagename, $friendname) = split("/", $page);
+ }
+ $user = get_user_by_username($friendname);
+
+ $prefix = "my_elgg"; //how do you get the global default?
+ $max = 24;
+ //grab the top views (metadata 'tp_views') for $max number of entities
+ //ignores entity subtypes
+
+ $sql = "SELECT ent.guid as entity_guid FROM " . $prefix . "entities ent
+ INNER JOIN " . $prefix . "entity_subtypes sub ON ent.subtype = sub.id AND sub.subtype = 'image'
+ WHERE ent.owner_guid = " . $user->guid . "
+ ORDER BY ent.guid DESC
+ LIMIT $max";
+ $result = get_data($sql);
+ $entities = array();
+ foreach($result as $entity) {
+ $entities[] = get_entity($entity->entity_guid);
+ }
+
+ $title = sprintf(elgg_echo("tidypics:friendmostrecent"), $friendname);
+ $area2 = elgg_view_title($title);
+ $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
diff --git a/friendmostviewed.php b/friendmostviewed.php
new file mode 100644
index 000000000..300c3ccb5
--- /dev/null
+++ b/friendmostviewed.php
@@ -0,0 +1,55 @@
+<?php
+ /**
+ * Tidypics Friends Albums Listing
+ *
+ */
+
+ include_once(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 == '') {
+ $friendname = get_input('username');
+ } else {
+ $friendname = page_owner_entity()->name;
+ };
+
+ //there has to be a better way to do this
+ if(!$friendname) {
+ $page = get_input("page");
+ list($pagename, $friendname) = split("/", $page);
+ }
+ $user = get_user_by_username($friendname);
+
+ $prefix = "my_elgg"; //how do you get the global default?
+ $max = 24;
+ //grab the top views (metadata 'tp_views') for $max number of entities
+ //ignores entity subtypes
+ $sql = "SELECT md.entity_guid, md.owner_guid, md.enabled, ms.string AS views from " . $prefix . "entities ent
+ INNER JOIN " . $prefix . "metadata md ON md.entity_guid = ent.guid
+ INNER JOIN " . $prefix . "metastrings ms ON md.value_id = ms.id
+ INNER JOIN " . $prefix . "metastrings ms2 ON md.name_id = ms2.id AND ms2.string = 'tp_views'
+ WHERE ent.owner_guid = " . $user->guid . "
+ ORDER BY views DESC LIMIT $max";
+
+ $result = get_data($sql);
+
+ $entities = array();
+ foreach($result as $entity) {
+ $entities[] = get_entity($entity->entity_guid);
+ }
+
+ $title = sprintf(elgg_echo("tidypics:friendmostviewed"), $friendname);
+ $area2 = elgg_view_title($title);
+ $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
diff --git a/languages/en.php b/languages/en.php
index c36ecd25e..61345174b 100644
--- a/languages/en.php
+++ b/languages/en.php
@@ -24,6 +24,10 @@
'tidypics:editprops' => 'Edit Image Properties',
'tidypics:mostviewed' => 'Most viewed images',
'tidypics:mostrecent' => 'Most recent images',
+ 'tidypics:yourmostviewed' => 'Your most viewed images',
+ 'tidypics:yourmostrecent' => 'Your most recent images',
+ 'tidypics:friendmostviewed' => "%s's most viewed images",
+ 'tidypics:friendmostrecent' => "%s's most recent images",
//actions
diff --git a/start.php b/start.php
index 1f05f03da..5091a4200 100644
--- a/start.php
+++ b/start.php
@@ -73,31 +73,53 @@
// context is only set to photos on individual pages, not on group pages
else if (get_context() == "photos") {
- // owner gets "your albumn", "your friends albums"
+ // owner gets "your albumn", "your friends albums", "your most viewed", "your most recent"
if (get_loggedin_userid() == $page_owner->guid && get_loggedin_userid()) {
add_submenu_item( elgg_echo('album:create'),
$CONFIG->wwwroot . "pg/photos/new/". $page_owner->username,
- 'tidypics' );
+ 'tidypics-a' );
add_submenu_item( elgg_echo("album:yours"),
$CONFIG->wwwroot . "pg/photos/owned/" . $_SESSION['user']->username,
- 'tidypics' );
+ 'tidypics-a' );
add_submenu_item( elgg_echo('album:yours:friends'),
$CONFIG->wwwroot . "pg/photos/friends/". $page_owner->username,
- 'tidypics');
+ 'tidypics-a');
+
+ add_submenu_item( elgg_echo('tidypics:yourmostviewed'),
+ $CONFIG->wwwroot . 'pg/photos/yourmostviewed',
+ 'tidypics-a');
+
+ add_submenu_item( elgg_echo('tidypics:yourmostrecent'),
+ $CONFIG->wwwroot . 'pg/photos/yourmostrecent',
+ 'tidypics-a');
} else if (isloggedin()) {
- // logged in not owner gets "your albums", "page owners albums", "page owner's friends albums"
+ // logged in not owner gets "your albums", "page owners albums", "page owner's friends albums", "page owner's most viewed", "page owner's most recent"
add_submenu_item( elgg_echo("album:yours"),
$CONFIG->wwwroot . "pg/photos/owned/" . $_SESSION['user']->username,
- 'tidypics' );
+ 'tidypics-b' );
+ add_submenu_item( elgg_echo('tidypics:yourmostviewed'),
+ $CONFIG->wwwroot . 'pg/photos/yourmostviewed',
+ 'tidypics-b');
+
+ add_submenu_item( elgg_echo('tidypics:yourmostrecent'),
+ $CONFIG->wwwroot . 'pg/photos/yourmostrecent',
+ 'tidypics-b');
+
if($page_owner->name) { // check to make sure the owner set their display name
add_submenu_item( sprintf(elgg_echo("album:user"), $page_owner->name),
$CONFIG->wwwroot . "pg/photos/owned/" . $page_owner->username,
- 'tidypics' );
+ 'tidypics-a' );
add_submenu_item( sprintf(elgg_echo('album:friends'),$page_owner->name),
$CONFIG->wwwroot . "pg/photos/friends/". $page_owner->username,
- 'tidypics');
+ 'tidypics-a');
+ add_submenu_item( sprintf(elgg_echo('tidypics:friendmostviewed'),$page_owner->name),
+ $CONFIG->wwwroot . "pg/photos/friendmostviewed/". $page_owner->username,
+ 'tidypics-a');
+ add_submenu_item( sprintf(elgg_echo('tidypics:friendmostrecent'),$page_owner->name),
+ $CONFIG->wwwroot . "pg/photos/friendmostrecent/". $page_owner->username,
+ 'tidypics-a');
}
} else if ($page_owner->guid) {
// non logged in user gets "page owners albums", "page owner's friends albums"
@@ -111,13 +133,14 @@
add_submenu_item( sprintf(elgg_echo('album:all'),$page_owner->name),
$CONFIG->wwwroot . "pg/photos/world/",
- 'tidypics');
+ 'tidypics-z');
add_submenu_item( elgg_echo('tidypics:mostviewed'),
$CONFIG->wwwroot . 'pg/photos/mostviewed',
- 'tidypics');
+ 'tidypics-z');
add_submenu_item( elgg_echo('tidypics:mostrecent'),
$CONFIG->wwwroot . 'pg/photos/mostrecent',
- 'tidypics');
+ 'tidypics-z');
+
}
}
@@ -193,6 +216,26 @@
if (isset($page[1])) set_input('guid',$page[1]);
include($CONFIG->pluginspath . "tidypics/mostrecentimages.php");
break;
+
+ case "yourmostviewed":
+ if (isset($page[1])) set_input('guid',$page[1]);
+ include($CONFIG->pluginspath . "tidypics/yourmostviewed.php");
+ break;
+
+ case "yourmostrecent":
+ if (isset($page[1])) set_input('guid',$page[1]);
+ include($CONFIG->pluginspath . "tidypics/yourmostrecent.php");
+ break;
+
+ case "friendmostviewed":
+ if (isset($page[1])) set_input('guid',$page[1]);
+ include($CONFIG->pluginspath . "tidypics/friendmostviewed.php");
+ break;
+
+ case "friendmostrecent":
+ if (isset($page[1])) set_input('guid',$page[1]);
+ include($CONFIG->pluginspath . "tidypics/friendmostrecent.php");
+ break;
}
}
else
diff --git a/yourmostrecent.php b/yourmostrecent.php
new file mode 100644
index 000000000..68c83cd7e
--- /dev/null
+++ b/yourmostrecent.php
@@ -0,0 +1,33 @@
+<?php
+ /**
+ * Tidypics Friends Albums Listing
+ *
+ */
+
+ include_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
+
+ $viewer = get_loggedin_user();
+ $prefix = "my_elgg"; //how do you get the global default?
+ $max = 24;
+ //grab the top views (metadata 'tp_views') for $max number of entities
+ //ignores entity subtypes
+
+ $sql = "SELECT ent.guid as entity_guid FROM " . $prefix . "entities ent
+ INNER JOIN " . $prefix . "entity_subtypes sub ON ent.subtype = sub.id AND sub.subtype = 'image'
+ WHERE ent.owner_guid = " . $viewer->guid . "
+ ORDER BY ent.guid DESC
+ LIMIT $max";
+
+ $result = get_data($sql);
+ $entities = array();
+ foreach($result as $entity) {
+ $entities[] = get_entity($entity->entity_guid);
+ }
+
+ $title = elgg_echo("tidypics:yourmostrecent");
+ $area2 = elgg_view_title($title);
+ $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
diff --git a/yourmostviewed.php b/yourmostviewed.php
new file mode 100644
index 000000000..193464c04
--- /dev/null
+++ b/yourmostviewed.php
@@ -0,0 +1,36 @@
+<?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(__FILE__))) . "/engine/start.php");
+ $viewer = get_loggedin_user();
+
+ $prefix = "my_elgg"; //how do you get the global default?
+ $max = 24;
+ //grab the top views (metadata 'tp_views') for $max number of entities
+ //ignores entity subtypes
+ $sql = "SELECT md.entity_guid, md.owner_guid, md.enabled, ms.string AS views from " . $prefix . "entities ent
+ INNER JOIN " . $prefix . "metadata md ON md.entity_guid = ent.guid
+ INNER JOIN " . $prefix . "metastrings ms ON md.value_id = ms.id
+ INNER JOIN " . $prefix . "metastrings ms2 ON md.name_id = ms2.id AND ms2.string = 'tp_views'
+ WHERE ent.owner_guid = " . $viewer->guid . "
+ ORDER BY views DESC LIMIT $max";
+
+ $result = get_data($sql);
+
+ $entities = array();
+ foreach($result as $entity) {
+ $entities[] = get_entity($entity->entity_guid);
+ }
+
+ $title = elgg_echo("tidypics:yourmostviewed");
+ $area2 = elgg_view_title($title);
+ $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