diff options
author | Greg Froese <greg.froese@gmail.com> | 2009-05-11 15:04:43 +0000 |
---|---|---|
committer | Greg Froese <greg.froese@gmail.com> | 2009-05-11 15:04:43 +0000 |
commit | 501af5b28c7fb2ec36658df16849572c14d050a4 (patch) | |
tree | b2f325c2292d2628cc2239c018b10f62641818e5 | |
parent | 5bce7bbbf5ede5b6e4a2db367ba995c33ea4e458 (diff) | |
download | elgg-501af5b28c7fb2ec36658df16849572c14d050a4.tar.gz elgg-501af5b28c7fb2ec36658df16849572c14d050a4.tar.bz2 |
added most viewed and recent for friends and 'yourss'
-rw-r--r-- | friendmostrecent.php | 44 | ||||
-rw-r--r-- | friendmostviewed.php | 55 | ||||
-rw-r--r-- | languages/en.php | 4 | ||||
-rw-r--r-- | start.php | 65 | ||||
-rw-r--r-- | yourmostrecent.php | 33 | ||||
-rw-r--r-- | yourmostviewed.php | 36 |
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
@@ -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 |