From 501af5b28c7fb2ec36658df16849572c14d050a4 Mon Sep 17 00:00:00 2001 From: Greg Froese Date: Mon, 11 May 2009 15:04:43 +0000 Subject: added most viewed and recent for friends and 'yourss' --- friendmostrecent.php | 44 +++++++++++++++++++++++++++++++++++ friendmostviewed.php | 55 ++++++++++++++++++++++++++++++++++++++++++++ languages/en.php | 4 ++++ start.php | 65 +++++++++++++++++++++++++++++++++++++++++++--------- yourmostrecent.php | 33 ++++++++++++++++++++++++++ yourmostviewed.php | 36 +++++++++++++++++++++++++++++ 6 files changed, 226 insertions(+), 11 deletions(-) create mode 100644 friendmostrecent.php create mode 100644 friendmostviewed.php create mode 100644 yourmostrecent.php create mode 100644 yourmostviewed.php diff --git a/friendmostrecent.php b/friendmostrecent.php new file mode 100644 index 000000000..9c6eb8ed0 --- /dev/null +++ b/friendmostrecent.php @@ -0,0 +1,44 @@ +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 @@ +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 @@ +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 @@ +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 -- cgit v1.2.3