aboutsummaryrefslogtreecommitdiff
path: root/pages
diff options
context:
space:
mode:
Diffstat (limited to 'pages')
-rw-r--r--pages/account/forgotten_password.php22
-rw-r--r--pages/account/login.php20
-rw-r--r--pages/account/register.php53
-rw-r--r--pages/account/reset_password.php35
-rw-r--r--pages/avatar/edit.php27
-rw-r--r--pages/avatar/view.php54
-rw-r--r--pages/entities/index.php56
-rw-r--r--pages/friends/collections/add.php22
-rw-r--r--pages/friends/collections/pickercallback.php59
-rw-r--r--pages/friends/collections/view.php21
-rw-r--r--pages/friends/index.php35
-rw-r--r--pages/friends/of.php35
-rw-r--r--pages/lists/highestrated.php65
-rw-r--r--pages/lists/highestvotecount.php50
-rw-r--r--pages/lists/mostcommentedimages.php42
-rw-r--r--pages/lists/mostcommentedimagesthismonth.php50
-rw-r--r--pages/lists/mostcommentedimagestoday.php50
-rw-r--r--pages/lists/mostrecentimages.php56
-rw-r--r--pages/lists/mostviewedimages.php79
-rw-r--r--pages/lists/mostviewedimageslastmonth.php50
-rw-r--r--pages/lists/mostviewedimagesthismonth.php50
-rw-r--r--pages/lists/mostviewedimagesthisyear.php50
-rw-r--r--pages/lists/mostviewedimagestoday.php50
-rw-r--r--pages/lists/recentlycommented.php61
-rw-r--r--pages/lists/recentlyviewed.php60
-rw-r--r--pages/lists/recentvotes.php52
-rw-r--r--pages/photos/album/add.php34
-rw-r--r--pages/photos/album/edit.php48
-rw-r--r--pages/photos/album/sort.php56
-rw-r--r--pages/photos/album/view.php63
-rw-r--r--pages/photos/all.php38
-rw-r--r--pages/photos/batch/edit.php44
-rw-r--r--pages/photos/friends.php34
-rw-r--r--pages/photos/image/download.php41
-rw-r--r--pages/photos/image/edit.php54
-rw-r--r--pages/photos/image/thumbnail.php38
-rw-r--r--pages/photos/image/upload.php64
-rw-r--r--pages/photos/image/view.php61
-rw-r--r--pages/photos/owner.php56
-rw-r--r--pages/profile/edit.php32
-rw-r--r--pages/river.php60
-rw-r--r--pages/settings/account.php27
-rw-r--r--pages/settings/statistics.php27
-rw-r--r--pages/settings/tools.php28
44 files changed, 613 insertions, 1396 deletions
diff --git a/pages/account/forgotten_password.php b/pages/account/forgotten_password.php
new file mode 100644
index 000000000..bf6ef87e0
--- /dev/null
+++ b/pages/account/forgotten_password.php
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Assembles and outputs the forgotten password page.
+ *
+ * @package Elgg.Core
+ * @subpackage Registration
+ */
+
+if (elgg_is_logged_in()) {
+ forward();
+}
+
+$title = elgg_echo("user:password:lost");
+$content = elgg_view_title($title);
+
+$content .= elgg_view_form('user/requestnewpassword', array(
+ 'class' => 'elgg-form-account',
+));
+
+$body = elgg_view_layout("one_column", array('content' => $content));
+
+echo elgg_view_page($title, $body);
diff --git a/pages/account/login.php b/pages/account/login.php
new file mode 100644
index 000000000..14f65cc3f
--- /dev/null
+++ b/pages/account/login.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Assembles and outputs a login page.
+ *
+ * This page serves as a fallback for non-JS users who click on the login
+ * drop down link.
+ *
+ * If the user is logged in, this page will forward to the front page.
+ *
+ * @package Elgg.Core
+ * @subpackage Accounts
+ */
+
+if (elgg_is_logged_in()) {
+ forward('');
+}
+
+$login_box = elgg_view('core/account/login_box');
+$content = elgg_view_layout('one_column', array('content' => $login_box));
+echo elgg_view_page(elgg_echo('login'), $content);
diff --git a/pages/account/register.php b/pages/account/register.php
new file mode 100644
index 000000000..cf18a635b
--- /dev/null
+++ b/pages/account/register.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Assembles and outputs the registration page.
+ *
+ * Since 1.8, registration can be disabled via administration. If this is
+ * the case, calls to this page will forward to the network front page.
+ *
+ * If the user is logged in, this page will forward to the network
+ * front page.
+ *
+ * @package Elgg.Core
+ * @subpackage Registration
+ */
+
+// check new registration allowed
+if (elgg_get_config('allow_registration') == false) {
+ register_error(elgg_echo('registerdisabled'));
+ forward();
+}
+
+$friend_guid = (int) get_input('friend_guid', 0);
+$invitecode = get_input('invitecode');
+
+// only logged out people need to register
+if (elgg_is_logged_in()) {
+ forward();
+}
+
+$title = elgg_echo("register");
+
+$content = elgg_view_title($title);
+
+// create the registration url - including switching to https if configured
+$register_url = elgg_get_site_url() . 'action/register';
+if (elgg_get_config('https_login')) {
+ $register_url = str_replace("http:", "https:", $register_url);
+}
+$form_params = array(
+ 'action' => $register_url,
+ 'class' => 'elgg-form-account',
+);
+
+$body_params = array(
+ 'friend_guid' => $friend_guid,
+ 'invitecode' => $invitecode
+);
+$content .= elgg_view_form('register', $form_params, $body_params);
+
+$content .= elgg_view('help/register');
+
+$body = elgg_view_layout("one_column", array('content' => $content));
+
+echo elgg_view_page($title, $body);
diff --git a/pages/account/reset_password.php b/pages/account/reset_password.php
new file mode 100644
index 000000000..6515bfc5d
--- /dev/null
+++ b/pages/account/reset_password.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Page for resetting a forgotten password
+ *
+ * @package Elgg.Core
+ * @subpackage Registration
+ */
+
+if (elgg_is_logged_in()) {
+ forward();
+}
+
+$user_guid = get_input('u');
+$code = get_input('c');
+
+$user = get_entity($user_guid);
+
+// don't check code here to avoid automated attacks
+if (!$user instanceof ElggUser) {
+ register_error(elgg_echo('user:passwordreset:unknown_user'));
+ forward();
+}
+
+$params = array(
+ 'guid' => $user_guid,
+ 'code' => $code,
+);
+$form = elgg_view_form('user/passwordreset', array('class' => 'elgg-form-account'), $params);
+
+$title = elgg_echo('resetpassword');
+$content = elgg_view_title(elgg_echo('resetpassword')) . $form;
+
+$body = elgg_view_layout('one_column', array('content' => $content));
+
+echo elgg_view_page($title, $body);
diff --git a/pages/avatar/edit.php b/pages/avatar/edit.php
new file mode 100644
index 000000000..c71633b8b
--- /dev/null
+++ b/pages/avatar/edit.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Upload and crop an avatar page
+ */
+
+// Only logged in users
+gatekeeper();
+
+elgg_set_context('profile_edit');
+
+$title = elgg_echo('avatar:edit');
+
+$entity = elgg_get_page_owner_entity();
+$content = elgg_view('core/avatar/upload', array('entity' => $entity));
+
+// only offer the crop view if an avatar has been uploaded
+if (isset($entity->icontime)) {
+ $content .= elgg_view('core/avatar/crop', array('entity' => $entity));
+}
+
+$params = array(
+ 'content' => $content,
+ 'title' => $title,
+);
+$body = elgg_view_layout('one_sidebar', $params);
+
+echo elgg_view_page($title, $body);
diff --git a/pages/avatar/view.php b/pages/avatar/view.php
new file mode 100644
index 000000000..10d81fef1
--- /dev/null
+++ b/pages/avatar/view.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ * View an avatar
+ */
+
+// page owner library sets this based on URL
+$user = elgg_get_page_owner_entity();
+
+// Get the size
+$size = strtolower(get_input('size'));
+if (!in_array($size, array('master', 'large', 'medium', 'small', 'tiny', 'topbar'))) {
+ $size = 'medium';
+}
+
+// If user doesn't exist, return default icon
+if (!$user) {
+ $url = "_graphics/icons/default/{$size}.png";
+ $url = elgg_normalize_url($url);
+ forward($url);
+}
+
+$user_guid = $user->getGUID();
+
+// Try and get the icon
+$filehandler = new ElggFile();
+$filehandler->owner_guid = $user_guid;
+$filehandler->setFilename("profile/{$user_guid}{$size}.jpg");
+
+$success = false;
+
+try {
+ if ($filehandler->open("read")) {
+ if ($contents = $filehandler->read($filehandler->size())) {
+ $success = true;
+ }
+ }
+} catch (InvalidParameterException $e) {
+ elgg_log("Unable to get avatar for user with GUID $user_guid", 'ERROR');
+}
+
+
+if (!$success) {
+ $url = "_graphics/icons/default/{$size}.png";
+ $url = elgg_normalize_url($url);
+ forward($url);
+}
+
+header("Content-type: image/jpeg", true);
+header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', strtotime("+6 months")), true);
+header("Pragma: public", true);
+header("Cache-Control: public", true);
+header("Content-Length: " . strlen($contents));
+
+echo $contents;
diff --git a/pages/entities/index.php b/pages/entities/index.php
new file mode 100644
index 000000000..e73d65db4
--- /dev/null
+++ b/pages/entities/index.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Generic entity viewer
+ * Given a GUID, this page will try and display any entity
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+
+// Get the GUID of the entity we want to view
+$guid = (int) get_input('guid');
+$shell = get_input('shell');
+if ($shell == "no") {
+ $shell = false;
+} else {
+ $shell = true;
+}
+
+$context = get_input('context');
+if ($context) {
+ elgg_set_context($context);
+}
+
+// Get the entity, if possible
+if ($entity = get_entity($guid)) {
+ if ($entity->container_guid) {
+ elgg_set_page_owner_guid($entity->container_guid);
+ } else {
+ elgg_set_page_owner_guid($entity->owner_guid);
+ }
+
+ // Set the body to be the full view of the entity, and the title to be its title
+ if ($entity instanceof ElggObject) {
+ $title = $entity->title;
+ } else if ($entity instanceof ElggEntity) {
+ $title = $entity->name;
+ }
+ $area1 = elgg_view_entity($entity, array('full_view' => true));
+ if ($shell) {
+ $body = elgg_view_layout('one_column', array('content' => $area1));
+ } else {
+ $body = $area1;
+ }
+} else {
+ $body = elgg_echo('notfound');
+}
+
+// Display the page
+if ($shell) {
+ echo elgg_view_page($title, $body);
+} else {
+ header("Content-type: text/html; charset=UTF-8");
+ echo $title;
+ echo $body;
+} \ No newline at end of file
diff --git a/pages/friends/collections/add.php b/pages/friends/collections/add.php
new file mode 100644
index 000000000..60f7586ba
--- /dev/null
+++ b/pages/friends/collections/add.php
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Elgg add a collection of friends
+ *
+ * @package Elgg.Core
+ * @subpackage Social.Collections
+ */
+
+// You need to be logged in for this one
+gatekeeper();
+
+$title = elgg_echo('friends:collections:add');
+
+$content = elgg_view_title($title);
+
+$content .= elgg_view_form('friends/collections/add', array(), array(
+ 'friends' => get_user_friends(elgg_get_logged_in_user_guid(), "", 9999),
+));
+
+$body = elgg_view_layout('one_sidebar', array('content' => $content));
+
+echo elgg_view_page(elgg_echo('friends:collections:add'), $body);
diff --git a/pages/friends/collections/pickercallback.php b/pages/friends/collections/pickercallback.php
new file mode 100644
index 000000000..c6ed61cf0
--- /dev/null
+++ b/pages/friends/collections/pickercallback.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Elgg friends picker callback
+ *
+ * @package Elgg.Core
+ * @subpackage Social.Collections
+ */
+
+// Load Elgg engine
+require_once(dirname(dirname(dirname(dirname(__FILE__)))) . "/engine/start.php");
+
+$site_url = elgg_get_site_url();
+
+// Get callback type (list or picker)
+$type = get_input('type', 'picker');
+
+$collection = (int) get_input('collection', 0);
+$members = get_members_of_access_collection($collection, true);
+if (!$members) {
+ $members = array();
+}
+
+$friendspicker = (int) get_input('friendspicker', 0);
+
+// Get page owner (bomb out if there isn't one)
+$pageowner = elgg_get_page_owner_entity();
+if (!$pageowner) {
+ forward();
+ exit;
+}
+
+// Depending on the view type, launch a different view
+switch($type) {
+ case 'list':
+ $js_segment = elgg_view('core/friends/tablelistcountupdate', array(
+ 'friendspicker' => $friendspicker,
+ 'count' => sizeof($members),
+ ));
+ $content = elgg_view('core/friends/tablelist', array(
+ 'entities' => $members,
+ 'content' => $js_segment,
+ ));
+ break;
+ default:
+ $friends = $pageowner->getFriends('', 9999);
+
+ $content = elgg_view('input/friendspicker', array(
+ 'entities' => $friends,
+ 'value' => $members,
+ 'callback' => true,
+ 'friendspicker' => $friendspicker,
+ 'collection_id' => $collection,
+ 'formtarget' => $site_url . 'action/friends/collections/edit',
+ ));
+ break;
+}
+
+// Output the content
+echo $content; \ No newline at end of file
diff --git a/pages/friends/collections/view.php b/pages/friends/collections/view.php
new file mode 100644
index 000000000..0d72fe788
--- /dev/null
+++ b/pages/friends/collections/view.php
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Elgg collections of friends
+ *
+ * @package Elgg.Core
+ * @subpackage Social.Collections
+ */
+
+$title = elgg_echo('friends:collections');
+elgg_register_title_button('collections', 'add');
+
+$content = elgg_view_access_collections(elgg_get_logged_in_user_guid());
+
+$body = elgg_view_layout('content', array(
+ 'filter' => false,
+ 'content' => $content,
+ 'title' => $title,
+ 'context' => 'collections',
+));
+
+echo elgg_view_page($title, $body);
diff --git a/pages/friends/index.php b/pages/friends/index.php
new file mode 100644
index 000000000..63518a413
--- /dev/null
+++ b/pages/friends/index.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Elgg friends page
+ *
+ * @package Elgg.Core
+ * @subpackage Social.Friends
+ */
+
+$owner = elgg_get_page_owner_entity();
+if (!$owner) {
+ // unknown user so send away (@todo some sort of 404 error)
+ forward();
+}
+
+$title = elgg_echo("friends:owned", array($owner->name));
+
+$options = array(
+ 'relationship' => 'friend',
+ 'relationship_guid' => $owner->getGUID(),
+ 'inverse_relationship' => FALSE,
+ 'type' => 'user',
+ 'full_view' => FALSE
+);
+$content = elgg_list_entities_from_relationship($options);
+if (!$content) {
+ $content = elgg_echo('friends:none');
+}
+
+$params = array(
+ 'content' => $content,
+ 'title' => $title,
+);
+$body = elgg_view_layout('one_sidebar', $params);
+
+echo elgg_view_page($title, $body);
diff --git a/pages/friends/of.php b/pages/friends/of.php
new file mode 100644
index 000000000..aa9ee8bee
--- /dev/null
+++ b/pages/friends/of.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Elgg friends of page
+ *
+ * @package Elgg.Core
+ * @subpackage Social.Friends
+ */
+
+$owner = elgg_get_page_owner_entity();
+if (!$owner) {
+ // unknown user so send away (@todo some sort of 404 error)
+ forward();
+}
+
+$title = elgg_echo("friends:of:owned", array($owner->name));
+
+$options = array(
+ 'relationship' => 'friend',
+ 'relationship_guid' => $owner->getGUID(),
+ 'inverse_relationship' => TRUE,
+ 'type' => 'user',
+ 'full_view' => FALSE
+);
+$content = elgg_list_entities_from_relationship($options);
+if (!$content) {
+ $content = elgg_echo('friends:none');
+}
+
+$params = array(
+ 'content' => $content,
+ 'title' => $title,
+);
+$body = elgg_view_layout('one_sidebar', $params);
+
+echo elgg_view_page($title, $body);
diff --git a/pages/lists/highestrated.php b/pages/lists/highestrated.php
deleted file mode 100644
index e05e7a9ba..000000000
--- a/pages/lists/highestrated.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?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/pages/lists/highestvotecount.php b/pages/lists/highestvotecount.php
deleted file mode 100644
index 26b907144..000000000
--- a/pages/lists/highestvotecount.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?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/pages/lists/mostcommentedimages.php b/pages/lists/mostcommentedimages.php
deleted file mode 100644
index 0a4eb9622..000000000
--- a/pages/lists/mostcommentedimages.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?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/pages/lists/mostcommentedimagesthismonth.php b/pages/lists/mostcommentedimagesthismonth.php
deleted file mode 100644
index d95e2aff5..000000000
--- a/pages/lists/mostcommentedimagesthismonth.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?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/pages/lists/mostcommentedimagestoday.php b/pages/lists/mostcommentedimagestoday.php
deleted file mode 100644
index bd1a0cbec..000000000
--- a/pages/lists/mostcommentedimagestoday.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?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/pages/lists/mostrecentimages.php b/pages/lists/mostrecentimages.php
deleted file mode 100644
index 83ec3e988..000000000
--- a/pages/lists/mostrecentimages.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?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/pages/lists/mostviewedimages.php b/pages/lists/mostviewedimages.php
deleted file mode 100644
index c113c39e2..000000000
--- a/pages/lists/mostviewedimages.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?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/pages/lists/mostviewedimageslastmonth.php b/pages/lists/mostviewedimageslastmonth.php
deleted file mode 100644
index 1ed9161f7..000000000
--- a/pages/lists/mostviewedimageslastmonth.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?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/pages/lists/mostviewedimagesthismonth.php b/pages/lists/mostviewedimagesthismonth.php
deleted file mode 100644
index bfe08e1da..000000000
--- a/pages/lists/mostviewedimagesthismonth.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?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/pages/lists/mostviewedimagesthisyear.php b/pages/lists/mostviewedimagesthisyear.php
deleted file mode 100644
index fe1a63d38..000000000
--- a/pages/lists/mostviewedimagesthisyear.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?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/pages/lists/mostviewedimagestoday.php b/pages/lists/mostviewedimagestoday.php
deleted file mode 100644
index f8e844753..000000000
--- a/pages/lists/mostviewedimagestoday.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?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/pages/lists/recentlycommented.php b/pages/lists/recentlycommented.php
deleted file mode 100644
index 08f69603a..000000000
--- a/pages/lists/recentlycommented.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?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/pages/lists/recentlyviewed.php b/pages/lists/recentlyviewed.php
deleted file mode 100644
index 851804e99..000000000
--- a/pages/lists/recentlyviewed.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?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/pages/lists/recentvotes.php b/pages/lists/recentvotes.php
deleted file mode 100644
index 3d8eac97e..000000000
--- a/pages/lists/recentvotes.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?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
diff --git a/pages/photos/album/add.php b/pages/photos/album/add.php
deleted file mode 100644
index d34d39177..000000000
--- a/pages/photos/album/add.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/**
- * Create new album page
- *
- * @author Cash Costello
- * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
- */
-
-$owner = elgg_get_page_owner_entity();
-
-gatekeeper();
-group_gatekeeper();
-
-$title = elgg_echo('photos:add');
-
-// set up breadcrumbs
-elgg_push_breadcrumb(elgg_echo('photos'), "photos/all");
-if (elgg_instanceof($owner, 'user')) {
- elgg_push_breadcrumb($owner->name, "photos/owner/$owner->username");
-} else {
- elgg_push_breadcrumb($owner->name, "photos/group/$owner->guid/all");
-}
-elgg_push_breadcrumb($title);
-
-$vars = tidypics_prepare_form_vars();
-$content = elgg_view_form('photos/album/save', array('method' => 'post'), $vars);
-
-$body = elgg_view_layout('content', array(
- 'content' => $content,
- 'title' => $title,
- 'filter' => '',
-));
-
-echo elgg_view_page($title, $body);
diff --git a/pages/photos/album/edit.php b/pages/photos/album/edit.php
deleted file mode 100644
index 7efb05ce1..000000000
--- a/pages/photos/album/edit.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/**
- * Edit an album
- *
- * @author Cash Costello
- * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
- */
-
-$guid = (int) get_input('guid');
-
-if (!$entity = get_entity($guid)) {
- // @todo either deleted or do not have access
- forward('photos/all');
-}
-
-if (!$entity->canEdit()) {
- // @todo cannot change it
- forward('photos/all');
-}
-
-elgg_set_page_owner_guid($entity->getContainerGUID());
-$owner = elgg_get_page_owner_entity();
-
-gatekeeper();
-group_gatekeeper();
-
-$title = elgg_echo('album:edit');
-
-// set up breadcrumbs
-elgg_push_breadcrumb(elgg_echo('photos'), "photos/all");
-if (elgg_instanceof($owner, 'user')) {
- elgg_push_breadcrumb($owner->name, "photos/owner/$owner->username");
-} else {
- elgg_push_breadcrumb($owner->name, "photos/group/$owner->guid/all");
-}
-elgg_push_breadcrumb($entity->getTitle(), $entity->getURL());
-elgg_push_breadcrumb($title);
-
-$vars = tidypics_prepare_form_vars($entity);
-$content = elgg_view_form('photos/album/save', array('method' => 'post'), $vars);
-
-$body = elgg_view_layout('content', array(
- 'content' => $content,
- 'title' => $title,
- 'filter' => '',
-));
-
-echo elgg_view_page($title, $body);
diff --git a/pages/photos/album/sort.php b/pages/photos/album/sort.php
deleted file mode 100644
index 005205dd5..000000000
--- a/pages/photos/album/sort.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-/**
- * Album sort page
- *
- * This displays a listing of all the photos so that they can be sorted
- */
-
-gatekeeper();
-group_gatekeeper();
-
-// get the album entity
-$album_guid = (int) get_input('guid');
-$album = get_entity($album_guid);
-
-// panic if we can't get it
-if (!$album) {
- forward();
-}
-
-// container should always be set, but just in case
-$owner = $album->getContainerEntity();
-elgg_set_page_owner_guid($owner->getGUID());
-
-$title = elgg_echo('tidypics:sort', array($album->getTitle()));
-
-// set up breadcrumbs
-elgg_push_breadcrumb(elgg_echo('photos'), 'photos/all');
-if (elgg_instanceof($owner, 'group')) {
- elgg_push_breadcrumb($owner->name, "photos/group/$owner->guid/all");
-} else {
- elgg_push_breadcrumb($owner->name, "photos/owner/$owner->username");
-}
-elgg_push_breadcrumb($album->getTitle(), $album->getURL());
-elgg_push_breadcrumb(elgg_echo('album:sort'));
-
-elgg_register_menu_item('title', array(
- 'name' => 'upload',
- 'href' => 'photos/upload/' . $album->getGUID(),
- 'text' => elgg_echo('images:upload'),
- 'link_class' => 'elgg-button elgg-button-action',
-));
-
-if ($album->getSize()) {
- $content = elgg_view_form('photos/album/sort', array(), array('album' => $album));
-} else {
- $content = elgg_echo('tidypics:sort:no_images');
-}
-
-$body = elgg_view_layout('content', array(
- 'filter' => false,
- 'content' => $content,
- 'title' => $title,
- 'sidebar' => elgg_view('tidypics/sidebar', array('page' => 'album')),
-));
-
-echo elgg_view_page($title, $body);
diff --git a/pages/photos/album/view.php b/pages/photos/album/view.php
deleted file mode 100644
index 6e111ab98..000000000
--- a/pages/photos/album/view.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-/**
- * This displays the photos that belong to an album
- *
- * @author Cash Costello
- * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
- */
-
-group_gatekeeper();
-
-// get the album entity
-$album_guid = (int) get_input('guid');
-$album = get_entity($album_guid);
-if (!$album) {
- register_error(elgg_echo('noaccess'));
- $_SESSION['last_forward_from'] = current_page_url();
- forward('');
-}
-
-elgg_set_page_owner_guid($album->getContainerGUID());
-$owner = elgg_get_page_owner_entity();
-
-$title = elgg_echo($album->getTitle());
-
-// set up breadcrumbs
-elgg_push_breadcrumb(elgg_echo('photos'), 'photos/all');
-if (elgg_instanceof($owner, 'group')) {
- elgg_push_breadcrumb($owner->name, "photos/group/$owner->guid/all");
-} else {
- elgg_push_breadcrumb($owner->name, "photos/owner/$owner->username");
-}
-elgg_push_breadcrumb($album->getTitle());
-
-$content = elgg_view_entity($album, array('full_view' => true));
-
-if ($album->getContainerEntity()->canWriteToContainer()) {
- elgg_register_menu_item('title', array(
- 'name' => 'upload',
- 'href' => 'photos/upload/' . $album->getGUID(),
- 'text' => elgg_echo('images:upload'),
- 'link_class' => 'elgg-button elgg-button-action',
- ));
-}
-
-// only show sort button if there are images
-if ($album->canEdit() && $album->getSize() > 0) {
- elgg_register_menu_item('title', array(
- 'name' => 'sort',
- 'href' => "photos/sort/" . $album->getGUID(),
- 'text' => elgg_echo('album:sort'),
- 'link_class' => 'elgg-button elgg-button-action',
- 'priority' => 200,
- ));
-}
-
-$body = elgg_view_layout('content', array(
- 'filter' => false,
- 'content' => $content,
- 'title' => $album->getTitle(),
- 'sidebar' => elgg_view('tidypics/sidebar', array('page' => 'album')),
-));
-
-echo elgg_view_page($title, $body);
diff --git a/pages/photos/all.php b/pages/photos/all.php
deleted file mode 100644
index aef7f11c6..000000000
--- a/pages/photos/all.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-/**
- * View all albums on the site
- *
- * @author Cash Costello
- * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
- */
-
-elgg_push_breadcrumb(elgg_echo('photos'));
-
-$num_albums = 16;
-
-$offset = (int)get_input('offset', 0);
-$content = elgg_list_entities(array(
- 'type' => 'object',
- 'subtype' => 'album',
- 'limit' => $num_albums,
- 'full_view' => false,
- 'list_type' => 'gallery',
- 'list_type_toggle' => false,
- 'gallery_class' => 'tidypics-gallery',
-));
-if (!$content) {
- $content = elgg_echo('tidypics:none');
-}
-
-$title = elgg_echo('album:all');
-
-elgg_register_title_button('photos');
-
-$body = elgg_view_layout('content', array(
- 'filter_context' => 'all',
- 'content' => $content,
- 'title' => $title,
- 'sidebar' => elgg_view('tidypics/sidebar', array('page' => 'all')),
-));
-
-echo elgg_view_page($title, $body);
diff --git a/pages/photos/batch/edit.php b/pages/photos/batch/edit.php
deleted file mode 100644
index ca9a55b18..000000000
--- a/pages/photos/batch/edit.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * Edit the image information for a batch of images
- *
- * @author Cash Costello
- * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
- */
-
-gatekeeper();
-
-$guid = (int) get_input('guid');
-
-if (!$batch = get_entity($guid)) {
- // @todo either deleted or do not have access
- forward('photos/all');
-}
-
-if (!$batch->canEdit()) {
- // @todo cannot change it
- forward('photos/all');
-}
-
-$album = $batch->getContainerEntity();
-
-elgg_set_page_owner_guid($batch->getContainerEntity()->getContainerGUID());
-$owner = elgg_get_page_owner_entity();
-
-$title = elgg_echo('tidypics:editprops');
-
-elgg_push_breadcrumb(elgg_echo('photos'), "photos/all");
-elgg_push_breadcrumb($owner->name, "photos/owner/$owner->username");
-elgg_push_breadcrumb($album->getTitle(), $album->getURL());
-elgg_push_breadcrumb($title);
-
-$content = elgg_view_form('photos/batch/edit', array(), array('batch' => $batch));
-
-$body = elgg_view_layout('content', array(
- 'filter' => false,
- 'content' => $content,
- 'title' => elgg_echo('tidypics:editprops'),
- 'sidebar' => elgg_view('tidypics/sidebar', array('page' => 'album')),
-));
-
-echo elgg_view_page($title, $body);
diff --git a/pages/photos/friends.php b/pages/photos/friends.php
deleted file mode 100644
index e6ac49cc6..000000000
--- a/pages/photos/friends.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/**
- * List all the albums of someone's friends
- *
- * @author Cash Costello
- * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
- */
-
-$owner = elgg_get_page_owner_entity();
-
-elgg_push_breadcrumb(elgg_echo('photos'), "photos/all");
-elgg_push_breadcrumb($owner->name, "photos/friends/$owner->username");
-elgg_push_breadcrumb(elgg_echo('friends'));
-
-$title = elgg_echo('album:friends');
-
-
-$num_albums = 16;
-
-set_input('list_type', 'gallery');
-$content = list_user_friends_objects($owner->guid, 'album', $num_albums, false);
-if (!$content) {
- $content = elgg_echo('tidypics:none');
-}
-
-elgg_register_title_button();
-
-$body = elgg_view_layout('content', array(
- 'filter_context' => 'friends',
- 'content' => $content,
- 'title' => $title,
-));
-
-echo elgg_view_page($title, $body);
diff --git a/pages/photos/image/download.php b/pages/photos/image/download.php
deleted file mode 100644
index ef47b7638..000000000
--- a/pages/photos/image/download.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/**
- * Download a photo
- *
- * @author Cash Costello
- * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
- */
-
-$guid = (int) get_input('guid');
-$image = get_entity($guid);
-
-$disposition = get_input('disposition', 'attachment');
-
-if ($image) {
- $filename = $image->originalfilename;
- $mime = $image->mimetype;
-
- header("Content-Type: $mime");
- header("Content-Disposition: $disposition; filename=\"$filename\"");
-
- $contents = $image->grabFile();
-
- if (empty($contents)) {
- echo file_get_contents(dirname(dirname(__FILE__)) . "/graphics/image_error_large.png" );
- } else {
-
- // expires every 60 days
- $expires = 60 * 60*60*24;
-
- header("Content-Length: " . strlen($contents));
- header("Cache-Control: public", true);
- header("Pragma: public", true);
- header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT', true);
-
- echo $contents;
- }
-
- exit;
-} else {
- register_error(elgg_echo("image:downloadfailed"));
-}
diff --git a/pages/photos/image/edit.php b/pages/photos/image/edit.php
deleted file mode 100644
index 76c1381c9..000000000
--- a/pages/photos/image/edit.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- * Edit an image
- *
- * @author Cash Costello
- * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
- */
-
-$guid = (int) get_input('guid');
-
-if (!$entity = get_entity($guid)) {
- // @todo either deleted or do not have access
- forward('photos/all');
-}
-
-if (!$entity->canEdit()) {
- // @todo cannot change it
- forward($entity->getContainerEntity()->getURL());
-}
-
-$album = $entity->getContainerEntity();
-if (!$album) {
-
-}
-
-elgg_set_page_owner_guid($album->getContainerGUID());
-$owner = elgg_get_page_owner_entity();
-
-gatekeeper();
-group_gatekeeper();
-
-$title = elgg_echo('image:edit');
-
-// set up breadcrumbs
-elgg_push_breadcrumb(elgg_echo('photos'), "photos/all");
-if (elgg_instanceof($owner, 'user')) {
- elgg_push_breadcrumb($owner->name, "photos/owner/$owner->username");
-} else {
- elgg_push_breadcrumb($owner->name, "photos/group/$owner->guid/all");
-}
-elgg_push_breadcrumb($album->getTitle(), $album->getURL());
-elgg_push_breadcrumb($entity->getTitle(), $entity->getURL());
-elgg_push_breadcrumb($title);
-
-$vars = tidypics_prepare_form_vars($entity);
-$content = elgg_view_form('photos/image/save', array('method' => 'post'), $vars);
-
-$body = elgg_view_layout('content', array(
- 'content' => $content,
- 'title' => $title,
- 'filter' => '',
-));
-
-echo elgg_view_page($title, $body);
diff --git a/pages/photos/image/thumbnail.php b/pages/photos/image/thumbnail.php
deleted file mode 100644
index 28fabf7aa..000000000
--- a/pages/photos/image/thumbnail.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-/**
- * Image thumbnail view
- *
- * @author Cash Costello
- * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
- */
-
-$guid = (int) get_input('guid');
-$size = get_input('size');
-$image = get_entity($guid);
-if (!$image) {
- // @todo
-}
-
-if ($size == 'master') {
- $contents = $image->getImage();
-} else {
- $contents = $image->getThumbnail($size);
-}
-if (!$contents) {
- forward("mod/lightpics/graphics/image_error_$size");
-}
-
-// expires every 14 days
-$expires = 14 * 60*60*24;
-
-// overwrite header caused by php session code so images can be cached
-$mime = $image->getMimeType();
-header("Content-Type: $mime");
-header("Content-Length: " . strlen($contents));
-header("Cache-Control: public", true);
-header("Pragma: public", true);
-header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT', true);
-
-// Return the thumbnail and exit
-echo $contents;
-exit;
diff --git a/pages/photos/image/upload.php b/pages/photos/image/upload.php
deleted file mode 100644
index c8e57038c..000000000
--- a/pages/photos/image/upload.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-/**
- * Upload images
- *
- * @author Cash Costello
- * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
- */
-
-gatekeeper();
-
-$album_guid = (int) get_input('guid');
-if (!$album_guid) {
- // @todo
- forward();
-}
-
-$album = get_entity($album_guid);
-if (!$album) {
- // @todo
- // throw warning and forward to previous page
- forward(REFERER);
-}
-
-if (!$album->getContainerEntity()->canWriteToContainer()) {
- // @todo have to be able to edit album to upload photos
- forward(REFERER);
-}
-
-// set page owner based on container (user or group)
-elgg_set_page_owner_guid($album->getContainerGUID());
-$owner = elgg_get_page_owner_entity();
-
-$title = elgg_echo('album:addpix');
-
-// set up breadcrumbs
-elgg_push_breadcrumb(elgg_echo('photos'), "photos/all");
-elgg_push_breadcrumb($owner->name, "photos/owner/$owner->username");
-elgg_push_breadcrumb($album->getTitle(), $album->getURL());
-elgg_push_breadcrumb(elgg_echo('album:addpix'));
-
-// load javascript dependences
-elgg_load_js('jquery-tmpl');
-elgg_load_js('jquery-load-image');
-elgg_load_js('jquery-canvas-to-blob');
-elgg_load_js('jquery-fileupload');
-elgg_load_js('jquery-fileupload-ui');
-elgg_load_js('tidypics:upload');
-
-$form_vars = array(
- 'id' => 'fileupload',
- 'action' => 'action/photos/image/upload',
- 'enctype' => 'multipart/form-data',
-);
-
-$content = elgg_view_form('photos/basic_upload', $form_vars, array('entity' => $album));
-
-$body = elgg_view_layout('content', array(
- 'content' => $content,
- 'title' => $title,
- 'filter' => '',
- 'sidebar' => elgg_view('photos/sidebar', array('page' => 'upload')),
-));
-
-echo elgg_view_page($title, $body);
diff --git a/pages/photos/image/view.php b/pages/photos/image/view.php
deleted file mode 100644
index e30bed70a..000000000
--- a/pages/photos/image/view.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/**
- * View an image
- *
- * @author Cash Costello
- * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
- */
-
-group_gatekeeper();
-
-// get the photo entity
-$photo_guid = (int) get_input('guid');
-$photo = get_entity($photo_guid);
-if (!$photo) {
- register_error(elgg_echo('noaccess'));
- $_SESSION['last_forward_from'] = current_page_url();
- forward('');
-}
-
-$photo->addView();
-
-// set page owner based on owner of photo album
-$album = $photo->getContainerEntity();
-if ($album) {
- elgg_set_page_owner_guid($album->getContainerGUID());
-}
-$owner = elgg_get_page_owner_entity();
-
-// set up breadcrumbs
-elgg_push_breadcrumb(elgg_echo('photos'), 'photos/all');
-if (elgg_instanceof($owner, 'group')) {
- elgg_push_breadcrumb($owner->name, "photos/group/$owner->guid/all");
-} else {
- elgg_push_breadcrumb($owner->name, "photos/owner/$owner->username");
-}
-elgg_push_breadcrumb($album->getTitle(), $album->getURL());
-elgg_push_breadcrumb($photo->getTitle());
-
-if (elgg_get_plugin_setting('download_link', 'tidypics')) {
- // add download button to title menu
- elgg_register_menu_item('title', array(
- 'name' => 'download',
- 'href' => "photos/download/$photo_guid",
- 'text' => elgg_echo('image:download'),
- 'link_class' => 'elgg-button elgg-button-action',
- ));
-}
-
-$content = elgg_view_entity($photo, array('full_view' => true));
-
-$body = elgg_view_layout('content', array(
- 'filter' => false,
- 'content' => $content,
- 'title' => $photo->getTitle(),
- 'sidebar' => elgg_view('photos/sidebar', array(
- 'page' => 'view',
- 'image' => $photo,
- )),
-));
-
-echo elgg_view_page($photo->getTitle(), $body);
diff --git a/pages/photos/owner.php b/pages/photos/owner.php
deleted file mode 100644
index 506cb569b..000000000
--- a/pages/photos/owner.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-/**
- * Show all the albums that belong to a user or group
- *
- * @author Cash Costello
- * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
- */
-
-group_gatekeeper();
-
-$owner = elgg_get_page_owner_entity();
-
-$title = elgg_echo('album:user', array($owner->name));
-
-// set up breadcrumbs
-elgg_push_breadcrumb(elgg_echo('photos'), 'photos/all');
-elgg_push_breadcrumb($owner->name);
-
-
-$num_albums = 16;
-
-$content = elgg_list_entities(array(
- 'type' => 'object',
- 'subtype' => 'album',
- 'container_guid' => $owner->getGUID(),
- 'limit' => $num_albums,
- 'full_view' => false,
- 'list_type' => 'gallery',
- 'list_type_toggle' => false,
- 'gallery_class' => 'tidypics-gallery',
-));
-if (!$content) {
- $content = elgg_echo('tidypics:none');
-}
-
-elgg_register_title_button();
-
-$params = array(
- 'filter_context' => 'mine',
- 'content' => $content,
- 'title' => $title,
- 'sidebar' => elgg_view('tidypics/sidebar', array('page' => 'owner')),
-);
-
-// don't show filter if out of filter context
-if ($owner instanceof ElggGroup) {
- $params['filter'] = false;
-}
-
-if ($owner->getGUID() != elgg_get_logged_in_user_guid()) {
- $params['filter_context'] = '';
-}
-
-$body = elgg_view_layout('content', $params);
-
-echo elgg_view_page($title, $body);
diff --git a/pages/profile/edit.php b/pages/profile/edit.php
new file mode 100644
index 000000000..0ffb8783f
--- /dev/null
+++ b/pages/profile/edit.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Edit profile page
+ */
+
+gatekeeper();
+
+$user = elgg_get_page_owner_entity();
+if (!$user) {
+ register_error(elgg_echo("profile:notfound"));
+ forward();
+}
+
+// check if logged in user can edit this profile
+if (!$user->canEdit()) {
+ register_error(elgg_echo("profile:noaccess"));
+ forward();
+}
+
+elgg_set_context('profile_edit');
+
+$title = elgg_echo('profile:edit');
+
+$content = elgg_view_form('profile/edit', array(), array('entity' => $user));
+
+$params = array(
+ 'content' => $content,
+ 'title' => $title,
+);
+$body = elgg_view_layout('one_sidebar', $params);
+
+echo elgg_view_page($title, $body);
diff --git a/pages/river.php b/pages/river.php
new file mode 100644
index 000000000..0e1511334
--- /dev/null
+++ b/pages/river.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Main activity stream list page
+ */
+
+$options = array();
+
+$page_type = preg_replace('[\W]', '', get_input('page_type', 'all'));
+$type = preg_replace('[\W]', '', get_input('type', 'all'));
+$subtype = preg_replace('[\W]', '', get_input('subtype', ''));
+if ($subtype) {
+ $selector = "type=$type&subtype=$subtype";
+} else {
+ $selector = "type=$type";
+}
+
+if ($type != 'all') {
+ $options['type'] = $type;
+ if ($subtype) {
+ $options['subtype'] = $subtype;
+ }
+}
+
+switch ($page_type) {
+ case 'mine':
+ $title = elgg_echo('river:mine');
+ $page_filter = 'mine';
+ $options['subject_guid'] = elgg_get_logged_in_user_guid();
+ break;
+ case 'friends':
+ $title = elgg_echo('river:friends');
+ $page_filter = 'friends';
+ $options['relationship_guid'] = elgg_get_logged_in_user_guid();
+ $options['relationship'] = 'friend';
+ break;
+ default:
+ $title = elgg_echo('river:all');
+ $page_filter = 'all';
+ break;
+}
+
+$activity = elgg_list_river($options);
+if (!$activity) {
+ $activity = elgg_echo('river:none');
+}
+
+$content = elgg_view('core/river/filter', array('selector' => $selector));
+
+$sidebar = elgg_view('core/river/sidebar');
+
+$params = array(
+ 'content' => $content . $activity,
+ 'sidebar' => $sidebar,
+ 'filter_context' => $page_filter,
+ 'class' => 'elgg-river-layout',
+);
+
+$body = elgg_view_layout('content', $params);
+
+echo elgg_view_page($title, $body);
diff --git a/pages/settings/account.php b/pages/settings/account.php
new file mode 100644
index 000000000..1bf71973b
--- /dev/null
+++ b/pages/settings/account.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Elgg user account settings.
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+// Only logged in users
+gatekeeper();
+
+// Make sure we don't open a security hole ...
+if ((!elgg_get_page_owner_entity()) || (!elgg_get_page_owner_entity()->canEdit())) {
+ elgg_set_page_owner_guid(elgg_get_logged_in_user_guid());
+}
+
+$title = elgg_echo('usersettings:user');
+
+$content = elgg_view('core/settings/account');
+
+$params = array(
+ 'content' => $content,
+ 'title' => $title,
+);
+$body = elgg_view_layout('one_sidebar', $params);
+
+echo elgg_view_page($title, $body);
diff --git a/pages/settings/statistics.php b/pages/settings/statistics.php
new file mode 100644
index 000000000..9df71ec5e
--- /dev/null
+++ b/pages/settings/statistics.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Elgg user statistics.
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+// Only logged in users
+gatekeeper();
+
+// Make sure we don't open a security hole ...
+if ((!elgg_get_page_owner_entity()) || (!elgg_get_page_owner_entity()->canEdit())) {
+ elgg_set_page_owner_guid(elgg_get_logged_in_user_guid());
+}
+
+$title = elgg_echo("usersettings:statistics");
+
+$content = elgg_view("core/settings/statistics");
+
+$params = array(
+ 'content' => $content,
+ 'title' => $title,
+);
+$body = elgg_view_layout('one_sidebar', $params);
+
+echo elgg_view_page($title, $body);
diff --git a/pages/settings/tools.php b/pages/settings/tools.php
new file mode 100644
index 000000000..daf381728
--- /dev/null
+++ b/pages/settings/tools.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Elgg user tools settings
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+// Make sure only valid users can see this
+gatekeeper();
+
+// Make sure we don't open a security hole ...
+if ((!elgg_get_page_owner_entity()) || (!elgg_get_page_owner_entity()->canEdit())) {
+ elgg_set_page_owner_guid(elgg_get_logged_in_user_guid());
+}
+
+$title = elgg_echo("usersettings:plugins");
+
+$content = elgg_view("core/settings/tools",
+ array('installed_plugins' => elgg_get_plugins()));
+
+$params = array(
+ 'content' => $content,
+ 'title' => $title,
+);
+$body = elgg_view_layout('one_sidebar', $params);
+
+echo elgg_view_page($title, $body);