aboutsummaryrefslogtreecommitdiff
path: root/mod/profile
diff options
context:
space:
mode:
Diffstat (limited to 'mod/profile')
-rw-r--r--mod/profile/actions/addcomment.php48
-rw-r--r--mod/profile/actions/cropicon.php74
-rw-r--r--mod/profile/actions/deletecomment.php29
-rw-r--r--mod/profile/actions/deletedefaultprofileitem.php35
-rw-r--r--mod/profile/actions/edit.php115
-rw-r--r--mod/profile/actions/editdefault.php43
-rw-r--r--mod/profile/actions/editfield.php21
-rw-r--r--mod/profile/actions/iconupload.php68
-rw-r--r--mod/profile/actions/reorder.php17
-rw-r--r--mod/profile/actions/resetdefaultprofile.php27
-rw-r--r--mod/profile/edit.php44
-rw-r--r--mod/profile/editicon.php43
-rw-r--r--mod/profile/graphics/defaultlarge.gifbin2924 -> 0 bytes
-rw-r--r--mod/profile/graphics/defaultmaster.gifbin43 -> 0 bytes
-rw-r--r--mod/profile/graphics/defaultmedium.gifbin2855 -> 0 bytes
-rw-r--r--mod/profile/graphics/defaultsmall.gifbin1027 -> 0 bytes
-rw-r--r--mod/profile/graphics/defaulttiny.gifbin745 -> 0 bytes
-rw-r--r--mod/profile/graphics/defaulttopbar.gifbin599 -> 0 bytes
-rw-r--r--mod/profile/graphics/drag_handle.pngbin594 -> 0 bytes
-rw-r--r--mod/profile/graphics/speech_bubble_tail.gifbin274 -> 0 bytes
-rw-r--r--mod/profile/graphics/twitter16px.pngbin724 -> 0 bytes
-rw-r--r--mod/profile/icon.php59
-rw-r--r--mod/profile/icondirect.php82
-rw-r--r--mod/profile/index.php50
-rw-r--r--mod/profile/javascript.php19
-rw-r--r--mod/profile/languages/en.php114
-rw-r--r--mod/profile/manifest.xml27
-rw-r--r--mod/profile/profile_lib.php76
-rw-r--r--mod/profile/start.php340
-rw-r--r--mod/profile/vendor/jquery.jeditable.mini.js38
-rw-r--r--mod/profile/views/default/admin/appearance/defaultprofile.php51
-rw-r--r--mod/profile/views/default/icon/user/default/large.php3
-rw-r--r--mod/profile/views/default/icon/user/default/master.php3
-rw-r--r--mod/profile/views/default/icon/user/default/medium.php3
-rw-r--r--mod/profile/views/default/icon/user/default/small.php3
-rw-r--r--mod/profile/views/default/icon/user/default/tiny.php3
-rw-r--r--mod/profile/views/default/icon/user/default/topbar.php3
-rw-r--r--mod/profile/views/default/js/jquery.imgareaselect-0.8.js635
-rw-r--r--mod/profile/views/default/js/jquery.imgareaselect-0.8.min.js1
-rwxr-xr-xmod/profile/views/default/profile/admin_menu.php42
-rw-r--r--mod/profile/views/default/profile/commentwall/commentwall.php18
-rw-r--r--mod/profile/views/default/profile/commentwall/commentwall_content.php32
-rw-r--r--mod/profile/views/default/profile/commentwall/commentwalladd.php18
-rw-r--r--mod/profile/views/default/profile/css.php525
-rw-r--r--mod/profile/views/default/profile/details.php68
-rw-r--r--mod/profile/views/default/profile/edit.php84
-rw-r--r--mod/profile/views/default/profile/editdefaultprofile.php33
-rw-r--r--mod/profile/views/default/profile/editdefaultprofileitems.php67
-rw-r--r--mod/profile/views/default/profile/editicon.php145
-rw-r--r--mod/profile/views/default/profile/hoverover.php20
-rw-r--r--mod/profile/views/default/profile/icon.php115
-rw-r--r--mod/profile/views/default/profile/javascript.php138
-rw-r--r--mod/profile/views/default/profile/js.php9
-rw-r--r--mod/profile/views/default/profile/listing.php48
-rw-r--r--mod/profile/views/default/profile/menu/adminlinks.php32
-rw-r--r--mod/profile/views/default/profile/menu/friendlinks.php27
-rw-r--r--mod/profile/views/default/profile/menu/links.php13
-rw-r--r--mod/profile/views/default/profile/metatags.php17
-rw-r--r--mod/profile/views/default/profile/owner_block.php66
-rwxr-xr-xmod/profile/views/default/profile/profile_contents/activity.php30
-rw-r--r--mod/profile/views/default/profile/profile_contents/commentwall.php13
-rwxr-xr-xmod/profile/views/default/profile/profile_contents/details.php56
-rwxr-xr-xmod/profile/views/default/profile/profile_contents/friends.php15
-rw-r--r--mod/profile/views/default/profile/profile_contents/sidebar.php17
-rwxr-xr-xmod/profile/views/default/profile/profile_contents/twitter.php19
-rwxr-xr-xmod/profile/views/default/profile/profile_navigation.php57
-rwxr-xr-xmod/profile/views/default/profile/profile_ownerblock.php130
-rw-r--r--mod/profile/views/default/profile/topbar_extend.php11
-rw-r--r--mod/profile/views/default/profile/wrapper.php12
-rw-r--r--mod/profile/views/default/river/user/default/profileiconupdate.php8
-rw-r--r--mod/profile/views/default/river/user/default/profileupdate.php10
71 files changed, 422 insertions, 3547 deletions
diff --git a/mod/profile/actions/addcomment.php b/mod/profile/actions/addcomment.php
deleted file mode 100644
index 5850efe25..000000000
--- a/mod/profile/actions/addcomment.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/**
- * Elgg profile commentwall: add message action
- */
-
-// Make sure we're logged in; forward to the front page if not
-if (!isloggedin()) forward();
-
-// Get input
-$message_content = get_input('message_content'); // the actual message
-$page_owner = get_input("pageOwner"); // the message board owner
-$message_owner = get_input("guid"); // the user posting the message
-$user = get_entity($page_owner); // the commentwall owner details
-
-// Let's see if we can get a user entity from the specified page_owner
-if ($user && !empty($message_content)) {
-
- // If posting the comment was successful, say so
- if ($user->annotate('commentwall',$message_content,$user->access_id, $_SESSION['user']->getGUID())) {
-
- global $CONFIG;
-
- if ($user->getGUID() != $_SESSION['user']->getGUID())
- notify_user($user->getGUID(), $_SESSION['user']->getGUID(), elgg_echo('profile:comment:subject'),
- sprintf(
- elgg_echo('profile:comment:body'),
- $_SESSION['user']->name,
- $message_content,
- $CONFIG->wwwroot . "pg/profile/" . $user->username,
- $_SESSION['user']->name,
- $_SESSION['user']->getURL()
- )
- );
-
- system_message(elgg_echo("profile:commentwall:posted"));
- // add to river
- add_to_river('river/object/profile/commentwall/create','commentwall',$_SESSION['user']->guid,$user->guid);
-
- } else {
- register_error(elgg_echo("profile:commentwall:failure"));
- }
-
-} else {
- register_error(elgg_echo("profile:commentwall:blank"));
-}
-
-// Forward back to the messageboard
-forward($_SERVER['HTTP_REFERER']); \ No newline at end of file
diff --git a/mod/profile/actions/cropicon.php b/mod/profile/actions/cropicon.php
deleted file mode 100644
index 5bba84a8c..000000000
--- a/mod/profile/actions/cropicon.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-/**
- * Elgg profile plugin upload new user icon action
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-gatekeeper();
-
-$profile_username = get_input('username');
-$profile_owner = get_user_by_username($profile_username);
-
-if (!$profile_owner || !($profile_owner instanceof ElggUser) || !$profile_owner->canEdit()) {
- register_error(elgg_echo('profile:icon:fail'));
- forward($_SERVER['HTTP_REFERER']);
-}
-
-$x1 = (int) get_input('x_1',0);
-$y1 = (int) get_input('y_1',0);
-$x2 = (int) get_input('x_2',0);
-$y2 = (int) get_input('y_2',0);
-
-$filehandler = new ElggFile();
-$filehandler->owner_guid = $profile_owner->getGUID();
-$filehandler->setFilename("profile/" . $profile_owner->username . "master" . ".jpg");
-$filename = $filehandler->getFilenameOnFilestore();
-
-$topbar = get_resized_image_from_existing_file($filename, 16, 16, true, $x1, $y1, $x2, $y2, TRUE);
-$tiny = get_resized_image_from_existing_file($filename, 25, 25, true, $x1, $y1, $x2, $y2, TRUE);
-$small = get_resized_image_from_existing_file($filename, 40, 40, true, $x1, $y1, $x2, $y2, TRUE);
-$medium = get_resized_image_from_existing_file($filename, 100, 100, true, $x1, $y1, $x2, $y2, TRUE);
-
-if ($small !== FALSE && $medium !== FALSE && $tiny !== FALSE) {
- $filehandler = new ElggFile();
- $filehandler->owner_guid = $profile_owner->getGUID();
- $filehandler->setFilename("profile/" . $profile_owner->username . "medium.jpg");
- $filehandler->open("write");
- $filehandler->write($medium);
- $filehandler->close();
- $filehandler->setFilename("profile/" . $profile_owner->username . "small.jpg");
- $filehandler->open("write");
- $filehandler->write($small);
- $filehandler->close();
- $filehandler->setFilename("profile/" . $profile_owner->username . "tiny.jpg");
- $filehandler->open("write");
- $filehandler->write($tiny);
- $filehandler->close();
- $filehandler->setFilename("profile/" . $profile_owner->username . "topbar.jpg");
- $filehandler->open("write");
- $filehandler->write($topbar);
- $filehandler->close();
-
- $profile_owner->x1 = $x1;
- $profile_owner->x2 = $x2;
- $profile_owner->y1 = $y1;
- $profile_owner->y2 = $y2;
-
- $profile_owner->icontime = time();
-
- system_message(elgg_echo("profile:icon:uploaded"));
-} else {
- register_error(elgg_echo("profile:icon:notfound"));
-}
-
-//forward the user back to the upload page to crop
-$url = "{$vars['url']}pg/profile/{$profile_owner->username}/edit/icon";
-
-if (isloggedin()) {
- forward($url);
-}
diff --git a/mod/profile/actions/deletecomment.php b/mod/profile/actions/deletecomment.php
deleted file mode 100644
index 0a104eabe..000000000
--- a/mod/profile/actions/deletecomment.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Elgg profile commentwall: delete message action
- */
-
-// Ensure we're logged in
-if (!isloggedin()) forward();
-
-// Make sure we can get the comment in question
-$annotation_id = (int) get_input('annotation_id');
-
-//make sure that there is a message on the commentwall matching the passed id
-if ($message = get_annotation($annotation_id)) {
- //grab the user or group entity
- $entity = get_entity($message->entity_guid);
- //check to make sure the current user can actually edit the commentwall
- if ($message->canEdit()) {
- //delete the comment
- $message->delete();
- //display message
- system_message(elgg_echo("profile:commentwall:deleted"));
- forward($_SERVER['HTTP_REFERER']);
- }
-
-} else {
- system_message(elgg_echo("profile:commentwall:notdeleted"));
-}
-
-forward($_SERVER['HTTP_REFERER']); \ No newline at end of file
diff --git a/mod/profile/actions/deletedefaultprofileitem.php b/mod/profile/actions/deletedefaultprofileitem.php
deleted file mode 100644
index e54aa026d..000000000
--- a/mod/profile/actions/deletedefaultprofileitem.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/**
- * Elgg profile plugin edit default profile action removal
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-global $CONFIG;
-
-admin_gatekeeper();
-
-$id = get_input('id');
-
-$fieldlist = get_plugin_setting('user_defined_fields', 'profile');
-if (!$fieldlist) {
- $fieldlist = '';
-}
-
-$fieldlist = str_replace("{$id},", "", $fieldlist);
-$fieldlist = str_replace(",{$id}", "", $fieldlist);
-$fieldlist = str_replace("{$id}", "", $fieldlist);
-
-if (($id) && (set_plugin_setting("admin_defined_profile_$id", '', 'profile')) &&
- (set_plugin_setting("admin_defined_profile_type_$id", '', 'profile')) &&
- set_plugin_setting('user_defined_fields',$fieldlist,'profile')) {
- system_message(elgg_echo('profile:editdefault:delete:success'));
-} else {
- register_error(elgg_echo('profile:editdefault:delete:fail'));
-}
-
-forward($_SERVER['HTTP_REFERER']); \ No newline at end of file
diff --git a/mod/profile/actions/edit.php b/mod/profile/actions/edit.php
deleted file mode 100644
index 34b2dbfd7..000000000
--- a/mod/profile/actions/edit.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-/**
- * Elgg profile plugin edit action
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-global $CONFIG;
-gatekeeper();
-
-$profile_username = get_input('username');
-$profile_owner = get_user_by_username($profile_username);
-
-if (!$profile_owner || !$profile_owner->canEdit()) {
- system_message(elgg_echo("profile:noaccess"));
- forward($_SERVER['HTTP_REFERER']);
-}
-
-// grab the defined profile field names and their load the values from POST.
-// each field can have its own access, so sort that too.
-$input = array();
-$accesslevel = get_input('accesslevel');
-
-if (!is_array($accesslevel)) {
- $accesslevel = array();
-}
-
-/**
- * wrapper for recursive array walk decoding
- */
-function profile_array_decoder(&$v) {
- $v = html_entity_decode($v, ENT_COMPAT, 'UTF-8');
-}
-
-
-foreach($CONFIG->profile as $shortname => $valuetype) {
- // the decoding is a stop gag to prevent &amp;&amp; showing up in profile fields
- // because it is escaped on both input (get_input()) and output (view:output/text). see #561 and #1405.
- // must decode in utf8 or string corruption occurs. see #1567.
- $value = get_input($shortname);
- if (is_array($value)) {
- array_walk_recursive($value, 'profile_array_decoder');
- } else {
- $value = html_entity_decode($value, ENT_COMPAT, 'UTF-8');
- }
-
- // limit to reasonable sizes.
- if (!is_array($value) && $valuetype != 'longtext' && elgg_strlen($value) > 250) {
- $error = sprintf(elgg_echo('profile:field_too_long'), elgg_echo("profile:{$shortname}"));
- register_error($error);
- forward($_SERVER['HTTP_REFERER']);
- }
-
- if ($valuetype == 'tags') {
- $value = string_to_tag_array($value);
- }
-
- $input[$shortname] = $value;
-}
-
-// display name is handled separately
-if ($name = strip_tags(get_input('name'))) {
- if (elgg_strlen($name) > 50) {
- register_error(elgg_echo('user:name:fail'));
- } elseif ($profile_owner->name != $name) {
- $profile_owner->name = $name;
- // @todo this is weird...giving two notifications?
- if ($profile_owner->save()) {
- system_message(elgg_echo('user:name:success'));
- } else {
- register_error(elgg_echo('user:name:fail'));
- }
- }
-}
-
-// go through custom fields
-if (sizeof($input) > 0) {
- foreach($input as $shortname => $value) {
- remove_metadata($profile_owner->guid, $shortname);
- if (isset($accesslevel[$shortname])) {
- $access_id = (int) $accesslevel[$shortname];
- } else {
- // this should never be executed since the access level should always be set
- $access_id = ACCESS_DEFAULT;
- }
- if (is_array($value)) {
- $i = 0;
- foreach($value as $interval) {
- $i++;
- $multiple = ($i > 1) ? TRUE : FALSE;
- create_metadata($profile_owner->guid, $shortname, $interval, 'text', $profile_owner->guid, $access_id, $multiple);
- }
- } else {
- create_metadata($profile_owner->getGUID(), $shortname, $value, 'text', $profile_owner->getGUID(), $access_id);
- }
- }
-
- $profile_owner->save();
-
- // Notify of profile update
- trigger_elgg_event('profileupdate',$user->type,$user);
-
- //add to river if edited by self
- if (get_loggedin_userid() == $user->guid) {
- add_to_river('river/user/default/profileupdate','update',$_SESSION['user']->guid,$_SESSION['user']->guid,get_default_access($_SESSION['user']));
- }
-
- system_message(elgg_echo("profile:saved"));
-}
-
-forward($profile_owner->getUrl());
diff --git a/mod/profile/actions/editdefault.php b/mod/profile/actions/editdefault.php
deleted file mode 100644
index 70e3b5cd8..000000000
--- a/mod/profile/actions/editdefault.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-/**
- * Elgg profile plugin edit default profile action
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-global $CONFIG;
-admin_gatekeeper();
-
-$label = sanitise_string(get_input('label'));
-$type = sanitise_string(get_input('type'));
-
-$fieldlist = get_plugin_setting('user_defined_fields', 'profile');
-if (!$fieldlist) {
- $fieldlist = '';
-}
-
-if (($label) && ($type)){
- // Assign a random name
- $n = md5(time().rand(0,9999));
-
- if (!empty($fieldlist)) {
- $fieldlist .= ',';
- }
- $fieldlist .= $n;
-
- if ((set_plugin_setting("admin_defined_profile_$n", $label, 'profile')) &&
- (set_plugin_setting("admin_defined_profile_type_$n", $type, 'profile')) &&
- set_plugin_setting('user_defined_fields',$fieldlist,'profile')) {
- system_message(elgg_echo('profile:editdefault:success'));
- } else {
- register_error(elgg_echo('profile:editdefault:fail'));
- }
-} else {
- register_error(elgg_echo('profile:editdefault:fail'));
-}
-
-forward($_SERVER['HTTP_REFERER']); \ No newline at end of file
diff --git a/mod/profile/actions/editfield.php b/mod/profile/actions/editfield.php
deleted file mode 100644
index 5a0181a00..000000000
--- a/mod/profile/actions/editfield.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
- * Elgg profile plugin edit default profile action
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-admin_gatekeeper();
-
-$field = get_input('field');
-$text = get_input('value');
-
-set_plugin_setting("admin_defined_profile_{$field}",$text,'profile');
-
-echo $text;
-
-exit; \ No newline at end of file
diff --git a/mod/profile/actions/iconupload.php b/mod/profile/actions/iconupload.php
deleted file mode 100644
index a0cb24c3d..000000000
--- a/mod/profile/actions/iconupload.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-/**
- * Elgg profile plugin upload new user icon action
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-gatekeeper();
-
-$profile_username = get_input('username');
-$profile_owner = get_user_by_username($profile_username);
-
-if (!$profile_owner || !($profile_owner instanceof ElggUser) || !$profile_owner->canEdit()) {
- register_error(elgg_echo('profile:icon:fail'));
- forward($_SERVER['HTTP_REFERER']);
-}
-
-$profile_owner_guid = $profile_owner->getGUID();
-
-//@todo make this configurable?
-$icon_sizes = array(
- 'topbar' => array('w'=>16, 'h'=>16, 'square'=>TRUE),
- 'tiny' => array('w'=>25, 'h'=>25, 'square'=>TRUE),
- 'small' => array('w'=>40, 'h'=>40, 'square'=>TRUE),
- 'medium' => array('w'=>100, 'h'=>100, 'square'=>TRUE),
- 'large' => array('w'=>200, 'h'=>200, 'square'=>FALSE),
- 'master' => array('w'=>1600, 'h'=>1600, 'square'=>FALSE)
-);
-
-// get the images and save their file handlers into an array
-// so we can do clean up if one fails.
-$files = array();
-foreach ($icon_sizes as $name => $size_info) {
- $resized = get_resized_image_from_uploaded_file('profileicon', $size_info['w'], $size_info['h'], $size_info['square']);
-
- if ($resized) {
- //@todo Make these actual entities. See exts #348.
- $file = new ElggFile();
- $file->owner_guid = $profile_owner_guid;
- $file->setFilename("profile/{$profile_username}{$name}.jpg");
- $file->open('write');
- $file->write($resized);
- $file->close();
- $files[] = $file;
- } else {
- // cleanup on fail
- foreach ($files as $file) {
- $file->delete();
- }
-
- system_message(elgg_echo('profile:icon:notfound'));
- forward($_SERVER['HTTP_REFERER']);
- }
-}
-
-$profile_owner->icontime = time();
-if (trigger_elgg_event('profileiconupdate', $profile_owner->type, $profile_owner)) {
- // pull this out into the river plugin.
- //add_to_river('river/user/default/profileiconupdate','update',$user->guid,$user->guid);
- system_message(elgg_echo("profile:icon:uploaded"));
-}
-
-//forward the user back to the upload page to crop
-forward($_SERVER['HTTP_REFERER']);
diff --git a/mod/profile/actions/reorder.php b/mod/profile/actions/reorder.php
deleted file mode 100644
index 2260ed5b7..000000000
--- a/mod/profile/actions/reorder.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Elgg profile plugin reorder fields
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-admin_gatekeeper();
-$ordering = get_input('fieldorder');
-//if (!empty($ordering))
-$result = set_plugin_setting('user_defined_fields',$ordering,'profile');
-
-exit; \ No newline at end of file
diff --git a/mod/profile/actions/resetdefaultprofile.php b/mod/profile/actions/resetdefaultprofile.php
deleted file mode 100644
index 4ee87dbf9..000000000
--- a/mod/profile/actions/resetdefaultprofile.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Elgg profile plugin edit default profile action
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-global $CONFIG;
-admin_gatekeeper();
-
-if ($fieldlist = get_plugin_setting('user_defined_fields', 'profile')) {
- $fieldlistarray = explode(',', $fieldlist);
- foreach($fieldlistarray as $listitem) {
- set_plugin_setting("admin_defined_profile_{$listitem}", '', 'profile');
- set_plugin_setting("admin_defined_profile_type_{$listitem}", '', 'profile');
- }
-}
-
-set_plugin_setting('user_defined_fields', FALSE, 'profile');
-
-system_message(elgg_echo('profile:defaultprofile:reset'));
-
-forward($_SERVER['HTTP_REFERER']); \ No newline at end of file
diff --git a/mod/profile/edit.php b/mod/profile/edit.php
deleted file mode 100644
index 91db99a2e..000000000
--- a/mod/profile/edit.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/**
- * Elgg profile editor
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-// Get the Elgg engine
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
-// If we're not logged on, forward the user elsewhere
-if (!isloggedin()) {
- forward();
-}
-
-// Get owner of profile - set in page handler
-$user = 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();
-}
-
-// Get edit form
-$area1 = elgg_view_title(elgg_echo('profile:edit'));
-$area1 .= elgg_view("profile/edit",array('entity' => $user));
-
-set_context('profile_edit');
-
-// get the required canvas area
-$body = elgg_view_layout("one_column_with_sidebar", $area1);
-
-// Draw the page
-page_draw(elgg_echo("profile:edit"),$body);
diff --git a/mod/profile/editicon.php b/mod/profile/editicon.php
deleted file mode 100644
index 0e73c8d81..000000000
--- a/mod/profile/editicon.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-/**
- * Elgg upload new profile icon
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-// Load the Elgg framework
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
-// Make sure we're logged in
-if (!isloggedin()) {
- forward();
-}
-
-// Get owner of profile - set in page handler
-$user = page_owner_entity();
-if (!$user) {
- register_error(elgg_echo("profile:notfound"));
- forward();
-}
-
-// check if logged in user can edit this profile icon
-if (!$user->canEdit()) {
- register_error(elgg_echo("profile:icon:noaccess"));
- forward();
-}
-
-// set title
-$area1 = elgg_view_title(elgg_echo('profile:createicon:header'));
-$area1 .= elgg_view("profile/edit_icon", array('user' => $user));
-
-set_context('profile_edit');
-
-// Get the form and correct canvas area
-$body = elgg_view_layout("one_column_with_sidebar", $area1);
-
-// Draw the page
-page_draw(elgg_echo("profile:editicon"), $body);
diff --git a/mod/profile/graphics/defaultlarge.gif b/mod/profile/graphics/defaultlarge.gif
deleted file mode 100644
index 6ea3bd4cd..000000000
--- a/mod/profile/graphics/defaultlarge.gif
+++ /dev/null
Binary files differ
diff --git a/mod/profile/graphics/defaultmaster.gif b/mod/profile/graphics/defaultmaster.gif
deleted file mode 100644
index 5bfd67a2d..000000000
--- a/mod/profile/graphics/defaultmaster.gif
+++ /dev/null
Binary files differ
diff --git a/mod/profile/graphics/defaultmedium.gif b/mod/profile/graphics/defaultmedium.gif
deleted file mode 100644
index c6b2e6a6d..000000000
--- a/mod/profile/graphics/defaultmedium.gif
+++ /dev/null
Binary files differ
diff --git a/mod/profile/graphics/defaultsmall.gif b/mod/profile/graphics/defaultsmall.gif
deleted file mode 100644
index 661d72f04..000000000
--- a/mod/profile/graphics/defaultsmall.gif
+++ /dev/null
Binary files differ
diff --git a/mod/profile/graphics/defaulttiny.gif b/mod/profile/graphics/defaulttiny.gif
deleted file mode 100644
index 1775346bc..000000000
--- a/mod/profile/graphics/defaulttiny.gif
+++ /dev/null
Binary files differ
diff --git a/mod/profile/graphics/defaulttopbar.gif b/mod/profile/graphics/defaulttopbar.gif
deleted file mode 100644
index c3616aeb5..000000000
--- a/mod/profile/graphics/defaulttopbar.gif
+++ /dev/null
Binary files differ
diff --git a/mod/profile/graphics/drag_handle.png b/mod/profile/graphics/drag_handle.png
deleted file mode 100644
index 2e9bc42be..000000000
--- a/mod/profile/graphics/drag_handle.png
+++ /dev/null
Binary files differ
diff --git a/mod/profile/graphics/speech_bubble_tail.gif b/mod/profile/graphics/speech_bubble_tail.gif
deleted file mode 100644
index 31d1bc90d..000000000
--- a/mod/profile/graphics/speech_bubble_tail.gif
+++ /dev/null
Binary files differ
diff --git a/mod/profile/graphics/twitter16px.png b/mod/profile/graphics/twitter16px.png
deleted file mode 100644
index de51c6953..000000000
--- a/mod/profile/graphics/twitter16px.png
+++ /dev/null
Binary files differ
diff --git a/mod/profile/icon.php b/mod/profile/icon.php
deleted file mode 100644
index da7667c8b..000000000
--- a/mod/profile/icon.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/**
-* Elgg profile icon
-*
-* @package ElggProfile
-* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
-* @author Curverider Ltd <info@elgg.com>
-* @copyright Curverider Ltd 2008-2010
-* @link http://elgg.com/
-*/
-
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
-// Get the owning user
-$user = page_owner_entity();
-$username = $user->username;
-
-// Get the size
-$size = strtolower(get_input('size'));
-if (!in_array($size,array('large','medium','small','tiny','master','topbar')))
- $size = "medium";
-
-// If user doesn't exist, return default icon
-if (!$user) {
- $path = elgg_view("icon/user/default/$size");
- header("Location: $path");
- exit;
-}
-
-// Try and get the icon
-$filehandler = new ElggFile();
-$filehandler->owner_guid = $user->getGUID();
-$filehandler->setFilename("profile/" . $username . $size . ".jpg");
-
-$success = false;
-if ($filehandler->open("read")) {
- if ($contents = $filehandler->read($filehandler->size())) {
- $success = true;
- }
-}
-
-if (!$success) {
- global $CONFIG;
- $path = elgg_view('icon/user/default/'.$size);
- header("Location: {$path}");
- exit;
-}
-
-header("Content-type: image/jpeg");
-header('Expires: ' . date('r',time() + 864000));
-header("Pragma: public");
-header("Cache-Control: public");
-header("Content-Length: " . strlen($contents));
-
-$splitString = str_split($contents, 1024);
-
-foreach($splitString as $chunk) {
- echo $chunk;
-} \ No newline at end of file
diff --git a/mod/profile/icondirect.php b/mod/profile/icondirect.php
index 8a46786ab..5f1599e0d 100644
--- a/mod/profile/icondirect.php
+++ b/mod/profile/icondirect.php
@@ -1,58 +1,47 @@
<?php
-
/**
* Elgg profile icon cache/bypass
*
+ *
* @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
*/
-
// Get DB settings
require_once(dirname(dirname(dirname(__FILE__))). '/engine/settings.php');
global $CONFIG;
+// won't be able to serve anything if no joindate or guid
+if (!isset($_GET['joindate']) || !isset($_GET['guid'])) {
+ header("HTTP/1.1 404 Not Found");
+ exit;
+}
-$username = $_GET['username'];
-$joindate = (int)$_GET['joindate'];
+$join_date = (int)$_GET['joindate'];
+$last_cache = (int)$_GET['lastcache']; // icontime
$guid = (int)$_GET['guid'];
-$size = strtolower($_GET['size']);
-if (!in_array($size,array('large','medium','small','tiny','master','topbar'))) {
- $size = "medium";
-}
-
-// security check on username string
-if ( (strpos($username, '/')!==false) ||
- (strpos($username, '\\')!==false) ||
- (strpos($username, '"')!==false) ||
- (strpos($username, '\'')!==false) ||
- (strpos($username, '*')!==false) ||
- (strpos($username, '&')!==false) ||
- (strpos($username, ' ')!==false) ) {
- // these characters are not allowed in usernames
+// If is the same ETag, content didn't changed.
+$etag = $last_cache . $guid;
+if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && trim($_SERVER['HTTP_IF_NONE_MATCH']) == "\"$etag\"") {
+ header("HTTP/1.1 304 Not Modified");
exit;
}
+$size = strtolower($_GET['size']);
+if (!in_array($size, array('large', 'medium', 'small', 'tiny', 'master', 'topbar'))) {
+ $size = "medium";
+}
-
-$mysql_dblink = @mysql_connect($CONFIG->dbhost,$CONFIG->dbuser,$CONFIG->dbpass, true);
+$mysql_dblink = @mysql_connect($CONFIG->dbhost, $CONFIG->dbuser, $CONFIG->dbpass, true);
if ($mysql_dblink) {
- if (@mysql_select_db($CONFIG->dbname,$mysql_dblink)) {
-
- // get dataroot and simplecache_enabled in one select for efficiency
- if ($result = mysql_query("select name, value from {$CONFIG->dbprefix}datalists where name in ('dataroot','simplecache_enabled')",$mysql_dblink)) {
- $simplecache_enabled = true;
+ if (@mysql_select_db($CONFIG->dbname, $mysql_dblink)) {
+ $result = mysql_query("select name, value from {$CONFIG->dbprefix}datalists where name='dataroot'", $mysql_dblink);
+ if ($result) {
$row = mysql_fetch_object($result);
while ($row) {
if ($row->name == 'dataroot') {
- $dataroot = $row->value;
- } else if ($row->name == 'simplecache_enabled') {
- $simplecache_enabled = $row->value;
+ $data_root = $row->value;
}
$row = mysql_fetch_object($result);
}
@@ -60,23 +49,21 @@ if ($mysql_dblink) {
@mysql_close($mysql_dblink);
- // if the simplecache is enabled, we get icon directly
- if ($simplecache_enabled) {
+ if (isset($data_root)) {
- // first try to read icon directly
- $user_path = date('Y/m/d/', $joindate) . $guid;
- $filename = $dataroot . $user_path . "/profile/" . $username . $size . ".jpg";
- $contents = @file_get_contents($filename);
- if (!empty($contents)) {
+ // this depends on ElggDiskFilestore::makeFileMatrix()
+ $user_path = date('Y/m/d/', $join_date) . $guid;
+
+ $filename = "$data_root$user_path/profile/{$guid}{$size}.jpg";
+ $filesize = @filesize($filename);
+ if ($filesize) {
header("Content-type: image/jpeg");
- header('Expires: ' . date('r',time() + 864000));
+ header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', strtotime("+6 months")), true);
header("Pragma: public");
header("Cache-Control: public");
- header("Content-Length: " . strlen($contents));
- $splitString = str_split($contents, 1024);
- foreach($splitString as $chunk) {
- echo $chunk;
- }
+ header("Content-Length: $filesize");
+ header("ETag: \"$etag\"");
+ readfile($filename);
exit;
}
}
@@ -84,6 +71,7 @@ if ($mysql_dblink) {
}
-// simplecache is not turned on or something went wrong so load engine and try that way
+// something went wrong so load engine and try to forward to default icon
require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-require_once(dirname(__FILE__).'/icon.php');
+elgg_log("Profile icon direct failed.", "WARNING");
+forward("_graphics/icons/user/default{$size}.gif");
diff --git a/mod/profile/index.php b/mod/profile/index.php
deleted file mode 100644
index 41552602d..000000000
--- a/mod/profile/index.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-/**
- * Elgg profile index
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
-$username = get_input('username');
-$option = get_input('option', 'activity');
-$body = '';
-
-// Try and get the user from the username and set the page body accordingly
-if ($user = get_user_by_username($username)) {
- if ($user->isBanned() && !isadminloggedin()) {
- forward(); exit;
- }
- $body = elgg_view('profile/profile_navigation', array("option" => $option,"entity" => $user));
- switch($option){
- case 'activity':
- $body .= elgg_view('profile/profile_contents/details', array("entity" => $user));
- break;
-
- case 'friends':
- $body .= elgg_view('profile/profile_contents/friends', array("entity" => $user));
- break;
- case 'extend':
- $body .= elgg_view('profile/profile_contents/extend', array("entity" => $user));
- break;
-
- case 'twitter':
- $body .= elgg_view('profile/profile_contents/twitter', array("entity" => $user));
- break;
-
- case 'default':
- $body .= elgg_view('profile/profile_contents/details', array("entity" => $user));
- break;
- }
- $title = $user->name;
-} else {
- $body = elgg_echo("profile:notfound");
- $title = elgg_echo("profile");
-}
-$body = elgg_view_layout("one_column", $body);
-page_draw($title, $body); \ No newline at end of file
diff --git a/mod/profile/javascript.php b/mod/profile/javascript.php
deleted file mode 100644
index 62a934c15..000000000
--- a/mod/profile/javascript.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Elgg profile JS
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-// Get engine
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
-header("Content-type: text/javascript");
-header('Expires: ' . date('r',time() + 864000));
-header("Pragma: public");
-header("Cache-Control: public");
-echo elgg_view('profile/javascript'); \ No newline at end of file
diff --git a/mod/profile/languages/en.php b/mod/profile/languages/en.php
index a2a586478..50f04bb33 100644
--- a/mod/profile/languages/en.php
+++ b/mod/profile/languages/en.php
@@ -4,118 +4,8 @@
*/
$english = array(
-
-/**
- * Profile
- */
-
- 'profile' => "Profile",
- 'profile:edit:default' => 'Profile fields',
- 'profile:preview' => 'Preview',
-
-/**
- * Profile menu items and titles
- */
-
- 'profile:yours' => "My profile",
- 'profile:user' => "%s's profile",
-
- 'profile:edit' => "Edit profile",
- 'profile:profilepictureinstructions' => "Your avatar is the image that's displayed on your profile page. <br /> You can change it as often as you'd like. (File formats accepted: GIF, JPG or PNG)",
- 'profile:icon' => "Avatar",
- 'profile:createicon' => "Create your avatar",
- 'profile:currentavatar' => "Current avatar",
- 'profile:createicon:header' => "Profile picture",
- 'profile:profilepicturecroppingtool' => "Avatar cropping tool",
- 'profile:createicon:instructions' => "Click and drag a square below to match how you want your avatar cropped. A preview will appear in the box on the right. When you are happy with the preview, click 'Create your avatar'. This cropped version will be used throughout the site as your avatar. ",
-
- 'profile:editdetails' => "Edit profile",
- 'profile:editicon' => "Edit avatar",
-
- 'profile:aboutme' => "About me",
- 'profile:description' => "About me",
- 'profile:briefdescription' => "Brief description",
- 'profile:location' => "Location",
- 'profile:skills' => "Skills",
- 'profile:interests' => "Interests",
- 'profile:contactemail' => "Contact email",
- 'profile:phone' => "Telephone",
- 'profile:mobile' => "Mobile phone",
- 'profile:website' => "Website",
-
- 'profile:banned' => 'This user account has been suspended.',
- 'profile:deleteduser' => 'Deleted user',
-
- 'profile:river:update' => "%s updated their profile",
- 'profile:river:iconupdate' => "%s updated their profile icon",
-
- 'profile:label' => "Profile label",
- 'profile:type' => "Profile type",
- 'profile:twitter' => "Twitter username",
- 'twitter:visit' => "Visit this Twitter account",
- 'profile:editdefault:fail' => 'Default profile could not be saved',
- 'profile:editdefault:success' => 'Item successfully added to default profile',
-
-
- 'profile:editdefault:delete:fail' => 'Removed default profile item field failed',
- 'profile:editdefault:delete:success' => 'Default profile item deleted!',
-
- 'profile:defaultprofile:reset' => 'Default system profile reset',
-
- 'profile:resetdefault' => 'Reset default profile',
- 'profile:explainchangefields' => 'You can replace the existing profile fields with your own using the form below. <br /><br />Give the new profile field a label, for example, \'Favorite team\', then select the field type (eg. text, url, tags), and click the \'Add\' button. To re-order the fields drag on the handle next to the field label. To edit a field label - click on the label\'s text to make it editable. <br />At any time you can revert back to the default profile set up, but you will loose any information already entered into custom fields on profile pages.',
-
-
-/**
- * Profile status messages
- */
-
- 'profile:saved' => "Your profile was successfully saved.",
- 'profile:icon:uploaded' => "Your profile picture was successfully uploaded.",
-
-/**
- * Profile comment wall
- **/
- 'profile:commentwall:add' => "Add to the wall",
- 'profile:commentwall:posted' => "You successfully posted on the comment wall.",
- 'profile:commentwall:deleted' => "You successfully deleted the message.",
- 'profile:commentwall:blank' => "Sorry; you need to actually put something in the message area before we can save it.",
- 'profile:commentwall:notfound' => "Sorry; we could not find the specified item.",
- 'profile:commentwall:notdeleted' => "Sorry; we could not delete this message.",
- 'profile:commentwall:none' => "No comment wall posts found.",
- 'profile:commentwall:somethingwentwrong' => "Something went wrong when trying to save your message, make sure you actually wrote a message.",
- 'profile:commentwall:failure' => "An unexpected error occurred when adding your message. Please try again.",
-
-/**
- * Email messages commentwall
- */
-
- 'profile:comment:subject' => 'You have a new message on your comment wall!',
- 'profile:comment:body' => "You have a new message on your comment wall from %s. It reads:
-
-
-%s
-
-
-To view your message board comments, click here:
-
- %s
-
-To view %s's profile, click here:
-
- %s
-
-You cannot reply to this email.",
-
-/**
- * Profile error messages
- */
-
- 'profile:noaccess' => "You do not have permission to edit this profile.",
- 'profile:notfound' => "Sorry, we could not find the specified profile.",
- 'profile:icon:notfound' => "Sorry, there was a problem uploading your profile picture.",
- 'profile:icon:noaccess' => 'You cannot change this profile icon',
- 'profile:field_too_long' => 'Cannot save your profile information because the "%s" section is too long.',
+ 'profile' => 'Profile',
+ 'profile:notfound' => 'Sorry. We could not find the requested profile.',
);
diff --git a/mod/profile/manifest.xml b/mod/profile/manifest.xml
index a1307f24d..86fbc7b7b 100644
--- a/mod/profile/manifest.xml
+++ b/mod/profile/manifest.xml
@@ -1,14 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest>
- <field key="author" value="Curverider ltd" />
- <field key="version" value="1.8" />
- <field key="category" value="bundled" />
- <field key="category" value="social" />
- <field key="description" value="Elgg profile plugin." />
- <field key="website" value="http://www.elgg.org/" />
- <field key="copyright" value="(C) Curverider 2008-2010" />
- <field key="licence" value="GNU Public License version 2" />
- <field key="elgg_version" value="2010030101" />
- <field key="elgg_install_state" value="enabled" />
- <field key="admin_interface" value="advanced" />
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
+ <name>Profile</name>
+ <description>The default profile plugin.</description>
+ <author>Core developers</author>
+ <version>1.8</version>
+ <category>bundled</category>
+ <category>social</category>
+ <website>http://elgg.org/</website>
+ <copyright>See COPYRIGHT.txt</copyright>
+ <license>GNU General Public License Version 2</license>
+ <activate_on_install>true</activate_on_install>
+ <requires>
+ <type>elgg_release</type>
+ <version>1.8</version>
+ </requires>
</plugin_manifest>
diff --git a/mod/profile/profile_lib.php b/mod/profile/profile_lib.php
deleted file mode 100644
index b38286e1e..000000000
--- a/mod/profile/profile_lib.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-/**
- * Elgg profile index
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-/**
- * Returns the html for a user profile.
- *
- * @param string $username The username of the profile to display
- * @param string $section Which section is currently selected.
- *
- * return mixed FALSE or html for the profile.
- */
-function profile_get_user_profile_html($user, $section = 'activity') {
- $body = elgg_view('profile/profile_navigation', array('section' => $section, 'entity' => $user));
- $view_options = array('entity' => $user);
-
- switch($section){
- case 'friends':
- $body .= elgg_view('profile/profile_contents/friends', $view_options);
- break;
-
- case 'twitter':
- $body .= elgg_view('profile/profile_contents/twitter', $view_options);
- break;
- case 'feeds':
- $body .= elgg_view('profile/profile_contents/feeds', $view_options);
- break;
- case 'commentwall':
- $comments = $user->getAnnotations('commentwall', 200, 0, 'desc');
- $body .= elgg_view('profile/profile_contents/commentwall', array("entity" => $user, "comments" => $comments));
- break;
- case 'details':
- $body .= elgg_view('profile/profile_contents/details', $view_options);
- break;
-
- default:
- case 'activity':
- $body .= elgg_view('profile/profile_contents/activity', $view_options);
- break;
- }
-
- $body .= elgg_view('profile/profile_contents/sidebar', array('section' => $section));
- return $body;
-}
-
-/**
- * Dispatch the html for the edit section
- *
- * @param unknown_type $user
- * @param unknown_type $page
- * @return string
- */
-function profile_get_user_edit_content($user, $page) {
- $section = (isset($page[2])) ? $page[2] : 'details';
-
- switch ($section) {
- case 'icon':
- $content .= elgg_view_title(elgg_echo('profile:edit'));
- $content .= elgg_view("profile/editicon", array('entity' => $user));
- break;
- default:
- case 'details':
- $content = elgg_view_title(elgg_echo('profile:edit'));
- $content .= elgg_view("profile/edit", array('entity' => $user));
- break;
- }
-
- return $content;
-} \ No newline at end of file
diff --git a/mod/profile/start.php b/mod/profile/start.php
index 90caa8f64..ab596f235 100644
--- a/mod/profile/start.php
+++ b/mod/profile/start.php
@@ -3,278 +3,186 @@
* Elgg profile plugin
*
* @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
*/
+elgg_register_event_handler('init', 'system', 'profile_init', 1);
+
+// Metadata on users needs to be independent
+// outside of init so it happens earlier in boot. See #3316
+register_metadata_as_independent('user');
+
/**
- * Profile init function; sets up the profile functions
- *
+ * Profile init function
*/
function profile_init() {
- global $CONFIG;
-
- require_once 'profile_lib.php';
// Register a URL handler for users - this means that profile_url()
// will dictate the URL for all ElggUser objects
- register_entity_url_handler('profile_url', 'user', 'all');
-
- // Set up the menu for logged-in users
- elgg_extend_view('elgg_topbar/extend', 'profile/topbar_extend');
- //if (isloggedin()) {
- // add_menu(elgg_echo('profile:yours'), $_SESSION['user']->getURL() . '/extend');
- //}
-
- // Metadata on users needs to be independent
- register_metadata_as_independent('user');
-
- elgg_view_register_simplecache('icon/user/default/tiny');
- elgg_view_register_simplecache('icon/user/default/topbar');
- elgg_view_register_simplecache('icon/user/default/small');
- elgg_view_register_simplecache('icon/user/default/medium');
- elgg_view_register_simplecache('icon/user/default/large');
- elgg_view_register_simplecache('icon/user/default/master');
-
- // Register a page handler, so we can have nice URLs
- register_page_handler('profile', 'profile_page_handler');
- register_page_handler('icon', 'profile_icon_handler');
- register_page_handler('iconjs', 'profile_iconjs_handler');
-
- // Add Javascript reference to the page header
- elgg_extend_view('metatags', 'profile/metatags');
- elgg_extend_view('css', 'profile/css');
- elgg_extend_view('js/initialise_elgg', 'profile/javascript');
-
- // Now override icons
- register_plugin_hook('entity:icon:url', 'user', 'profile_usericon_hook');
-
- elgg_add_admin_submenu_item('defaultprofile', elgg_echo('profile:edit:default'), 'appearance');
-}
+ elgg_register_entity_url_handler('user', 'all', 'profile_url');
-/**
- * This function loads a set of default fields into the profile, then triggers a hook letting other plugins to edit
- * add and delete fields.
- *
- * Note: This is a secondary system:init call and is run at a super low priority to guarantee that it is called after all
- * other plugins have initialised.
- */
-function profile_fields_setup() {
- global $CONFIG;
-
- $profile_defaults = array (
- 'description' => 'longtext',
- 'briefdescription' => 'text',
- 'location' => 'tags',
- 'interests' => 'tags',
- 'skills' => 'tags',
- 'contactemail' => 'email',
- 'phone' => 'text',
- 'mobile' => 'text',
- 'website' => 'url',
- 'twitter' => 'text'
- );
+ elgg_register_plugin_hook_handler('entity:icon:url', 'user', 'profile_override_avatar_url');
+ elgg_unregister_plugin_hook_handler('entity:icon:url', 'user', 'user_avatar_hook');
- $loaded_default = array();
- if ($fieldlist = get_plugin_setting('user_defined_fields','profile')) {
- if (!empty($fieldlist)) {
- $fieldlistarray = explode(',',$fieldlist);
- $loaded_defaults = array();
- foreach($fieldlistarray as $listitem) {
- if ($translation = get_plugin_setting("admin_defined_profile_{$listitem}", 'profile')) {
- $type = get_plugin_setting("admin_defined_profile_type_{$listitem}", 'profile');
- $loaded_defaults["admin_defined_profile_{$listitem}"] = $type;
- add_translation(get_current_language(), array("profile:admin_defined_profile_{$listitem}" => $translation));
- }
- }
- }
- }
- if (count($loaded_defaults)) {
- $CONFIG->profile_using_custom = true;
- $profile_defaults = $loaded_defaults;
- }
+ elgg_register_simplecache_view('icon/user/default/tiny');
+ elgg_register_simplecache_view('icon/user/default/topbar');
+ elgg_register_simplecache_view('icon/user/default/small');
+ elgg_register_simplecache_view('icon/user/default/medium');
+ elgg_register_simplecache_view('icon/user/default/large');
+ elgg_register_simplecache_view('icon/user/default/master');
- $CONFIG->profile = trigger_plugin_hook('profile:fields', 'profile', NULL, $profile_defaults);
+ elgg_register_page_handler('profile', 'profile_page_handler');
- // register any tag metadata names
- foreach ($CONFIG->profile as $name => $type) {
- if ($type == 'tags') {
- elgg_register_tag_metadata_name($name);
- // register a tag name translation
- add_translation(get_current_language(), array("tag_names:$name" => elgg_echo("profile:$name")));
- }
- }
+ elgg_extend_view('page/elements/head', 'profile/metatags');
+ elgg_extend_view('css/elgg', 'profile/css');
+ elgg_extend_view('js/elgg', 'profile/js');
+
+ // allow ECML in parts of the profile
+ elgg_register_plugin_hook_handler('get_views', 'ecml', 'profile_ecml_views_hook');
+
+ // allow admins to set default widgets for users on profiles
+ elgg_register_plugin_hook_handler('get_list', 'default_widgets', 'profile_default_widgets_hook');
}
/**
* Profile page handler
*
- * @param array $page Array of page elements, forwarded by the page handling mechanism
+ * @param array $page Array of URL segments passed by the page handling mechanism
+ * @return bool
*/
function profile_page_handler($page) {
- global $CONFIG;
- $username = $action = NULL;
-
- // short circuit if invalid or banned username
if (isset($page[0])) {
$username = $page[0];
$user = get_user_by_username($username);
+ elgg_set_page_owner_guid($user->guid);
+ } elseif (elgg_is_logged_in()) {
+ forward(elgg_get_logged_in_user_entity()->getURL());
+ }
- if (!$user || ($user->isBanned() && !isadminloggedin())) {
- return elgg_echo('profile:notfound');
- } else {
- set_input('username', $page[0]);
- }
+ // short circuit if invalid or banned username
+ if (!$user || ($user->isBanned() && !elgg_is_admin_logged_in())) {
+ register_error(elgg_echo('profile:notfound'));
+ forward();
}
+ $action = NULL;
if (isset($page[1])) {
$action = $page[1];
}
- switch ($action) {
- case 'edit':
- $layout = 'one_column_with_sidebar';
-
- if (!$user || !$user->canEdit()) {
- register_error(elgg_echo("profile:noaccess"));
- forward();
- }
-
- $content = profile_get_user_edit_content($user, $page);
- $content = elgg_view_layout($layout, $content);
- break;
-
- default:
- $layout = 'one_column';
- if (isset($page[1])) {
- $section = $page[1];
- } else {
- $section = 'activity';
- }
- $content = profile_get_user_profile_html($user, $section);
- $content = elgg_view_layout($layout, $content);
- break;
+ if ($action == 'edit') {
+ // use the core profile edit page
+ $base_dir = elgg_get_root_path();
+ require "{$base_dir}pages/profile/edit.php";
+ return true;
}
- page_draw($title, $content);
- return;
+ // main profile page
+ $params = array(
+ 'content' => elgg_view('profile/wrapper'),
+ 'num_columns' => 3,
+ );
+ $content = elgg_view_layout('widgets', $params);
+
+ $body = elgg_view_layout('one_column', array('content' => $content));
+ echo elgg_view_page($user->name, $body);
+ return true;
}
/**
- * Pagesetup function
+ * Profile URL generator for $user->getUrl();
*
+ * @param ElggUser $user
+ * @return string User URL
*/
-function profile_pagesetup()
-{
- global $CONFIG;
-
- //add submenu options
- if (get_context() == "profile") {
- $page_owner = page_owner_entity();
- add_submenu_item(elgg_echo('profile:editdetails'), $CONFIG->wwwroot . "pg/profile/{$page_owner->username}/edit/details");
- add_submenu_item(elgg_echo('profile:editicon'), $CONFIG->wwwroot . "pg/profile/{$page_owner->username}/edit/icon");
- }
+function profile_url($user) {
+ return elgg_get_site_url() . "profile/" . $user->username;
}
/**
- * Profile icon page handler
+ * Use a URL for avatars that avoids loading Elgg engine for better performance
*
- * @param array $page Array of page elements, forwarded by the page handling mechanism
+ * @param string $hook
+ * @param string $entity_type
+ * @param string $return_value
+ * @param array $params
+ * @return string
*/
-function profile_icon_handler($page) {
- global $CONFIG;
+function profile_override_avatar_url($hook, $entity_type, $return_value, $params) {
- // The username should be the file we're getting
- if (isset($page[0])) {
- set_input('username',$page[0]);
+ // if someone already set this, quit
+ if ($return_value) {
+ return null;
}
- if (isset($page[1])) {
- set_input('size',$page[1]);
+
+ $user = $params['entity'];
+ $size = $params['size'];
+
+ if (!elgg_instanceof($user, 'user')) {
+ return null;
}
- // Include the standard profile index
- include($CONFIG->pluginspath . "profile/icon.php");
-}
-/**
- * Icon JS
- */
-function profile_iconjs_handler($page) {
- global $CONFIG;
- include($CONFIG->pluginspath . "profile/javascript.php");
+ $user_guid = $user->getGUID();
+ $icon_time = $user->icontime;
+
+ if (!$icon_time) {
+ return "_graphics/icons/user/default{$size}.gif";
+ }
+
+ if ($user->isBanned()) {
+ return null;
+ }
+
+ $filehandler = new ElggFile();
+ $filehandler->owner_guid = $user_guid;
+ $filehandler->setFilename("profile/{$user_guid}{$size}.jpg");
+
+ try {
+ if ($filehandler->exists()) {
+ $join_date = $user->getTimeCreated();
+ return "mod/profile/icondirect.php?lastcache=$icon_time&joindate=$join_date&guid=$user_guid&size=$size";
+ }
+ } catch (InvalidParameterException $e) {
+ elgg_log("Unable to get profile icon for user with GUID $user_guid", 'ERROR');
+ return "_graphics/icons/default/$size.png";
+ }
+
+ return null;
}
/**
- * Profile URL generator for $user->getUrl();
+ * Parse ECML on parts of the profile
*
- * @param ElggUser $user
- * @return string User URL
+ * @param string $hook
+ * @param string $entity_type
+ * @param array $return_value
+ * @return array
*/
-function profile_url($user) {
- global $CONFIG;
- return $CONFIG->wwwroot . "pg/profile/" . $user->username;
+function profile_ecml_views_hook($hook, $entity_type, $return_value) {
+ $return_value['profile/profile_content'] = elgg_echo('profile');
+
+ return $return_value;
}
/**
- * This hooks into the getIcon API and provides nice user icons for users where possible.
+ * Register profile widgets with default widgets
*
- * @param unknown_type $hook
- * @param unknown_type $entity_type
- * @param unknown_type $returnvalue
- * @param unknown_type $params
- * @return unknown
+ * @param string $hook
+ * @param string $type
+ * @param array $return
+ * @return array
*/
-function profile_usericon_hook($hook, $entity_type, $returnvalue, $params){
- global $CONFIG;
- if ((!$returnvalue) && ($hook == 'entity:icon:url') && ($params['entity'] instanceof ElggUser)){
- $entity = $params['entity'];
- $type = $entity->type;
- $subtype = get_subtype_from_id($entity->subtype);
- $viewtype = $params['viewtype'];
- $size = $params['size'];
- $username = $entity->username;
-
- if ($icontime = $entity->icontime) {
- $icontime = "{$icontime}";
- } else {
- $icontime = "default";
- }
-
- if ($entity->isBanned()) {
- return elgg_view('icon/user/default/'.$size);
- }
-
- $filehandler = new ElggFile();
- $filehandler->owner_guid = $entity->getGUID();
- $filehandler->setFilename("profile/" . $username . $size . ".jpg");
+function profile_default_widgets_hook($hook, $type, $return) {
+ $return[] = array(
+ 'name' => elgg_echo('profile'),
+ 'widget_context' => 'profile',
+ 'widget_columns' => 3,
+
+ 'event' => 'create',
+ 'entity_type' => 'user',
+ 'entity_subtype' => ELGG_ENTITIES_ANY_VALUE,
+ );
- if ($filehandler->exists()) {
- //$url = $CONFIG->url . "pg/icon/$username/$size/$icontime.jpg";
- return $CONFIG->wwwroot . 'mod/profile/icondirect.php?lastcache='.$icontime.'&username='.$entity->username.'&joindate=' . $entity->time_created . '&guid=' . $entity->guid . '&size='.$size;
- }
- }
+ return $return;
}
-
-// Make sure the profile initialisation function is called on initialisation
-register_elgg_event_handler('init','system','profile_init',1);
-register_elgg_event_handler('init','system','profile_fields_setup', 10000); // Ensure this runs after other plugins
-
-register_elgg_event_handler('pagesetup','system','profile_pagesetup');
-register_elgg_event_handler('profileupdate','all','object_notifications');
-
-
-// Register actions
-global $CONFIG;
-register_action("profile/edit",false,$CONFIG->pluginspath . "profile/actions/edit.php");
-register_action("profile/iconupload",false,$CONFIG->pluginspath . "profile/actions/iconupload.php");
-register_action("profile/cropicon",false,$CONFIG->pluginspath . "profile/actions/cropicon.php");
-register_action("profile/editdefault",false,$CONFIG->pluginspath . "profile/actions/editdefault.php", true);
-register_action("profile/editdefault/delete",false,$CONFIG->pluginspath . "profile/actions/deletedefaultprofileitem.php", true);
-register_action("profile/editdefault/reset",false,$CONFIG->pluginspath . "profile/actions/resetdefaultprofile.php", true);
-register_action("profile/editdefault/reorder",false,$CONFIG->pluginspath . "profile/actions/reorder.php", true);
-register_action("profile/editdefault/editfield",false,$CONFIG->pluginspath . "profile/actions/editfield.php", true);
-register_action("profile/addcomment",false,$CONFIG->pluginspath . "profile/actions/addcomment.php");
-register_action("profile/deletecomment",false,$CONFIG->pluginspath . "profile/actions/deletecomment.php");
diff --git a/mod/profile/vendor/jquery.jeditable.mini.js b/mod/profile/vendor/jquery.jeditable.mini.js
deleted file mode 100644
index 6c867383a..000000000
--- a/mod/profile/vendor/jquery.jeditable.mini.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// http://www.appelsiini.net/projects/jeditable
-(function($){$.fn.editable=function(target,options){if('disable'==target){$(this).data('disabled.editable',true);return;}
-if('enable'==target){$(this).data('disabled.editable',false);return;}
-if('destroy'==target){$(this).unbind($(this).data('event.editable')).removeData('disabled.editable').removeData('event.editable');return;}
-var settings=$.extend({},$.fn.editable.defaults,{target:target},options);var plugin=$.editable.types[settings.type].plugin||function(){};var submit=$.editable.types[settings.type].submit||function(){};var buttons=$.editable.types[settings.type].buttons||$.editable.types['defaults'].buttons;var content=$.editable.types[settings.type].content||$.editable.types['defaults'].content;var element=$.editable.types[settings.type].element||$.editable.types['defaults'].element;var reset=$.editable.types[settings.type].reset||$.editable.types['defaults'].reset;var callback=settings.callback||function(){};var onedit=settings.onedit||function(){};var onsubmit=settings.onsubmit||function(){};var onreset=settings.onreset||function(){};var onerror=settings.onerror||reset;if(settings.tooltip){$(this).attr('title',settings.tooltip);}
-settings.autowidth='auto'==settings.width;settings.autoheight='auto'==settings.height;return this.each(function(){var self=this;var savedwidth=$(self).width();var savedheight=$(self).height();$(this).data('event.editable',settings.event);if(!$.trim($(this).html())){$(this).html(settings.placeholder);}
-$(this).bind(settings.event,function(e){if(true===$(this).data('disabled.editable')){return;}
-if(self.editing){return;}
-if(false===onedit.apply(this,[settings,self])){return;}
-e.preventDefault();e.stopPropagation();if(settings.tooltip){$(self).removeAttr('title');}
-if(0==$(self).width()){settings.width=savedwidth;settings.height=savedheight;}else{if(settings.width!='none'){settings.width=settings.autowidth?$(self).width():settings.width;}
-if(settings.height!='none'){settings.height=settings.autoheight?$(self).height():settings.height;}}
-if($(this).html().toLowerCase().replace(/(;|")/g,'')==settings.placeholder.toLowerCase().replace(/(;|")/g,'')){$(this).html('');}
-self.editing=true;self.revert=$(self).html();$(self).html('');var form=$('<form />');if(settings.cssclass){if('inherit'==settings.cssclass){form.attr('class',$(self).attr('class'));}else{form.attr('class',settings.cssclass);}}
-if(settings.style){if('inherit'==settings.style){form.attr('style',$(self).attr('style'));form.css('display',$(self).css('display'));}else{form.attr('style',settings.style);}}
-var input=element.apply(form,[settings,self]);var input_content;if(settings.loadurl){var t=setTimeout(function(){input.disabled=true;content.apply(form,[settings.loadtext,settings,self]);},100);var loaddata={};loaddata[settings.id]=self.id;if($.isFunction(settings.loaddata)){$.extend(loaddata,settings.loaddata.apply(self,[self.revert,settings]));}else{$.extend(loaddata,settings.loaddata);}
-$.ajax({type:settings.loadtype,url:settings.loadurl,data:loaddata,async:false,success:function(result){window.clearTimeout(t);input_content=result;input.disabled=false;}});}else if(settings.data){input_content=settings.data;if($.isFunction(settings.data)){input_content=settings.data.apply(self,[self.revert,settings]);}}else{input_content=self.revert;}
-content.apply(form,[input_content,settings,self]);input.attr('name',settings.name);buttons.apply(form,[settings,self]);$(self).append(form);plugin.apply(form,[settings,self]);$(':input:visible:enabled:first',form).focus();if(settings.select){input.select();}
-input.keydown(function(e){if(e.keyCode==27){e.preventDefault();reset.apply(form,[settings,self]);}});var t;if('cancel'==settings.onblur){input.blur(function(e){t=setTimeout(function(){reset.apply(form,[settings,self]);},500);});}else if('submit'==settings.onblur){input.blur(function(e){t=setTimeout(function(){form.submit();},200);});}else if($.isFunction(settings.onblur)){input.blur(function(e){settings.onblur.apply(self,[input.val(),settings]);});}else{input.blur(function(e){});}
-form.submit(function(e){if(t){clearTimeout(t);}
-e.preventDefault();if(false!==onsubmit.apply(form,[settings,self])){if(false!==submit.apply(form,[settings,self])){if($.isFunction(settings.target)){var str=settings.target.apply(self,[input.val(),settings]);$(self).html(str);self.editing=false;callback.apply(self,[self.innerHTML,settings]);if(!$.trim($(self).html())){$(self).html(settings.placeholder);}}else{var submitdata={};submitdata[settings.name]=input.val();submitdata[settings.id]=self.id;if($.isFunction(settings.submitdata)){$.extend(submitdata,settings.submitdata.apply(self,[self.revert,settings]));}else{$.extend(submitdata,settings.submitdata);}
-if('PUT'==settings.method){submitdata['_method']='put';}
-$(self).html(settings.indicator);var ajaxoptions={type:'POST',data:submitdata,dataType:'html',url:settings.target,success:function(result,status){if(ajaxoptions.dataType=='html'){$(self).html(result);}
-self.editing=false;callback.apply(self,[result,settings]);if(!$.trim($(self).html())){$(self).html(settings.placeholder);}},error:function(xhr,status,error){onerror.apply(form,[settings,self,xhr]);}};$.extend(ajaxoptions,settings.ajaxoptions);$.ajax(ajaxoptions);}}}
-$(self).attr('title',settings.tooltip);return false;});});this.reset=function(form){if(this.editing){if(false!==onreset.apply(form,[settings,self])){$(self).html(self.revert);self.editing=false;if(!$.trim($(self).html())){$(self).html(settings.placeholder);}
-if(settings.tooltip){$(self).attr('title',settings.tooltip);}}}};});};$.editable={types:{defaults:{element:function(settings,original){var input=$('<input type="hidden"></input>');$(this).append(input);return(input);},content:function(string,settings,original){$(':input:first',this).val(string);},reset:function(settings,original){original.reset(this);},buttons:function(settings,original){var form=this;if(settings.submit){if(settings.submit.match(/>$/)){var submit=$(settings.submit).click(function(){if(submit.attr("type")!="submit"){form.submit();}});}else{var submit=$('<button type="submit" />');submit.html(settings.submit);}
-$(this).append(submit);}
-if(settings.cancel){if(settings.cancel.match(/>$/)){var cancel=$(settings.cancel);}else{var cancel=$('<button type="cancel" />');cancel.html(settings.cancel);}
-$(this).append(cancel);$(cancel).click(function(event){if($.isFunction($.editable.types[settings.type].reset)){var reset=$.editable.types[settings.type].reset;}else{var reset=$.editable.types['defaults'].reset;}
-reset.apply(form,[settings,original]);return false;});}}},text:{element:function(settings,original){var input=$('<input />');if(settings.width!='none'){input.width(settings.width);}
-if(settings.height!='none'){input.height(settings.height);}
-input.attr('autocomplete','off');$(this).append(input);return(input);}},textarea:{element:function(settings,original){var textarea=$('<textarea />');if(settings.rows){textarea.attr('rows',settings.rows);}else if(settings.height!="none"){textarea.height(settings.height);}
-if(settings.cols){textarea.attr('cols',settings.cols);}else if(settings.width!="none"){textarea.width(settings.width);}
-$(this).append(textarea);return(textarea);}},select:{element:function(settings,original){var select=$('<select />');$(this).append(select);return(select);},content:function(data,settings,original){if(String==data.constructor){eval('var json = '+data);}else{var json=data;}
-for(var key in json){if(!json.hasOwnProperty(key)){continue;}
-if('selected'==key){continue;}
-var option=$('<option />').val(key).append(json[key]);$('select',this).append(option);}
-$('select',this).children().each(function(){if($(this).val()==json['selected']||$(this).text()==$.trim(original.revert)){$(this).attr('selected','selected');}});}}},addInputType:function(name,input){$.editable.types[name]=input;}};$.fn.editable.defaults={name:'value',id:'id',type:'text',width:'auto',height:'auto',event:'click.editable',onblur:'cancel',loadtype:'GET',loadtext:'Loading...',placeholder:'Click to edit',loaddata:{},submitdata:{},ajaxoptions:{}};})(jQuery);
diff --git a/mod/profile/views/default/admin/appearance/defaultprofile.php b/mod/profile/views/default/admin/appearance/defaultprofile.php
deleted file mode 100644
index 7c498780b..000000000
--- a/mod/profile/views/default/admin/appearance/defaultprofile.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/**
- * Elgg profile - Admin area: edit default profile fields
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-$title = elgg_view_title(elgg_echo('profile:edit:default'));
-$form = elgg_view('profile/editdefaultprofile');
-
-// List form elements
-$n = 0;
-$loaded_defaults = array();
-$items = array();
-if ($fieldlist = get_plugin_setting('user_defined_fields', 'profile')) {
- $fieldlistarray = explode(',', $fieldlist);
- foreach($fieldlistarray as $listitem) {
- if ($translation = get_plugin_setting("admin_defined_profile_{$listitem}", 'profile')) {
- $item = new stdClass;
- $item->translation = $translation;
- $item->shortname = $listitem;
- $item->name = "admin_defined_profile_{$listitem}";
- $item->type = get_plugin_setting("admin_defined_profile_type_{$listitem}", 'profile');
- $items[] = $item;
- }
- }
-}
-
-$listing = elgg_view('profile/editdefaultprofileitems',array('items' => $items, 'fieldlist' => $fieldlist));
-
-$resetlisting = elgg_view('input/form',
- array (
- 'body' => elgg_view('input/submit', array('value' => elgg_echo('profile:resetdefault'), 'class' => 'action_button disabled')),
- 'action' => $CONFIG->wwwroot . 'action/profile/editdefault/reset'
- )
- );
-
-$body = <<<__HTML
-$title
-$form
-$listing
-<div class="default_profile_reset">
- $resetlisting
-</div>
-__HTML;
-
-echo $body;
diff --git a/mod/profile/views/default/icon/user/default/large.php b/mod/profile/views/default/icon/user/default/large.php
deleted file mode 100644
index 3ce382532..000000000
--- a/mod/profile/views/default/icon/user/default/large.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
- echo $vars['url'] . "mod/profile/graphics/defaultlarge.gif";
-?> \ No newline at end of file
diff --git a/mod/profile/views/default/icon/user/default/master.php b/mod/profile/views/default/icon/user/default/master.php
deleted file mode 100644
index 7c5ea847c..000000000
--- a/mod/profile/views/default/icon/user/default/master.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
- echo $vars['url'] . "mod/profile/graphics/defaultmaster.gif";
-?> \ No newline at end of file
diff --git a/mod/profile/views/default/icon/user/default/medium.php b/mod/profile/views/default/icon/user/default/medium.php
deleted file mode 100644
index d5f6db343..000000000
--- a/mod/profile/views/default/icon/user/default/medium.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
- echo $vars['url'] . "mod/profile/graphics/defaultmedium.gif";
-?> \ No newline at end of file
diff --git a/mod/profile/views/default/icon/user/default/small.php b/mod/profile/views/default/icon/user/default/small.php
deleted file mode 100644
index 55f113c41..000000000
--- a/mod/profile/views/default/icon/user/default/small.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
- echo $vars['url'] . "mod/profile/graphics/defaultsmall.gif";
-?> \ No newline at end of file
diff --git a/mod/profile/views/default/icon/user/default/tiny.php b/mod/profile/views/default/icon/user/default/tiny.php
deleted file mode 100644
index e47cdd3da..000000000
--- a/mod/profile/views/default/icon/user/default/tiny.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
- echo $vars['url'] . "mod/profile/graphics/defaulttiny.gif";
-?> \ No newline at end of file
diff --git a/mod/profile/views/default/icon/user/default/topbar.php b/mod/profile/views/default/icon/user/default/topbar.php
deleted file mode 100644
index ad11588fa..000000000
--- a/mod/profile/views/default/icon/user/default/topbar.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
- echo $vars['url'] . "mod/profile/graphics/defaulttopbar.gif";
-?> \ No newline at end of file
diff --git a/mod/profile/views/default/js/jquery.imgareaselect-0.8.js b/mod/profile/views/default/js/jquery.imgareaselect-0.8.js
deleted file mode 100644
index 456114755..000000000
--- a/mod/profile/views/default/js/jquery.imgareaselect-0.8.js
+++ /dev/null
@@ -1,635 +0,0 @@
-/*
- * imgAreaSelect jQuery plugin
- * version 0.8
- *
- * Copyright (c) 2008-2009 Michal Wojciechowski (odyniec.net)
- *
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://odyniec.net/projects/imgareaselect/
- *
- */
-
-(function($) {
-
-$.imgAreaSelect = { onKeyPress: null };
-
-$.imgAreaSelect.init = function (img, options) {
- var $img = $(img), imgLoaded, $box = $('<div />'), $area = $('<div />'),
- $border1 = $('<div />'), $border2 = $('<div />'), $areaOpera,
- $outLeft = $('<div />'), $outTop = $('<div />'),
- $outRight = $('<div />'), $outBottom = $('<div />'),
- $handles = $([]), handleWidth, handles = [ ], left, top, M = Math,
- imgOfs, imgWidth, imgHeight, $parent, parOfs,
- zIndex = 0, position = 'absolute', $p, startX, startY,
- scaleX = 1, scaleY = 1, resizeMargin = 10, resize = [ ], V = 0, H = 1,
- d, aspectRatio, x1, x2, y1, y2, x, y, adjusted, shown, i,
- selection = { x1: 0, y1: 0, x2: 0, y2: 0, width: 0, height: 0 };
-
- var $o = $outLeft.add($outTop).add($outRight).add($outBottom);
-
- function viewX(x)
- {
- return x + imgOfs.left - parOfs.left;
- }
-
- function viewY(y)
- {
- return y + imgOfs.top - parOfs.top;
- }
-
- function selX(x)
- {
- return x - imgOfs.left + parOfs.left;
- }
-
- function selY(y)
- {
- return y - imgOfs.top + parOfs.top;
- }
-
- function evX(event)
- {
- return event.pageX - parOfs.left;
- }
-
- function evY(event)
- {
- return event.pageY - parOfs.top;
- }
-
- function trueSelection()
- {
- return { x1: M.round(selection.x1 * scaleX),
- y1: M.round(selection.y1 * scaleY),
- x2: M.round(selection.x2 * scaleX),
- y2: M.round(selection.y2 * scaleY),
- width: M.round(selection.x2 * scaleX) - M.round(selection.x1 * scaleX),
- height: M.round(selection.y2 * scaleY) - M.round(selection.y1 * scaleY) };
- }
-
- function getZIndex()
- {
- $p = $img;
-
- while ($p.length && !$p.is('body')) {
- if (!isNaN($p.css('z-index')) && $p.css('z-index') > zIndex)
- zIndex = $p.css('z-index');
- if ($p.css('position') == 'fixed')
- position = 'fixed';
-
- $p = $p.parent();
- }
-
- if (!isNaN(options.zIndex))
- zIndex = options.zIndex;
- }
-
- function adjust()
- {
- imgOfs = { left: M.round($img.offset().left), top: M.round($img.offset().top) };
- imgWidth = $img.width();
- imgHeight = $img.height();
-
- if ($().jquery == '1.3.2' && $.browser.safari && position == 'fixed') {
- imgOfs.top += M.max(document.documentElement.scrollTop, $('body').scrollTop());
- imgOfs.left += M.max(document.documentElement.scrollLeft, $('body').scrollLeft());
- }
-
- parOfs = $.inArray($parent.css('position'), ['absolute', 'relative']) != -1 ?
- { left: M.round($parent.offset().left) - $parent.scrollLeft(),
- top: M.round($parent.offset().top) - $parent.scrollTop() } :
- position == 'fixed' ?
- { left: $(document).scrollLeft(), top: $(document).scrollTop() } :
- { left: 0, top: 0 };
-
- left = viewX(0);
- top = viewY(0);
- }
-
- function update(resetKeyPress)
- {
- if (!shown) return;
-
- $box.css({
- left: viewX(selection.x1) + 'px', top: viewY(selection.y1) + 'px',
- width: selection.width + 'px', height: selection.height + 'px'
- });
- $area.add($border1).add($border2).css({
- left: '0px', top: '0px',
- width: M.max(selection.width - options.borderWidth * 2, 0) + 'px',
- height: M.max(selection.height - options.borderWidth * 2, 0) + 'px'
- });
- $border1.css({ borderStyle: 'solid', borderColor: options.borderColor1 });
- $border2.css({ borderStyle: 'dashed', borderColor: options.borderColor2 });
- $border1.add($border2).css({ opacity: options.borderOpacity });
- $outLeft.css({ left: left + 'px', top: top + 'px',
- width: selection.x1 + 'px', height: imgHeight + 'px' });
- $outTop.css({ left: left + selection.x1 + 'px', top: top + 'px',
- width: selection.width + 'px', height: selection.y1 + 'px' });
- $outRight.css({ left: left + selection.x2 + 'px', top: top + 'px',
- width: imgWidth - selection.x2 + 'px', height: imgHeight + 'px' });
- $outBottom.css({ left: left + selection.x1 + 'px', top: top + selection.y2 + 'px',
- width: selection.width + 'px', height: imgHeight - selection.y2 + 'px' });
-
- if (handles.length) {
- handles[1].css({ left: selection.width - handleWidth + 'px' });
- handles[2].css({ left: selection.width - handleWidth + 'px',
- top: selection.height - handleWidth + 'px' });
- handles[3].css({ top: selection.height - handleWidth + 'px' });
-
- if (handles.length == 8) {
- handles[4].css({ left: (selection.width - handleWidth) / 2 + 'px' });
- handles[5].css({ left: selection.width - handleWidth + 'px',
- top: (selection.height - handleWidth) / 2 + 'px' });
- handles[6].css({ left: (selection.width - handleWidth) / 2 + 'px',
- top: selection.height - handleWidth + 'px' });
- handles[7].css({ top: (selection.height - handleWidth) / 2 + 'px' });
- }
- }
-
- if (resetKeyPress !== false) {
- if ($.imgAreaSelect.keyPress != docKeyPress)
- $(document).unbind($.imgAreaSelect.keyPress,
- $.imgAreaSelect.onKeyPress);
-
- if (options.keys)
- $(document).bind($.imgAreaSelect.keyPress,
- $.imgAreaSelect.onKeyPress = docKeyPress);
- }
-
- if ($.browser.msie && options.borderWidth == 1 && options.borderOpacity < 1) {
- $border1.add($border2).css('margin', '0');
- setTimeout(function () { $border1.add($border2).css('margin', 'auto'); }, 0);
- }
- }
-
- function areaMouseMove(event)
- {
- if (!adjusted) {
- adjust();
- adjusted = true;
-
- $box.one('mouseout', function () { adjusted = false; });
- }
-
- x = selX(evX(event)) - selection.x1;
- y = selY(evY(event)) - selection.y1;
-
- resize = [ ];
-
- if (options.resizable) {
- if (y <= resizeMargin)
- resize[V] = 'n';
- else if (y >= selection.height - resizeMargin)
- resize[V] = 's';
- if (x <= resizeMargin)
- resize[H] = 'w';
- else if (x >= selection.width - resizeMargin)
- resize[H] = 'e';
- }
-
- $box.css('cursor', resize.length ? resize.join('') + '-resize' :
- options.movable ? 'move' : '');
- if ($areaOpera)
- $areaOpera.toggle();
- }
-
- function docMouseUp(event)
- {
- resize = [ ];
-
- $('body').css('cursor', '');
-
- if (options.autoHide || selection.width * selection.height == 0)
- $box.add($o).hide();
-
- options.onSelectEnd(img, trueSelection());
-
- $(document).unbind('mousemove', selectingMouseMove);
- $box.mousemove(areaMouseMove);
- }
-
- function areaMouseDown(event)
- {
- if (event.which != 1) return false;
-
- adjust();
-
- if (options.resizable && resize.length > 0) {
- $('body').css('cursor', resize.join('') + '-resize');
-
- x1 = viewX(selection[resize[H] == 'w' ? 'x2' : 'x1']);
- y1 = viewY(selection[resize[V] == 'n' ? 'y2' : 'y1']);
-
- $(document).mousemove(selectingMouseMove)
- .one('mouseup', docMouseUp);
- $box.unbind('mousemove', areaMouseMove);
- }
- else if (options.movable) {
- startX = left + selection.x1 - evX(event);
- startY = top + selection.y1 - evY(event);
-
- $box.unbind('mousemove', areaMouseMove);
-
- $(document).mousemove(movingMouseMove)
- .one('mouseup', function () {
- options.onSelectEnd(img, trueSelection());
-
- $(document).unbind('mousemove', movingMouseMove);
- $box.mousemove(areaMouseMove);
- });
- }
- else
- $img.mousedown(event);
-
- return false;
- }
-
- function aspectRatioXY()
- {
- x2 = M.max(left, M.min(left + imgWidth,
- x1 + M.abs(y2 - y1) * aspectRatio * (x2 < x1 ? -1 : 1)));
- y2 = M.round(M.max(top, M.min(top + imgHeight,
- y1 + M.abs(x2 - x1) / aspectRatio * (y2 < y1 ? -1 : 1))));
- x2 = M.round(x2);
- }
-
- function aspectRatioYX()
- {
- y2 = M.max(top, M.min(top + imgHeight,
- y1 + M.abs(x2 - x1) / aspectRatio * (y2 < y1 ? -1 : 1)));
- x2 = M.round(M.max(left, M.min(left + imgWidth,
- x1 + M.abs(y2 - y1) * aspectRatio * (x2 < x1 ? -1 : 1))));
- y2 = M.round(y2);
- }
-
- function doResize()
- {
- if (options.minWidth && M.abs(x2 - x1) < options.minWidth) {
- x2 = x1 - options.minWidth * (x2 < x1 ? 1 : -1);
-
- if (x2 < left)
- x1 = left + options.minWidth;
- else if (x2 > left + imgWidth)
- x1 = left + imgWidth - options.minWidth;
- }
-
- if (options.minHeight && M.abs(y2 - y1) < options.minHeight) {
- y2 = y1 - options.minHeight * (y2 < y1 ? 1 : -1);
-
- if (y2 < top)
- y1 = top + options.minHeight;
- else if (y2 > top + imgHeight)
- y1 = top + imgHeight - options.minHeight;
- }
-
- x2 = M.max(left, M.min(x2, left + imgWidth));
- y2 = M.max(top, M.min(y2, top + imgHeight));
-
- if (aspectRatio)
- if (M.abs(x2 - x1) / aspectRatio > M.abs(y2 - y1))
- aspectRatioYX();
- else
- aspectRatioXY();
-
- if (options.maxWidth && M.abs(x2 - x1) > options.maxWidth) {
- x2 = x1 - options.maxWidth * (x2 < x1 ? 1 : -1);
- if (aspectRatio) aspectRatioYX();
- }
-
- if (options.maxHeight && M.abs(y2 - y1) > options.maxHeight) {
- y2 = y1 - options.maxHeight * (y2 < y1 ? 1 : -1);
- if (aspectRatio) aspectRatioXY();
- }
-
- selection = { x1: selX(M.min(x1, x2)), x2: selX(M.max(x1, x2)),
- y1: selY(M.min(y1, y2)), y2: selY(M.max(y1, y2)),
- width: M.abs(x2 - x1), height: M.abs(y2 - y1) };
-
- update();
-
- options.onSelectChange(img, trueSelection());
- }
-
- function selectingMouseMove(event)
- {
- x2 = !resize.length || resize[H] || aspectRatio ? evX(event) : viewX(selection.x2);
- y2 = !resize.length || resize[V] || aspectRatio ? evY(event) : viewY(selection.y2);
-
- doResize();
-
- return false;
- }
-
- function doMove(newX1, newY1)
- {
- x2 = (x1 = newX1) + selection.width;
- y2 = (y1 = newY1) + selection.height;
-
- selection = $.extend(selection, { x1: selX(x1), y1: selY(y1),
- x2: selX(x2), y2: selY(y2) });
-
- update();
-
- options.onSelectChange(img, trueSelection());
- }
-
- function movingMouseMove(event)
- {
- x1 = M.max(left, M.min(startX + evX(event), left + imgWidth - selection.width));
- y1 = M.max(top, M.min(startY + evY(event), top + imgHeight - selection.height));
-
- doMove(x1, y1);
-
- event.preventDefault();
- return false;
- }
-
- function startSelection(event)
- {
- adjust();
-
- x2 = x1;
- y2 = y1;
- doResize();
-
- resize = [ ];
-
- $box.add($o.is(':visible') ? null : $o).show();
- shown = true;
-
- $(document).unbind('mouseup', cancelSelection)
- .mousemove(selectingMouseMove).one('mouseup', docMouseUp);
- $box.unbind('mousemove', areaMouseMove);
-
- options.onSelectStart(img, trueSelection());
- }
-
- function cancelSelection()
- {
- $(document).unbind('mousemove', startSelection);
- $box.add($o).hide();
-
- selection = { x1: 0, y1: 0, x2: 0, y2: 0, width: 0, height: 0 };
-
- options.onSelectChange(img, selection);
- options.onSelectEnd(img, selection);
- }
-
- function imgMouseDown(event)
- {
- if (event.which != 1) return false;
-
- adjust();
- startX = x1 = evX(event);
- startY = y1 = evY(event);
-
- $(document).one('mousemove', startSelection)
- .one('mouseup', cancelSelection);
-
- return false;
- }
-
- function parentScroll()
- {
- adjust();
- update(false);
- x1 = viewX(selection.x1); y1 = viewY(selection.y1);
- x2 = viewX(selection.x2); y2 = viewY(selection.y2);
- }
-
- function imgLoad()
- {
- imgLoaded = true;
-
- if (options.show) {
- shown = true;
- adjust();
- update();
- $box.add($o).show();
- }
-
- $box.add($o).css({ visibility: '' });
- }
-
- var docKeyPress = function(event) {
- var k = options.keys, d, t, key = event.keyCode || event.which;
-
- d = !isNaN(k.alt) && (event.altKey || event.originalEvent.altKey) ? k.alt :
- !isNaN(k.ctrl) && event.ctrlKey ? k.ctrl :
- !isNaN(k.shift) && event.shiftKey ? k.shift :
- !isNaN(k.arrows) ? k.arrows : 10;
-
- if (k.arrows == 'resize' || (k.shift == 'resize' && event.shiftKey) ||
- (k.ctrl == 'resize' && event.ctrlKey) ||
- (k.alt == 'resize' && (event.altKey || event.originalEvent.altKey)))
- {
- switch (key) {
- case 37:
- d = -d;
- case 39:
- t = M.max(x1, x2);
- x1 = M.min(x1, x2);
- x2 = M.max(t + d, x1);
- if (aspectRatio) aspectRatioYX();
- break;
- case 38:
- d = -d;
- case 40:
- t = M.max(y1, y2);
- y1 = M.min(y1, y2);
- y2 = M.max(t + d, y1);
- if (aspectRatio) aspectRatioXY();
- break;
- default:
- return;
- }
-
- doResize();
- }
- else {
- x1 = M.min(x1, x2);
- y1 = M.min(y1, y2);
-
- switch (key) {
- case 37:
- doMove(M.max(x1 - d, left), y1);
- break;
- case 38:
- doMove(x1, M.max(y1 - d, top));
- break;
- case 39:
- doMove(x1 + M.min(d, imgWidth - selX(x2)), y1);
- break;
- case 40:
- doMove(x1, y1 + M.min(d, imgHeight - selY(y2)));
- break;
- default:
- return;
- }
- }
-
- return false;
- };
-
- this.setOptions = function(newOptions)
- {
- if (newOptions.parent)
- ($parent = $(newOptions.parent)).append($box.add($o));
-
- adjust();
- getZIndex();
-
- if (newOptions.x1 != null) {
- selection = { x1: newOptions.x1, y1: newOptions.y1,
- x2: newOptions.x2, y2: newOptions.y2 };
- newOptions.show = !newOptions.hide;
-
- x1 = viewX(selection.x1); y1 = viewY(selection.y1);
- x2 = viewX(selection.x2); y2 = viewY(selection.y2);
- selection.width = x2 - x1;
- selection.height = y2 - y1;
- }
-
- if (newOptions.handles != null) {
- $handles.remove();
- $handles = $(handles = [ ]);
-
- i = newOptions.handles ? newOptions.handles == 'corners' ? 4 : 8 : 0;
-
- while (i--)
- $handles = $handles.add(handles[i] = $('<div />'));
-
- handleWidth = 4 + options.borderWidth;
-
- $handles.css({ position: 'absolute', borderWidth: options.borderWidth + 'px',
- borderStyle: 'solid', borderColor: options.borderColor1,
- opacity: options.borderOpacity, backgroundColor: options.borderColor2,
- width: handleWidth + 'px', height: handleWidth + 'px',
- fontSize: '0px', zIndex: zIndex > 0 ? zIndex + 1 : '1' })
- .addClass(options.classPrefix + '-handle');
-
- handleWidth += options.borderWidth * 2;
- }
-
- update();
-
- options = $.extend(options, newOptions);
-
- if (options.imageWidth || options.imageHeight) {
- scaleX = (parseInt(options.imageWidth) || imgWidth) / imgWidth;
- scaleY = (parseInt(options.imageHeight) || imgHeight) / imgHeight;
- }
-
- if (newOptions.keys)
- options.keys = $.extend({ shift: 1, ctrl: 'resize' },
- newOptions.keys === true ? { } : newOptions.keys);
-
- $o.addClass(options.classPrefix + '-outer');
- $area.addClass(options.classPrefix + '-selection');
- $border1.addClass(options.classPrefix + '-border1');
- $border2.addClass(options.classPrefix + '-border2');
-
- $box.add($area).add($border1).add($border2).css({ borderWidth: options.borderWidth + 'px' });
- $area.css({ backgroundColor: options.selectionColor, opacity: options.selectionOpacity });
- $border1.css({ borderStyle: 'solid', borderColor: options.borderColor1 });
- $border2.css({ borderStyle: 'dashed', borderColor: options.borderColor2 });
- $border1.add($border2).css({ opacity: options.borderOpacity });
- $o.css({ opacity: options.outerOpacity, backgroundColor: options.outerColor });
-
- $box.append($area.add($border1).add($border2).add($handles).add($areaOpera));
-
- if (newOptions.hide)
- $box.add($o).hide();
- else if (newOptions.show && imgLoaded) {
- shown = true;
- update();
- $box.add($o).show();
- }
-
- aspectRatio = options.aspectRatio && (d = options.aspectRatio.split(/:/)) ?
- d[0] / d[1] : null;
-
- if (aspectRatio)
- if (options.minWidth)
- options.minHeight = parseInt(options.minWidth / aspectRatio);
- else if (options.minHeight)
- options.minWidth = parseInt(options.minHeight * aspectRatio);
-
- if (options.disable || options.enable === false) {
- $box.unbind('mousemove', areaMouseMove).unbind('mousedown', areaMouseDown);
- $img.add($o).unbind('mousedown', imgMouseDown);
- $(window).unbind('resize', parentScroll);
- $img.add($img.parents()).unbind('scroll', parentScroll);
- }
- else if (options.enable || options.disable === false) {
- if (options.resizable || options.movable)
- $box.mousemove(areaMouseMove).mousedown(areaMouseDown);
-
- if (!options.persistent)
- $img.add($o).mousedown(imgMouseDown);
- $(window).resize(parentScroll);
- $img.add($img.parents()).scroll(parentScroll);
- }
-
- options.enable = options.disable = undefined;
- };
-
- if ($.browser.msie)
- $img.attr('unselectable', 'on');
-
- $.imgAreaSelect.keyPress = $.browser.msie ||
- $.browser.safari ? 'keydown' : 'keypress';
-
- if ($.browser.opera)
- ($areaOpera = $('<div style="width: 100%; height: 100%; position: absolute;" />'))
- .css({ zIndex: zIndex > 0 ? zIndex + 2 : '2' });
-
- this.setOptions(options = $.extend({
- borderColor1: '#000',
- borderColor2: '#fff',
- borderWidth: 1,
- borderOpacity: .5,
- classPrefix: 'imgareaselect',
- movable: true,
- resizable: true,
- selectionColor: '#fff',
- selectionOpacity: 0,
- outerColor: '#000',
- outerOpacity: .4,
- parent: 'body',
- onSelectStart: function () {},
- onSelectChange: function () {},
- onSelectEnd: function () {}
- }, options));
-
- $box.add($o).css({ visibility: 'hidden', position: position,
- overflow: 'hidden', zIndex: zIndex > 0 ? zIndex : '0' });
- $area.css({ borderStyle: 'solid' });
- $box.css({ position: position, zIndex: zIndex > 0 ? zIndex + 2 : '2' });
- $area.add($border1).add($border2).css({ position: 'absolute' });
-
- img.complete || img.readyState == 'complete' || !$img.is('img') ?
- imgLoad() : $img.one('load', imgLoad);
-};
-
-$.fn.imgAreaSelect = function (options) {
- options = options || {};
-
- this.each(function () {
- if ($(this).data('imgAreaSelect'))
- $(this).data('imgAreaSelect').setOptions(options);
- else {
- if (options.enable === undefined && options.disable === undefined)
- options.enable = true;
-
- $(this).data('imgAreaSelect', new $.imgAreaSelect.init(this, options));
- }
- });
-
- return this;
-};
-
-})(jQuery);
diff --git a/mod/profile/views/default/js/jquery.imgareaselect-0.8.min.js b/mod/profile/views/default/js/jquery.imgareaselect-0.8.min.js
deleted file mode 100644
index d9605de1d..000000000
--- a/mod/profile/views/default/js/jquery.imgareaselect-0.8.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function($){$.imgAreaSelect={onKeyPress:null};$.imgAreaSelect.init=function(img,options){var $img=$(img),imgLoaded,$box=$('<div />'),$area=$('<div />'),$border1=$('<div />'),$border2=$('<div />'),$areaOpera,$outLeft=$('<div />'),$outTop=$('<div />'),$outRight=$('<div />'),$outBottom=$('<div />'),$handles=$([]),handleWidth,handles=[],left,top,M=Math,imgOfs,imgWidth,imgHeight,$parent,parOfs,zIndex=0,position='absolute',$p,startX,startY,scaleX=1,scaleY=1,resizeMargin=10,resize=[],V=0,H=1,d,aspectRatio,x1,x2,y1,y2,x,y,adjusted,shown,i,selection={x1:0,y1:0,x2:0,y2:0,width:0,height:0};var $o=$outLeft.add($outTop).add($outRight).add($outBottom);function viewX(x){return x+imgOfs.left-parOfs.left}function viewY(y){return y+imgOfs.top-parOfs.top}function selX(x){return x-imgOfs.left+parOfs.left}function selY(y){return y-imgOfs.top+parOfs.top}function evX(event){return event.pageX-parOfs.left}function evY(event){return event.pageY-parOfs.top}function trueSelection(){return{x1:M.round(selection.x1*scaleX),y1:M.round(selection.y1*scaleY),x2:M.round(selection.x2*scaleX),y2:M.round(selection.y2*scaleY),width:M.round(selection.x2*scaleX)-M.round(selection.x1*scaleX),height:M.round(selection.y2*scaleY)-M.round(selection.y1*scaleY)}}function getZIndex(){$p=$img;while($p.length&&!$p.is('body')){if(!isNaN($p.css('z-index'))&&$p.css('z-index')>zIndex)zIndex=$p.css('z-index');if($p.css('position')=='fixed')position='fixed';$p=$p.parent()}if(!isNaN(options.zIndex))zIndex=options.zIndex}function adjust(){imgOfs={left:M.round($img.offset().left),top:M.round($img.offset().top)};imgWidth=$img.width();imgHeight=$img.height();if($().jquery=='1.3.2'&&$.browser.safari&&position=='fixed'){imgOfs.top+=M.max(document.documentElement.scrollTop,$('body').scrollTop());imgOfs.left+=M.max(document.documentElement.scrollLeft,$('body').scrollLeft())}parOfs=$.inArray($parent.css('position'),['absolute','relative'])!=-1?{left:M.round($parent.offset().left)-$parent.scrollLeft(),top:M.round($parent.offset().top)-$parent.scrollTop()}:position=='fixed'?{left:$(document).scrollLeft(),top:$(document).scrollTop()}:{left:0,top:0};left=viewX(0);top=viewY(0)}function update(resetKeyPress){if(!shown)return;$box.css({left:viewX(selection.x1)+'px',top:viewY(selection.y1)+'px',width:selection.width+'px',height:selection.height+'px'});$area.add($border1).add($border2).css({left:'0px',top:'0px',width:M.max(selection.width-options.borderWidth*2,0)+'px',height:M.max(selection.height-options.borderWidth*2,0)+'px'});$border1.css({borderStyle:'solid',borderColor:options.borderColor1});$border2.css({borderStyle:'dashed',borderColor:options.borderColor2});$border1.add($border2).css({opacity:options.borderOpacity});$outLeft.css({left:left+'px',top:top+'px',width:selection.x1+'px',height:imgHeight+'px'});$outTop.css({left:left+selection.x1+'px',top:top+'px',width:selection.width+'px',height:selection.y1+'px'});$outRight.css({left:left+selection.x2+'px',top:top+'px',width:imgWidth-selection.x2+'px',height:imgHeight+'px'});$outBottom.css({left:left+selection.x1+'px',top:top+selection.y2+'px',width:selection.width+'px',height:imgHeight-selection.y2+'px'});if(handles.length){handles[1].css({left:selection.width-handleWidth+'px'});handles[2].css({left:selection.width-handleWidth+'px',top:selection.height-handleWidth+'px'});handles[3].css({top:selection.height-handleWidth+'px'});if(handles.length==8){handles[4].css({left:(selection.width-handleWidth)/2+'px'});handles[5].css({left:selection.width-handleWidth+'px',top:(selection.height-handleWidth)/2+'px'});handles[6].css({left:(selection.width-handleWidth)/2+'px',top:selection.height-handleWidth+'px'});handles[7].css({top:(selection.height-handleWidth)/2+'px'})}}if(resetKeyPress!==false){if($.imgAreaSelect.keyPress!=docKeyPress)$(document).unbind($.imgAreaSelect.keyPress,$.imgAreaSelect.onKeyPress);if(options.keys)$(document).bind($.imgAreaSelect.keyPress,$.imgAreaSelect.onKeyPress=docKeyPress)}if($.browser.msie&&options.borderWidth==1&&options.borderOpacity<1){$border1.add($border2).css('margin','0');setTimeout(function(){$border1.add($border2).css('margin','auto')},0)}}function areaMouseMove(event){if(!adjusted){adjust();adjusted=true;$box.one('mouseout',function(){adjusted=false})}x=selX(evX(event))-selection.x1;y=selY(evY(event))-selection.y1;resize=[];if(options.resizable){if(y<=resizeMargin)resize[V]='n';else if(y>=selection.height-resizeMargin)resize[V]='s';if(x<=resizeMargin)resize[H]='w';else if(x>=selection.width-resizeMargin)resize[H]='e'}$box.css('cursor',resize.length?resize.join('')+'-resize':options.movable?'move':'');if($areaOpera)$areaOpera.toggle()}function docMouseUp(event){resize=[];$('body').css('cursor','');if(options.autoHide||selection.width*selection.height==0)$box.add($o).hide();options.onSelectEnd(img,trueSelection());$(document).unbind('mousemove',selectingMouseMove);$box.mousemove(areaMouseMove)}function areaMouseDown(event){if(event.which!=1)return false;adjust();if(options.resizable&&resize.length>0){$('body').css('cursor',resize.join('')+'-resize');x1=viewX(selection[resize[H]=='w'?'x2':'x1']);y1=viewY(selection[resize[V]=='n'?'y2':'y1']);$(document).mousemove(selectingMouseMove).one('mouseup',docMouseUp);$box.unbind('mousemove',areaMouseMove)}else if(options.movable){startX=left+selection.x1-evX(event);startY=top+selection.y1-evY(event);$box.unbind('mousemove',areaMouseMove);$(document).mousemove(movingMouseMove).one('mouseup',function(){options.onSelectEnd(img,trueSelection());$(document).unbind('mousemove',movingMouseMove);$box.mousemove(areaMouseMove)})}else $img.mousedown(event);return false}function aspectRatioXY(){x2=M.max(left,M.min(left+imgWidth,x1+M.abs(y2-y1)*aspectRatio*(x2<x1?-1:1)));y2=M.round(M.max(top,M.min(top+imgHeight,y1+M.abs(x2-x1)/aspectRatio*(y2<y1?-1:1))));x2=M.round(x2)}function aspectRatioYX(){y2=M.max(top,M.min(top+imgHeight,y1+M.abs(x2-x1)/aspectRatio*(y2<y1?-1:1)));x2=M.round(M.max(left,M.min(left+imgWidth,x1+M.abs(y2-y1)*aspectRatio*(x2<x1?-1:1))));y2=M.round(y2)}function doResize(){if(options.minWidth&&M.abs(x2-x1)<options.minWidth){x2=x1-options.minWidth*(x2<x1?1:-1);if(x2<left)x1=left+options.minWidth;else if(x2>left+imgWidth)x1=left+imgWidth-options.minWidth}if(options.minHeight&&M.abs(y2-y1)<options.minHeight){y2=y1-options.minHeight*(y2<y1?1:-1);if(y2<top)y1=top+options.minHeight;else if(y2>top+imgHeight)y1=top+imgHeight-options.minHeight}x2=M.max(left,M.min(x2,left+imgWidth));y2=M.max(top,M.min(y2,top+imgHeight));if(aspectRatio)if(M.abs(x2-x1)/aspectRatio>M.abs(y2-y1))aspectRatioYX();else aspectRatioXY();if(options.maxWidth&&M.abs(x2-x1)>options.maxWidth){x2=x1-options.maxWidth*(x2<x1?1:-1);if(aspectRatio)aspectRatioYX()}if(options.maxHeight&&M.abs(y2-y1)>options.maxHeight){y2=y1-options.maxHeight*(y2<y1?1:-1);if(aspectRatio)aspectRatioXY()}selection={x1:selX(M.min(x1,x2)),x2:selX(M.max(x1,x2)),y1:selY(M.min(y1,y2)),y2:selY(M.max(y1,y2)),width:M.abs(x2-x1),height:M.abs(y2-y1)};update();options.onSelectChange(img,trueSelection())}function selectingMouseMove(event){x2=!resize.length||resize[H]||aspectRatio?evX(event):viewX(selection.x2);y2=!resize.length||resize[V]||aspectRatio?evY(event):viewY(selection.y2);doResize();return false}function doMove(newX1,newY1){x2=(x1=newX1)+selection.width;y2=(y1=newY1)+selection.height;selection=$.extend(selection,{x1:selX(x1),y1:selY(y1),x2:selX(x2),y2:selY(y2)});update();options.onSelectChange(img,trueSelection())}function movingMouseMove(event){x1=M.max(left,M.min(startX+evX(event),left+imgWidth-selection.width));y1=M.max(top,M.min(startY+evY(event),top+imgHeight-selection.height));doMove(x1,y1);event.preventDefault();return false}function startSelection(event){adjust();x2=x1;y2=y1;doResize();resize=[];$box.add($o.is(':visible')?null:$o).show();shown=true;$(document).unbind('mouseup',cancelSelection).mousemove(selectingMouseMove).one('mouseup',docMouseUp);$box.unbind('mousemove',areaMouseMove);options.onSelectStart(img,trueSelection())}function cancelSelection(){$(document).unbind('mousemove',startSelection);$box.add($o).hide();selection={x1:0,y1:0,x2:0,y2:0,width:0,height:0};options.onSelectChange(img,selection);options.onSelectEnd(img,selection)}function imgMouseDown(event){if(event.which!=1)return false;adjust();startX=x1=evX(event);startY=y1=evY(event);$(document).one('mousemove',startSelection).one('mouseup',cancelSelection);return false}function parentScroll(){adjust();update(false);x1=viewX(selection.x1);y1=viewY(selection.y1);x2=viewX(selection.x2);y2=viewY(selection.y2)}function imgLoad(){imgLoaded=true;if(options.show){shown=true;adjust();update();$box.add($o).show()}$box.add($o).css({visibility:''})}var docKeyPress=function(event){var k=options.keys,d,t,key=event.keyCode||event.which;d=!isNaN(k.alt)&&(event.altKey||event.originalEvent.altKey)?k.alt:!isNaN(k.ctrl)&&event.ctrlKey?k.ctrl:!isNaN(k.shift)&&event.shiftKey?k.shift:!isNaN(k.arrows)?k.arrows:10;if(k.arrows=='resize'||(k.shift=='resize'&&event.shiftKey)||(k.ctrl=='resize'&&event.ctrlKey)||(k.alt=='resize'&&(event.altKey||event.originalEvent.altKey))){switch(key){case 37:d=-d;case 39:t=M.max(x1,x2);x1=M.min(x1,x2);x2=M.max(t+d,x1);if(aspectRatio)aspectRatioYX();break;case 38:d=-d;case 40:t=M.max(y1,y2);y1=M.min(y1,y2);y2=M.max(t+d,y1);if(aspectRatio)aspectRatioXY();break;default:return}doResize()}else{x1=M.min(x1,x2);y1=M.min(y1,y2);switch(key){case 37:doMove(M.max(x1-d,left),y1);break;case 38:doMove(x1,M.max(y1-d,top));break;case 39:doMove(x1+M.min(d,imgWidth-selX(x2)),y1);break;case 40:doMove(x1,y1+M.min(d,imgHeight-selY(y2)));break;default:return}}return false};this.setOptions=function(newOptions){if(newOptions.parent)($parent=$(newOptions.parent)).append($box.add($o));adjust();getZIndex();if(newOptions.x1!=null){selection={x1:newOptions.x1,y1:newOptions.y1,x2:newOptions.x2,y2:newOptions.y2};newOptions.show=!newOptions.hide;x1=viewX(selection.x1);y1=viewY(selection.y1);x2=viewX(selection.x2);y2=viewY(selection.y2);selection.width=x2-x1;selection.height=y2-y1}if(newOptions.handles!=null){$handles.remove();$handles=$(handles=[]);i=newOptions.handles?newOptions.handles=='corners'?4:8:0;while(i--)$handles=$handles.add(handles[i]=$('<div />'));handleWidth=4+options.borderWidth;$handles.css({position:'absolute',borderWidth:options.borderWidth+'px',borderStyle:'solid',borderColor:options.borderColor1,opacity:options.borderOpacity,backgroundColor:options.borderColor2,width:handleWidth+'px',height:handleWidth+'px',fontSize:'0px',zIndex:zIndex>0?zIndex+1:'1'}).addClass(options.classPrefix+'-handle');handleWidth+=options.borderWidth*2}update();options=$.extend(options,newOptions);if(options.imageWidth||options.imageHeight){scaleX=(parseInt(options.imageWidth)||imgWidth)/imgWidth;scaleY=(parseInt(options.imageHeight)||imgHeight)/imgHeight}if(newOptions.keys)options.keys=$.extend({shift:1,ctrl:'resize'},newOptions.keys===true?{}:newOptions.keys);$o.addClass(options.classPrefix+'-outer');$area.addClass(options.classPrefix+'-selection');$border1.addClass(options.classPrefix+'-border1');$border2.addClass(options.classPrefix+'-border2');$box.add($area).add($border1).add($border2).css({borderWidth:options.borderWidth+'px'});$area.css({backgroundColor:options.selectionColor,opacity:options.selectionOpacity});$border1.css({borderStyle:'solid',borderColor:options.borderColor1});$border2.css({borderStyle:'dashed',borderColor:options.borderColor2});$border1.add($border2).css({opacity:options.borderOpacity});$o.css({opacity:options.outerOpacity,backgroundColor:options.outerColor});$box.append($area.add($border1).add($border2).add($handles).add($areaOpera));if(newOptions.hide)$box.add($o).hide();else if(newOptions.show&&imgLoaded){shown=true;update();$box.add($o).show()}aspectRatio=options.aspectRatio&&(d=options.aspectRatio.split(/:/))?d[0]/d[1]:null;if(aspectRatio)if(options.minWidth)options.minHeight=parseInt(options.minWidth/aspectRatio);else if(options.minHeight)options.minWidth=parseInt(options.minHeight*aspectRatio);if(options.disable||options.enable===false){$box.unbind('mousemove',areaMouseMove).unbind('mousedown',areaMouseDown);$img.add($o).unbind('mousedown',imgMouseDown);$(window).unbind('resize',parentScroll);$img.add($img.parents()).unbind('scroll',parentScroll)}else if(options.enable||options.disable===false){if(options.resizable||options.movable)$box.mousemove(areaMouseMove).mousedown(areaMouseDown);if(!options.persistent)$img.add($o).mousedown(imgMouseDown);$(window).resize(parentScroll);$img.add($img.parents()).scroll(parentScroll)}options.enable=options.disable=undefined};if($.browser.msie)$img.attr('unselectable','on');$.imgAreaSelect.keyPress=$.browser.msie||$.browser.safari?'keydown':'keypress';if($.browser.opera)($areaOpera=$('<div style="width: 100%; height: 100%; position: absolute;" />')).css({zIndex:zIndex>0?zIndex+2:'2'});this.setOptions(options=$.extend({borderColor1:'#000',borderColor2:'#fff',borderWidth:1,borderOpacity:.5,classPrefix:'imgareaselect',movable:true,resizable:true,selectionColor:'#fff',selectionOpacity:0,outerColor:'#000',outerOpacity:.4,parent:'body',onSelectStart:function(){},onSelectChange:function(){},onSelectEnd:function(){}},options));$box.add($o).css({visibility:'hidden',position:position,overflow:'hidden',zIndex:zIndex>0?zIndex:'0'});$area.css({borderStyle:'solid'});$box.css({position:position,zIndex:zIndex>0?zIndex+2:'2'});$area.add($border1).add($border2).css({position:'absolute'});img.complete||img.readyState=='complete'||!$img.is('img')?imgLoad():$img.one('load',imgLoad)};$.fn.imgAreaSelect=function(options){options=options||{};this.each(function(){if($(this).data('imgAreaSelect'))$(this).data('imgAreaSelect').setOptions(options);else{if(options.enable===undefined&&options.disable===undefined)options.enable=true;$(this).data('imgAreaSelect',new $.imgAreaSelect.init(this,options))}});return this}})(jQuery); \ No newline at end of file
diff --git a/mod/profile/views/default/profile/admin_menu.php b/mod/profile/views/default/profile/admin_menu.php
deleted file mode 100755
index c89505673..000000000
--- a/mod/profile/views/default/profile/admin_menu.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/**
- * This is the admin menu that appears on a user's profile page
- **/
-global $CONFIG;
-
-if (isadminloggedin()){
- if ($_SESSION['id']!=page_owner()){
- $user = get_user(page_owner());
- $url = $vars['url'];
- $ts = time();
- $token = generate_action_token($ts);
-
-?>
-<div class="owner_block_links">
-<ul class="admin_menu">
-<li><a href="#" onclick="elgg_slide_toggle(this,'.owner_block_links','.admin_menu_options');">Admin options&hellip;</a>
-
- <ul class="admin_menu_options">
- <li><a href="<?php echo $url; ?>pg/settings/user/<?php echo $user->username; ?>/"><?php echo elgg_echo('profile:editdetails'); ?></a></li>
- <?php
- if (!$user->isBanned()) {
- echo "<li>".elgg_view('output/confirmlink', array('text' => elgg_echo("ban"), 'href' => "{$url}action/admin/user/ban?guid={$user->guid}&__elgg_token=$token&__elgg_ts=$ts")) . "</li>";
- } else {
- echo "<li>".elgg_view('output/confirmlink', array('text' => elgg_echo("unban"), 'href' => "{$url}action/admin/user/unban?guid={$user->guid}&__elgg_token=$token&__elgg_ts=$ts")) . "</li>";
- }
- echo "<li>".elgg_view('output/confirmlink', array('text' => elgg_echo("delete"), 'href' => "{$url}action/admin/user/delete?guid={$user->guid}&__elgg_token=$token&__elgg_ts=$ts")) . "</li>";
- echo "<li>".elgg_view('output/confirmlink', array('text' => elgg_echo("resetpassword"), 'href' => "{$url}action/admin/user/resetpassword?guid={$user->guid}&__elgg_token=$token&__elgg_ts=$ts")) . "</li>";
- if (!$vars['entity']->admin) {
- echo "<li>".elgg_view('output/confirmlink', array('text' => elgg_echo("makeadmin"), 'href' => "{$url}action/admin/user/makeadmin?guid={$user->guid}&__elgg_token=$token&__elgg_ts=$ts")) . "</li>";
- } else {
- echo "<li>".elgg_view('output/confirmlink', array('text' => elgg_echo("removeadmin"), 'href' => "{$url}action/admin/user/removeadmin?guid={$user->guid}&__elgg_token=$token&__elgg_ts=$ts")) . "</li>";
- }
- ?>
- </ul>
-</li>
-</ul>
-</div>
-<?php
- }
-}
-?>
diff --git a/mod/profile/views/default/profile/commentwall/commentwall.php b/mod/profile/views/default/profile/commentwall/commentwall.php
deleted file mode 100644
index a45c3adde..000000000
--- a/mod/profile/views/default/profile/commentwall/commentwall.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-/**
- * Elgg Commentwall display page
- */
-//start the div which will wrap all the message board contents
-echo "<div id='comment_wall_display'>";
-
-// If there is any content to view, view it
-if (is_array($vars['annotation']) && sizeof($vars['annotation']) > 0) {
- //loop through all annotations and display
- foreach($vars['annotation'] as $content) {
- echo elgg_view("profile/commentwall/commentwall_content", array('annotation' => $content));
- }
-} else {
- echo "<p class='margin_top'>" . elgg_echo("profile:commentwall:none") . "</p>";
-}
-//close the wrapper div
-echo "</div>"; \ No newline at end of file
diff --git a/mod/profile/views/default/profile/commentwall/commentwall_content.php b/mod/profile/views/default/profile/commentwall/commentwall_content.php
deleted file mode 100644
index cacea117c..000000000
--- a/mod/profile/views/default/profile/commentwall/commentwall_content.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-/**
-* Elgg Message board individual item display page
- */
-?>
-<div class="entity_listing clearfloat">
- <!-- display the user icon of the user that posted the message -->
- <div class="entity_listing_icon">
- <?php
- echo elgg_view("profile/icon",array('entity' => get_entity($vars['annotation']->owner_guid), 'size' => 'tiny'));
- ?>
- </div>
-
- <div class="entity_listing_info">
- <?php
- // if the user looking at the comment can edit, show the delete link
- if ($vars['annotation']->canEdit()) {
- echo "<div class='entity_metadata'><span class='delete_button'>" . elgg_view("output/confirmlink",array(
- 'href' => $vars['url'] . "action/profile/deletecomment?annotation_id=" . $vars['annotation']->id,
- 'text' => elgg_echo('delete'),
- 'confirm' => elgg_echo('deleteconfirm'),
- )) . "</span></div>";
- } //end of can edit if statement
- ?>
- <!-- display the user's name who posted and the date/time -->
- <p class="entity_subtext">
- <?php echo get_entity($vars['annotation']->owner_guid)->name . " " . friendly_time($vars['annotation']->time_created); ?>
- </p>
- <!-- output the actual comment -->
- <?php echo elgg_view("output/longtext",array("value" => parse_urls($vars['annotation']->value))); ?>
- </div>
-</div>
diff --git a/mod/profile/views/default/profile/commentwall/commentwalladd.php b/mod/profile/views/default/profile/commentwall/commentwalladd.php
deleted file mode 100644
index f5bd1bdce..000000000
--- a/mod/profile/views/default/profile/commentwall/commentwalladd.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-/**
- * Elgg profile comment wall add
- */
-?>
-<div id="comment_wall_add">
-<form action="<?php echo $vars['url']; ?>action/profile/addcomment" method="post" name="messageboardForm">
- <!-- textarea for the contents -->
- <textarea name="message_content" value="" class="commentwall"></textarea><br />
- <!-- the person posting an item on the message board -->
- <input type="hidden" name="guid" value="<?php echo $_SESSION['guid']; ?>" />
- <!-- the page owner, this will be the profile owner -->
- <input type="hidden" name="pageOwner" value="<?php echo page_owner(); ?>" />
- <?php echo elgg_view('input/securitytoken'); ?>
- <!-- submit messages input -->
- <input type="submit" id="postit" value="<?php echo elgg_echo('profile:commentwall:add'); ?>">
-</form>
-</div>
diff --git a/mod/profile/views/default/profile/css.php b/mod/profile/views/default/profile/css.php
index 78c496670..e24f555a9 100644
--- a/mod/profile/views/default/profile/css.php
+++ b/mod/profile/views/default/profile/css.php
@@ -1,487 +1,126 @@
<?php
/**
- * Elgg Profile
+ * Elgg Profile CSS
*
* @package Profile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
*/
?>
/* ***************************************
- main layout blocks
+ Profile
*************************************** */
-#profile_content {
- float:right;
- width:700px;
- position: relative;
-}
-#profile_sidebar {
- width:230px;
- float:left;
-}
-.elgg_horizontal_tabbed_nav.profile {
- margin-top:0px;
- margin-bottom:25px;
- position:relative;
-}
-.elgg_horizontal_tabbed_nav.profile .profile_name {
- display:block;
- width:265px;
- position:absolute;
-}
-.elgg_horizontal_tabbed_nav.profile .profile_name h2 {
- margin:0;
- padding:0;
- border:none;
-}
-.elgg_horizontal_tabbed_nav.profile ul {
- margin-left:260px;
-}
-
-/* ***************************************
- default avatar icons
-*************************************** */
-.usericon {
- position:relative;
-}
-.usericon.tiny,
-img.tiny {
- width:25px;
- height:25px;
- /* remove the border-radius if you don't want rounded avatars in supported browsers */
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- -moz-background-clip: border;
-
- -o-background-size: 25px;
- -webkit-background-size: 25px;
- -khtml-background-size: 25px;
- -moz-background-size: 25px;
+.profile {
+ float: left;
+ margin-bottom: 15px;
}
-.usericon.small,
-img.small {
- width:40px;
- height:40px;
- /* remove the border-radius if you don't want rounded avatars in supported browsers */
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- -moz-background-clip: border;
+.profile .elgg-inner {
+ margin: 0 5px;
+ border: 2px solid #eee;
- -o-background-size: 40px;
- -webkit-background-size: 40px;
- -khtml-background-size: 40px;
- -moz-background-size: 40px;
-}
-img.large {
- width:200px;
- height:200px;
-}
-img.medium {
- width:100px;
- height:100px;
-}
-
-/* ***************************************
- ownerblock in sidebar
-*************************************** */
-#profile_sidebar #owner_block {
- background-color: #eeeeee;
- -webkit-border-radius: 8px;
- -moz-border-radius: 8px;
- padding:15px;
- min-height:270px;
-}
-#elgg_sidebar #owner_block {
- background-color: white;
- -webkit-border-radius: 8px;
+ -webkit-border-radius: 8px;
-moz-border-radius: 8px;
- padding:5px;
- margin-bottom:10px;
-}
-#owner_block .owner_block_icon {
- float:left;
- padding:0;
- margin:0;
+ border-radius: 8px;
}
-#owner_block .owner_block_icon.large {
- width:200px;
- height:200px;
- overflow: hidden;
- float:none;
+#profile-details {
+ padding: 15px;
}
-#owner_block .owner_block_contents {
- margin-left: 50px;
-}
-#elgg_sidebar #owner_block .owner_block_contents {
- margin-left: 34px;
-}
-#owner_block .owner_block_contents h3 {
- margin-top:-4px;
- border-bottom:none;
- margin-bottom:0;
- padding-bottom:0;
-}
-#owner_block .owner_block_contents p.profile_info {
- margin:0;
- padding:0;
- color: #666666;
-}
-#owner_block .owner_block_contents p.profile_info.briefdescription {
- font-size: 90%;
- line-height:1.2em;
- font-style: italic;
-}
-#owner_block .owner_block_contents p.profile_info.location {
- font-size: 90%;
+/*** ownerblock ***/
+#profile-owner-block {
+ width: 200px;
+ float: left;
+ background-color: #eee;
+ padding: 15px;
}
-#owner_block .profile_actions {
- margin-top:10px;
+#profile-owner-block .large {
+ margin-bottom: 10px;
}
-#owner_block .profile_actions a.action_button {
- margin-bottom:4px;
+#profile-owner-block a.elgg-button-action {
+ margin-bottom: 4px;
display: table;
}
-/* ownerblock links to owners tools */
-#owner_block .owners_content_links {
- border-top:1px dotted #cccccc;
- margin-top:4px;
- padding-top:2px;
-}
-#owner_block .owners_content_links ul {
- margin:0;
- padding:0;
-}
-#owner_block .owners_content_links ul li {
- display:block;
- float:left;
- width:95px;
- font-size: 90%;
-}
-/* profile pages - ownerblock links to owners tools */
-.owner_block_links {
- margin-top:5px;
-}
-.owner_block_links ul {
- margin:0;
- padding:0;
- list-style: none;
-}
-.owner_block_links ul li.selected a {
- background: #4690D6;
- color:white;
-}
-.owner_block_links ul li a {
- display:block;
- -webkit-border-radius: 8px;
+.profile-content-menu a {
+ display: block;
+
+ -webkit-border-radius: 8px;
-moz-border-radius: 8px;
- background-color:white;
- margin:3px 0 5px 0;
- padding:2px 4px 2px 8px;
+ border-radius: 8px;
+
+ background-color: white;
+ margin: 3px 0 5px 0;
+ padding: 2px 4px 2px 8px;
}
-.owner_block_links ul li a:hover {
- background:#0054A7;
- color:white;
- text-decoration:none;
+.profile-content-menu a:hover {
+ background: #0054A7;
+ color: white;
+ text-decoration: none;
}
-
-
-/* ***************************************
- admin menu in sidebar
-*************************************** */
-.owner_block_links .admin_menu_options {
+.profile-admin-menu {
display: none;
}
-.owner_block_links ul.admin_menu {
- background-color:white;
+.profile-admin-menu-wrapper a {
+ display: block;
+
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
- cursor:pointer;
-}
-.owner_block_links ul.admin_menu li a {
+ border-radius: 8px;
+
background-color: white;
- color:red;
- margin-bottom:0;
+ margin: 3px 0 5px 0;
+ padding: 2px 4px 2px 8px;
}
-.owner_block_links ul.admin_menu li a:hover {
- color:black;
+.profile-admin-menu-wrapper {
+ background-color: white;
+
+ -webkit-border-radius: 8px;
+ -moz-border-radius: 8px;
+ border-radius: 8px;
}
-.owner_block_links ul.admin_menu li ul.admin_menu_options li a {
- color:red;
- background-color:white;
- display:block;
- margin:0px;
- padding:2px 4px 2px 13px;
+.profile-admin-menu-wrapper li a {
+ background-color: white;
+ color: red;
+ margin-bottom: 0;
}
-.owner_block_links ul.admin_menu li ul.admin_menu_options li a:hover {
- color:black;
- background:none;
- text-decoration: underline;
+.profile-admin-menu-wrapper a:hover {
+ color: black;
}
-
-
-/* ***************************************
- full profile info panel
-*************************************** */
-#profile_content .odd {
- background-color:#f4f4f4;
+/*** profile details ***/
+#profile-details .odd {
+ background-color: #f4f4f4;
+
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
- margin:0 0 7px 0;
- padding:2px 4px 2px 4px;
+ border-radius: 4px;
+
+ margin: 0 0 7px;
+ padding: 2px 4px;
}
-#profile_content .even {
+#profile-details .even {
background-color:#f4f4f4;
+
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
- margin:0 0 7px 0;
- padding:2px 4px 2px 4px;
+ border-radius: 4px;
+
+ margin: 0 0 7px;
+ padding: 2px 4px;
}
-#profile_content .aboutme_title {
+.profile-aboutme-title {
background-color:#f4f4f4;
+
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
- margin:0 0 0px 0;
- padding:2px 4px 2px 4px;
-}
-#profile_content .aboutme_contents {
- padding:2px 0 0 3px;
-}
-
-
-/* ***************************************
- friends panel within profile
-*************************************** */
-#profile_content .entity_listing .entity_listing_info {
- width:664px;
-}
-
-
-/* ***************************************
- commentwall within profile
-*************************************** */
-#comment_wall_add textarea {
- width:685px;
-}
-#comment_wall_add #postit {
- float:right;
-}
-
-
-/* ***************************************
- twitter panel within profile
-*************************************** */
-ul#twitter_update_list li {
- background-image: url(<?php echo $vars['url']; ?>mod/profile/graphics/speech_bubble_tail.gif);
- background-position:right bottom;
- background-repeat: no-repeat;
- list-style-image:none;
- list-style-position:outside;
- list-style-type:none;
- margin:0 0 5px 0;
- padding:0;
- overflow-x: hidden;
-}
-ul#twitter_update_list li span {
- color:#666666;
- background:#ececec;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- padding:3px 5px 4px 5px;
- display:block;
-}
-ul#twitter_update_list li a {
- display:block;
- margin:-2px 0 0 4px;
-}
-ul#twitter_update_list li span a {
- display:inline !important;
-}
-p.visit_twitter a {
- background:url(<?php echo $vars['url']; ?>mod/profile/graphics/twitter16px.png) left no-repeat;
- padding:0 0 0 20px;
- margin:0;
-}
-.visit_twitter {
- padding:5px 0;
- margin:0 0 0 0;
- border-top:1px solid #dedede;
+ border-radius: 4px;
+
+ margin: 0;
+ padding: 2px 4px;
}
-
-
-/* ***************************************
- user avatar upload & crop page
-*************************************** */
-#avatar_upload {
- height:145px;
-}
-#current_user_avatar {
- float:left;
- width:160px;
- height:130px;
- border-right:1px solid #cccccc;
- margin:0 20px 0 0;
-}
-#avatar_croppingtool {
- border-top: 1px solid #cccccc;
- margin:20px 0 0 0;
- padding:10px 0 0 0;
-}
-#user_avatar {
- float: left;
- margin-right: 20px;
-}
-#user_avatar_preview {
- float: left;
- position: relative;
- overflow: hidden;
- width: 100px;
- height: 100px;
+.profile-aboutme-contents {
+ padding: 2px 0 0 3px;
}
-
-
-/* ***************************************
- banned user
-*************************************** */
-/* banned user full profile panel */
-#profile_content .banned_user {
- border:2px solid red;
- padding:4px 8px;
+.profile-banned-user {
+ border: 2px solid red;
+ padding: 4px 8px;
+
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
-}
-/* banned user in friends lists */
-.entity_listing_info p.entity_title.user.banned {
- text-decoration: line-through;
-}
-.entity_listing_info p.entity_title.user.banned a {
- color:red;
-}
-
-
-/* ***************************************
- admin area - custom profile fields
-*************************************** */
-.default_profile_reset {
- border-top: 1px solid #dedede;
- margin-top:30px;
-}
-.default_profile_reset .action_button {
- float:right;
-}
-/* field re-order */
-#sortable_profile_fields {
- padding:0;
- border-top:1px solid #cccccc;
-}
-#sortable_profile_fields li {
- padding:5px 0 5px 0;
- border-bottom:1px solid #cccccc;
-}
-#sortable_profile_fields li img.handle {
- margin-right: 7px;
- cursor: move;
-}
-#sortable_profile_fields .ui-sortable-helper {
- background: #eeeeee;
- color:#333333;
- padding: 5px 0 5px 0;
- margin: 0;
- width:100%;
-}
-
-
-/* ***************************************
- avatar drop-down menu
-*************************************** */
-.avatar_menu_button {
- width:15px;
- height:15px;
- position:absolute;
- cursor:pointer;
- display:none;
- right:0;
- bottom:0;
-}
-.avatar_menu_arrow {
- background: url(<?php echo $vars['url']; ?>_graphics/elgg_sprites.png) no-repeat -150px top;
- width:15px;
- height:15px;
-}
-.avatar_menu_arrow_on {
- background: url(<?php echo $vars['url']; ?>_graphics/elgg_sprites.png) no-repeat -150px -16px;
- width:15px;
- height:15px;
-}
-.avatar_menu_arrow_hover {
- background: url(<?php echo $vars['url']; ?>_graphics/elgg_sprites.png) no-repeat -150px -32px;
- width:15px;
- height:15px;
-}
-/* user avatar submenu options */
-.usericon .sub_menu {
- display:none;
- position:absolute;
- padding:0;
- margin:0;
- border-top:solid 1px #E5E5E5;
- border-left:solid 1px #E5E5E5;
- border-right:solid 1px #999999;
- border-bottom:solid 1px #999999;
- width:164px;
- background:#FFFFFF;
- text-align:left;
- -webkit-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50);
- -moz-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50);
- font-size:14px;
-}
-div.usericon a.icon img {
- z-index:10;
-}
-.usericon .sub_menu a:link,
-.usericon .sub_menu a:visited,
-.usericon .sub_menu a:hover {
- display:block;
-}
-.usericon .sub_menu a:hover {
- background:#cccccc;
- text-decoration:none;
-}
-.usericon .sub_menu .displayname {
- padding:0 !important;
- margin:0 !important;
- border-bottom:solid 1px #dddddd !important;
- font-size:14px !important;
-}
-.usericon .sub_menu .displayname a {
- padding:3px 3px 3px 8px;
- font-size:14px;
-}
-.usericon .sub_menu .displayname a .username {
- display:block;
- font-weight: normal;
- font-size:12px;
- text-align: left;
- margin:0;
-}
-.sub_menu ul.sub_menu_list {
- list-style: none;
- margin-bottom:0;
- padding-left:0;
-}
-.usericon .sub_menu a {
- padding:2px 3px 2px 8px;
- font-size:12px;
-}
-/* admin menu options in avatar submenu */
-.user_menu_admin {
- border-top:solid 1px #dddddd;
-}
-.usericon .sub_menu li.user_menu_admin a {
- color:red;
-}
-.usericon .sub_menu li.user_menu_admin a:hover {
- color:white;
- background:red;
+ border-radius: 6px;
}
diff --git a/mod/profile/views/default/profile/details.php b/mod/profile/views/default/profile/details.php
new file mode 100644
index 000000000..da4e95690
--- /dev/null
+++ b/mod/profile/views/default/profile/details.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ * Elgg user display (details)
+ * @uses $vars['entity'] The user entity
+ */
+
+$user = elgg_get_page_owner_entity();
+
+$profile_fields = elgg_get_config('profile_fields');
+
+echo '<div id="profile-details" class="elgg-body pll">';
+echo "<h2>{$user->name}</h2>";
+
+echo elgg_view("profile/status", array("entity" => $user));
+
+$even_odd = null;
+if (is_array($profile_fields) && sizeof($profile_fields) > 0) {
+ foreach ($profile_fields as $shortname => $valtype) {
+ if ($shortname == "description") {
+ // skip about me and put at bottom
+ continue;
+ }
+ $value = $user->$shortname;
+
+ if (!empty($value)) {
+
+ // fix profile URLs populated by https://github.com/Elgg/Elgg/issues/5232
+ // @todo Replace with upgrade script, only need to alter users with last_update after 1.8.13
+ if ($valtype == 'url' && $value == 'http://') {
+ $user->$shortname = '';
+ continue;
+ }
+
+ // validate urls
+ if ($valtype == 'url' && !preg_match('~^https?\://~i', $value)) {
+ $value = "http://$value";
+ }
+
+ // this controls the alternating class
+ $even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even';
+ ?>
+ <div class="<?php echo $even_odd; ?>">
+ <b><?php echo elgg_echo("profile:{$shortname}"); ?>: </b>
+ <?php
+ echo elgg_view("output/{$valtype}", array('value' => $value));
+ ?>
+ </div>
+ <?php
+ }
+ }
+}
+
+if (!elgg_get_config('profile_custom_fields')) {
+ if ($user->isBanned()) {
+ echo "<p class='profile-banned-user'>";
+ echo elgg_echo('banned');
+ echo "</p>";
+ } else {
+ if ($user->description) {
+ echo "<p class='profile-aboutme-title'><b>" . elgg_echo("profile:aboutme") . "</b></p>";
+ echo "<div class='profile-aboutme-contents'>";
+ echo elgg_view('output/longtext', array('value' => $user->description, 'class' => 'mtn'));
+ echo "</div>";
+ }
+ }
+}
+
+echo '</div>'; \ No newline at end of file
diff --git a/mod/profile/views/default/profile/edit.php b/mod/profile/views/default/profile/edit.php
deleted file mode 100644
index f67d6e5d5..000000000
--- a/mod/profile/views/default/profile/edit.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-/**
- * Elgg profile edit form
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- *
- * @uses $vars['entity'] The user entity
- * @uses $vars['profile'] Profile items from $CONFIG->profile, defined in profile/start.php for now
- */
-?>
-<form action="<?php echo $vars['url']; ?>action/profile/edit" method="post" id="edit_profile" class="margin_top">
-<?php echo elgg_view('input/securitytoken') ?>
-
- <p><label>
- <?php echo elgg_echo('user:name:label'); ?></label>
- <?php
- echo elgg_view('input/text',array('internalname' => 'name', 'value' => page_owner_entity()->name));
- ?>
- </p>
-
-<?php
- if (is_array($vars['config']->profile) && sizeof($vars['config']->profile) > 0)
- foreach($vars['config']->profile as $shortname => $valtype) {
- if ($metadata = get_metadata_byname($vars['entity']->guid, $shortname)) {
- if (is_array($metadata)) {
- $value = '';
- foreach($metadata as $md) {
- if (!empty($value)) $value .= ', ';
- $value .= $md->value;
- $access_id = $md->access_id;
- }
- } else {
- $value = $metadata->value;
- $access_id = $metadata->access_id;
- }
- } else {
- $value = '';
- $access_id = ACCESS_DEFAULT;
- }
-
- if ($shortname == 'description') { // change label positioning to allow for additional longtext field controls
-?>
- <p>
- <label>
- <?php echo elgg_echo("profile:{$shortname}") ?></label>
- <?php echo elgg_view("input/{$valtype}",array(
- 'internalname' => $shortname,
- 'value' => $value,
- )); ?>
-
- <?php echo elgg_view('input/access',array('internalname' => 'accesslevel['.$shortname.']', 'value' => $access_id)); ?>
- </p>
-<?php
- } else {
-?>
-
- <p>
- <label>
- <?php echo elgg_echo("profile:{$shortname}") ?><br />
- <?php echo elgg_view("input/{$valtype}",array(
- 'internalname' => $shortname,
- 'value' => $value,
- )); ?>
- </label>
- <?php echo elgg_view('input/access',array('internalname' => 'accesslevel['.$shortname.']', 'value' => $access_id)); ?>
- </p>
-
-<?php
- }
-
- }
-
-?>
-
- <p>
- <input type="hidden" name="username" value="<?php echo page_owner_entity()->username; ?>" />
- <input type="submit" class="submit_button" value="<?php echo elgg_echo("save"); ?>" />
- </p>
-
-</form> \ No newline at end of file
diff --git a/mod/profile/views/default/profile/editdefaultprofile.php b/mod/profile/views/default/profile/editdefaultprofile.php
deleted file mode 100644
index ae05e6da1..000000000
--- a/mod/profile/views/default/profile/editdefaultprofile.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/**
- * Elgg profile index
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-$label_text = elgg_echo('profile:label');
-$type_text = elgg_echo('profile:type');
-
-$label_control = elgg_view('input/text', array('internalname' => 'label'));
-$type_control = elgg_view('input/pulldown', array('internalname' => 'type', 'options_values' => array(
- 'text' => elgg_echo('text'),
- 'longtext' => elgg_echo('longtext'),
- 'tags' => elgg_echo('tags'),
- 'url' => elgg_echo('url'),
- 'email' => elgg_echo('email')
-)));
-
-$submit_control = elgg_view('input/submit', array('internalname' => elgg_echo('add'), 'value' => elgg_echo('add')));
-
-$formbody = <<< END
- <p>$label_text: $label_control
- $type_text: $type_control
- $submit_control</p>
-END;
-
-echo "<p class='margin_top'>" . elgg_echo('profile:explainchangefields') . "</p>";
-echo elgg_view('input/form', array('body' => $formbody, 'action' => $vars['url'] . 'action/profile/editdefault'));
diff --git a/mod/profile/views/default/profile/editdefaultprofileitems.php b/mod/profile/views/default/profile/editdefaultprofileitems.php
deleted file mode 100644
index 4b0564d2d..000000000
--- a/mod/profile/views/default/profile/editdefaultprofileitems.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<script language="javascript" type="text/javascript" src="<?php echo $vars['url']?>mod/profile/vendor/jquery.jeditable.mini.js"></script>
-<script language="javascript" type="text/javascript">
-var reorderURL = '<?php echo elgg_add_action_tokens_to_url($vars['url'] . 'action/profile/editdefault/reorder', FALSE); ?>';
-function sortCallback(event, ui) {
- var orderArr = $('#sortable_profile_fields').sortable('toArray');
- var orderStr = orderArr.join(',');
- console.log(orderArr);
- console.log(orderStr);
- jQuery.post(reorderURL, {'fieldorder': orderStr});
-}
-
-$(document).ready(function() {
- $('#sortable_profile_fields').sortable({
- items: 'li',
- handle: '.handle',
- stop: sortCallback
- });
-});
-
-</script>
-
-<div id="list">
- <ul id="sortable_profile_fields">
-<?php
-
- $save = elgg_echo('save');
- $cancel = elgg_echo('cancel');
- $edit_url = elgg_add_action_tokens_to_url("{$vars['url']}action/profile/editdefault/editfield", FALSE);
-
- foreach($vars['items'] as $item) {
- echo <<< END
-
-<script language="javascript" type="text/javascript">
-
- $(function() {
- $(".{$item->shortname}_editable").editable("$edit_url ", {
- type : 'text',
- submitdata: { _method: "post", 'field': '{$item->shortname}' },
- onblur: 'submit',
- width:'300px',
- height:'none',
- style:'display:inline;',
- tooltip:'Click to edit label'
- });
- });
-
-</script>
-
-END;
-
- echo elgg_view("profile/", array('value' => $item->translation));
-
- //$even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even';
- $url = elgg_add_action_tokens_to_url("{$vars['url']}action/profile/editdefault/delete?id={$item->shortname}");
- echo "<li id=\"{$item->shortname}\"><div class=\"delete_note\" style=\"float:right\"><a href=\"$url\">" . elgg_echo('delete') . "</a></div>";
- echo "<img width='16' height='16' class='handle' alt='move' title='Drag here to reorder this item' src='{$vars['url']}mod/profile/graphics/drag_handle.png'/>";
- echo "<b class=\"profile_field_editable\"><span class=\"{$item->shortname}_editable\">$item->translation</span></b>: [".elgg_echo($item->type)."]";
- echo "</li>";
-
- }
-
-?>
- </ul>
-</div>
-<div id="tempList"></div>
-
-<input name="sortableListOrder" type="hidden" id="sortableListOrder" value="<?php echo $vars['fieldlist']; ?>" />
diff --git a/mod/profile/views/default/profile/editicon.php b/mod/profile/views/default/profile/editicon.php
deleted file mode 100644
index c71b7113d..000000000
--- a/mod/profile/views/default/profile/editicon.php
+++ /dev/null
@@ -1,145 +0,0 @@
-<?php
-/**
- * Elgg profile icon edit form
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- *
- * @uses $vars['entity'] The user entity
- * @uses $vars['profile'] Profile items from $CONFIG->profile, defined in profile/start.php for now
- */
-
-// user is passed to view and set by caller (normally the page editicon)
-$currentuser = $vars['user'];
-?>
-<div id="edit_profile_avatar">
-<!-- grab the required js for icon cropping -->
-<script type="text/javascript" src="<?php echo $vars['url']; ?>mod/profile/views/default/js/jquery.imgareaselect-0.8.min.js"></script>
-
-<p class="margin_top"><?php echo elgg_echo('profile:profilepictureinstructions'); ?></p>
-
-<div id="current_user_avatar">
-
- <label><?php echo elgg_echo('profile:currentavatar'); ?></label>
- <?php
-
- $user_avatar = $currentuser->getIcon('medium');
- echo "<img src=\"{$user_avatar}\" alt=\"avatar\" />";
-
- ?>
-
-</div>
-
-<div id="avatar_upload">
- <form action="<?php echo $vars['url']; ?>action/profile/iconupload" method="post" enctype="multipart/form-data">
- <?php echo elgg_view('input/securitytoken'); ?>
- <input type="hidden" name="username" value="<?php echo $currentuser->username; ?>" />
- <p><label><?php echo elgg_echo("profile:editicon"); ?></label><br />
-
- <?php
-
- echo elgg_view("input/file",array('internalname' => 'profileicon'));
- ?>
- <br /><input type="submit" class="submit_button" value="<?php echo elgg_echo("upload"); ?>" />
- </p>
- </form>
-</div>
-
-<div id="avatar_croppingtool">
-<label><?php echo elgg_echo('profile:profilepicturecroppingtool'); ?></label><br />
-<p>
-<?php
-
- echo elgg_echo("profile:createicon:instructions");
-
- //display the current user photo
-
- $user_master_image = $currentuser->getIcon('master');
-
-?>
-</p>
-<script type="text/javascript">
-
- //function to display a preview of the users cropped section
- function preview(img, selection) {
- // catch for the first click on the image
- if (selection.width == 0 || selection.height == 0) {
- return;
- }
-
- var origWidth = $("#user_avatar").width(); //get the width of the users master photo
- var origHeight = $("#user_avatar").height(); //get the height of the users master photo
- var scaleX = 100 / selection.width;
- var scaleY = 100 / selection.height;
- $('#user_avatar_preview > img').css({
- width: Math.round(scaleX * origWidth) + 'px',
- height: Math.round(scaleY * origHeight) + 'px',
- marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px',
- marginTop: '-' + Math.round(scaleY * selection.y1) + 'px'
- });
- }
-
- //variables for the newly cropped avatar
- //var $x1, $y1, $x2, $y2, $w, $h;
-
- function selectChange(img, selection){
-
- //populate the form with the correct coordinates once a user has cropped their image
- $('#x_1').val(selection.x1);
- $('#x_2').val(selection.x2);
- $('#y_1').val(selection.y1);
- $('#y_2').val(selection.y2);
-
- }
-
- $(document).ready(function () {
-
- //get the coordinates from the form
- /*
- var x_1 = $('#x_1').val();
- var x_2 = $('#x_2').val();
- var y_1 = $('#y_1').val();
- var y_2 = $('#y_2').val();
- var w = x_2 - x_1;
- var h = y_2 - y_1;
- selection = { x1: x_1, y1: y_1, x2: x_2, y2: y_2, width: w, height: h };
- */
-
- $('<div id="user_avatar_preview"><img src="<?php echo $user_master_image; ?>" /></div>')
- .insertAfter($('#user_avatar'));
-
- $('<div id="user_avatar_preview_title"><label><?php echo elgg_echo('profile:preview'); ?></label></div>').insertBefore($('#user_avatar_preview'));
- });
-
- $(window).load(function () {
-
- //this produces the coordinates
- $('#user_avatar').imgAreaSelect({ selectionOpacity: 0, onSelectEnd: selectChange });
- //show the preview
- $('#user_avatar').imgAreaSelect({ aspectRatio: '1:1', onSelectChange: preview });
-
- });
-
-</script>
-
-<p>
-<img id="user_avatar" src="<?php echo $user_master_image; ?>" alt="<?php echo elgg_echo("profile:icon"); ?>" />
-</p>
-
-<div class="clearfloat"></div>
-
-<form action="<?php echo $vars['url']; ?>action/profile/cropicon" method="post" />
- <?php echo elgg_view('input/securitytoken'); ?>
- <input type="hidden" name="username" value="<?php echo $vars['user']->username; ?>" />
- <input type="hidden" name="x_1" value="<?php echo $vars['user']->x1; ?>" id="x_1" />
- <input type="hidden" name="x_2" value="<?php echo $vars['user']->x2; ?>" id="x_2" />
- <input type="hidden" name="y_1" value="<?php echo $vars['user']->y1; ?>" id="y_1" />
- <input type="hidden" name="y_2" value="<?php echo $vars['user']->y2; ?>" id="y_2" />
- <input type="submit" name="submit" value="<?php echo elgg_echo("profile:createicon"); ?>" />
-</form>
-
-</div>
-</div>
diff --git a/mod/profile/views/default/profile/hoverover.php b/mod/profile/views/default/profile/hoverover.php
deleted file mode 100644
index 5250377a1..000000000
--- a/mod/profile/views/default/profile/hoverover.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-/**
- * Elgg profile icon hover over
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- *
- * @uses $vars['entity'] The user entity. If none specified, the current user is assumed.
- */
-?>
-<li class="user_menu_name">
- <?php echo $vars['entity']->name; ?>
-</li>
-<?php
- echo elgg_view('profile/hoverover/actions', $vars);
- echo elgg_view('profile/hoverover/links', $vars);
-?> \ No newline at end of file
diff --git a/mod/profile/views/default/profile/icon.php b/mod/profile/views/default/profile/icon.php
deleted file mode 100644
index ef1b32b36..000000000
--- a/mod/profile/views/default/profile/icon.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-
-/**
- * Elgg profile icon
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- *
- * @uses $vars['entity'] The user entity. If none specified, the current user is assumed.
- * @uses $vars['size'] The size - small, medium or large. If none specified, medium is assumed.
- */
-
-// Get entity
-if (empty($vars['entity'])) {
- $vars['entity'] = $vars['user'];
-}
-
-if ($vars['entity'] instanceof ElggUser) {
- $name = htmlentities($vars['entity']->name, ENT_QUOTES, 'UTF-8');
- $username = $vars['entity']->username;
-
- if ($icontime = $vars['entity']->icontime) {
- $icontime = "{$icontime}";
- } else {
- $icontime = "default";
- }
-
- // Get size
- if (!in_array($vars['size'],array('small','medium','large','tiny','master','topbar'))) {
- $vars['size'] = 'medium';
- }
-
- // Get any align and js
- if (!empty($vars['align'])) {
- $align = " align=\"{$vars['align']}\" ";
- } else {
- $align = '';
- }
-
- // Override
- if (isset($vars['override']) && $vars['override'] == true) {
- $override = true;
- } else {
- $override = false;
- }
- // profile avatar drop-down menu
- if (!$override) {
- ?>
- <div class="usericon <?php echo $vars['size']; ?>">
- <div class="avatar_menu_button"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" border="0" width="15px" height="15px" /></div>
- <div class="sub_menu">
- <h3 class="displayname"><a href="<?php echo $vars['entity']->getURL(); ?>"><?php echo $vars['entity']->name; ?>
- <span class="username"><?php echo "&#64;" . $vars['entity']->username; ?></span></a></h3>
- <?php
- echo "<ul class='sub_menu_list'>";
- if (isloggedin()) {
- // if not looking at your own avatar menu
- if ($vars['entity']->getGUID() != $vars['user']->getGUID()) {
-
- // Add / Remove friend link
- $friendlinks = elgg_view('profile/menu/friendlinks',$vars);
- if (!empty($friendlinks)) {
- echo "<li class='user_menu_profile'>{$friendlinks}</li>";
- }
- // view for plugins to extend
- echo elgg_view('profile/menu/links',$vars);
- } else {
- // if looking at your own avatar menu - provide a couple of handy links
- ?>
- <li class="user_menu_profile">
- <a class="edit_profile" href="<?php echo $vars['url']?>pg/profile/<?php echo $vars['entity']->username; ?>/edit/details"><?php echo elgg_echo("profile:edit"); ?></a>
- </li>
- <li class="user_menu_profile">
- <a class="edit_avatar" href="<?php echo $vars['url']?>pg/profile/<?php echo $vars['entity']->username; ?>/edit/icon"><?php echo elgg_echo("profile:editicon"); ?></a>
- </li>
- <?php
- }
-
- // if Admin is logged in, and not looking at admins own avatar menu
- if (isadminloggedin() && ($_SESSION['id']!=$vars['entity']->guid) ){
- $adminlinks = elgg_view('profile/menu/adminlinks', $vars);
- if (!empty($adminlinks)) {
- echo "<li class='user_menu_admin'>{$adminlinks}</li>";
- }
- }
-
- }
- echo "</ul>";
- ?>
- </div>
- <?php
- if ((isadminloggedin()) || (!$vars['entity']->isBanned())) {
- ?><a href="<?php echo $vars['entity']->getURL(); ?>" class="icon" ><?php
- }
-
- }
-
- // Rounded avatar corners - CSS3 method - users avatar as background image so we can clip it with border-radius in supported browsers
- ?>
- <img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" border="0" <?php echo $align; ?> alt="<?php echo htmlentities($vars['entity']->name, ENT_QUOTES, 'UTF-8'); ?>" title="<?php echo htmlentities($vars['entity']->name, ENT_QUOTES, 'UTF-8'); ?>" <?php echo $vars['js']; ?> style="background: url(<?php echo $vars['entity']->getIcon($vars['size']); ?>) no-repeat;" class="<?php echo $vars['size']; ?>" />
- <?php
- /*
- original avatar method
- <img src="<?php echo $vars['entity']->getIcon($vars['size']); ?>" border="0" <?php echo $align; ?> alt="<?php echo htmlentities($vars['entity']->name, ENT_QUOTES, 'UTF-8'); ?>" title="<?php echo htmlentities($vars['entity']->name, ENT_QUOTES, 'UTF-8'); ?>" <?php echo $vars['js']; ?> />
- */
-
- if (!$override) {
- ?>
- </a></div>
- <?php
- }
-} \ No newline at end of file
diff --git a/mod/profile/views/default/profile/javascript.php b/mod/profile/views/default/profile/javascript.php
deleted file mode 100644
index a408d1c84..000000000
--- a/mod/profile/views/default/profile/javascript.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-
-/**
- * Elgg profile image Javascript
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- *
- * @uses $vars['entity'] The user entity
- */
-
-// header("Content-type: text/javascript");
-// header("Pragma: public");
-// header("Cache-Control: public");
-
-?>
-
-var submenuLayer = 1000;
-
-function setup_avatar_menu() {
-
- // avatar image menu link
- $("div.usericon img").mouseover(function() {
- // find nested avatar_menu_button and show
- $(this.parentNode.parentNode).children(".avatar_menu_button").show();
- $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow");
- //$(this.parentNode.parentNode).css("z-index", submenuLayer);
- })
- .mouseout(function() {
- if($(this).parent().parent().find("div.sub_menu").css('display')!="block") {
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
- $(this.parentNode.parentNode).children(".avatar_menu_button").hide();
- }
- else {
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
- $(this.parentNode.parentNode).children(".avatar_menu_button").show();
- $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow");
- }
- });
-
-
- // avatar contextual menu
- $(".avatar_menu_button img").click(function(e) {
-
- var submenu = $(this).parent().parent().find("div.sub_menu");
-
- // close submenu if arrow is clicked & menu already open
- if(submenu.css('display') == "block") {
- //submenu.hide();
- }
- else {
- // get avatar dimensions
- var avatar = $(this).parent().parent().parent().find("div.usericon");
- //alert( "avatarWidth: " + avatar.width() + ", avatarHeight: " + avatar.height() );
-
- // move submenu position so it aligns with arrow graphic
- if (e.pageX < 840) { // popup menu to left of arrow if we're at edge of page
- submenu.css("top",(avatar.height()) + "px")
- .css("left",(avatar.width()-15) + "px")
- .fadeIn('normal');
- }
- else {
- submenu.css("top",(avatar.height()) + "px")
- .css("left",(avatar.width()-166) + "px")
- .fadeIn('normal');
- }
-
- // force z-index - workaround for IE z-index bug
- avatar.css("z-index", submenuLayer);
- avatar.find("a.icon img").css("z-index", submenuLayer);
- submenu.css("z-index", submenuLayer+1);
-
- submenuLayer++;
-
- // change arrow to 'on' state
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on");
- }
-
- // hide any other open submenus and reset arrows
- $("div.sub_menu:visible").not(submenu).hide();
- $(".avatar_menu_button").removeClass("avatar_menu_arrow");
- $(".avatar_menu_button").removeClass("avatar_menu_arrow_on");
- $(".avatar_menu_button").removeClass("avatar_menu_arrow_hover");
- $(".avatar_menu_button").hide();
- $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").show();
- //alert("submenuLayer = " +submenu.css("z-index"));
- })
- // hover arrow each time mouseover enters arrow graphic (eg. when menu is already shown)
- .mouseover(function() {
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_hover");
- })
- // if menu not shown revert arrow, else show 'menu open' arrow
- .mouseout(function() {
- if($(this).parent().parent().find("div.sub_menu").css('display')!="block"){
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow");
- }
- else {
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
- $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on");
- }
- });
-
- // hide avatar menu if click occurs outside of menu
- // and hide arrow button
- $(document).click(function(event) {
- var target = $(event.target);
- if (target.parents(".usericon").length == 0) {
- $(".usericon div.sub_menu").fadeOut();
- $(".avatar_menu_button").removeClass("avatar_menu_arrow");
- $(".avatar_menu_button").removeClass("avatar_menu_arrow_on");
- $(".avatar_menu_button").removeClass("avatar_menu_arrow_hover");
- $(".avatar_menu_button").hide();
- }
- });
-
-
-}
-
-$(document).ready(function() {
-
- setup_avatar_menu();
-
-});
diff --git a/mod/profile/views/default/profile/js.php b/mod/profile/views/default/profile/js.php
new file mode 100644
index 000000000..5a08a90bd
--- /dev/null
+++ b/mod/profile/views/default/profile/js.php
@@ -0,0 +1,9 @@
+
+// force the first column to at least be as large as the profile box in cols 2 and 3
+// we also want to run before the widget init happens so priority is < 500
+elgg.register_hook_handler('init', 'system', function() {
+ // only do this on the profile page's widget canvas.
+ if ($('.profile').length) {
+ $('#elgg-widget-col-1').css('min-height', $('.profile').outerHeight(true) + 1);
+ }
+}, 400);
diff --git a/mod/profile/views/default/profile/listing.php b/mod/profile/views/default/profile/listing.php
deleted file mode 100644
index e53f9df75..000000000
--- a/mod/profile/views/default/profile/listing.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/**
- * Elgg user display (small)
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- *
- * @uses $vars['entity'] The user entity
- */
-
-$icon = elgg_view(
- "profile/icon", array(
- 'entity' => $vars['entity'],
- 'size' => 'tiny',
- )
-);
-
-$banned = $vars['entity']->isBanned();
-
-// Simple XFN
-$rel = "";
-if (page_owner() == $vars['entity']->guid)
- $rel = 'me';
-else if (check_entity_relationship(page_owner(), 'friend', $vars['entity']->guid))
- $rel = 'friend';
-
-if (!$banned) {
- $info .= "<p class='entity_title user'><a href=\"" . $vars['entity']->getUrl() . "\" rel=\"$rel\">" . $vars['entity']->name . "</a></p>";
- $location = $vars['entity']->location;
- if (!empty($location)) {
- $info .= "<p class='entity_subtext user'>" . elgg_echo("profile:location") . ": " . elgg_view("output/tags",array('value' => $vars['entity']->location)) . "</p>";
- }
- //create a view that a status plugin could extend - in the default case, this is the wire
- $info .= elgg_view("profile/status", array("entity" => $vars['entity']));
-}else{
- $info .= "<p class='entity_title user banned'>";
- if (isadminloggedin())
- $info .= "<a href=\"" . $vars['entity']->getUrl() . "\">";
- $info .= $vars['entity']->name;
- if (isadminloggedin())
- $info .= "</a>";
- $info .= "</p>";
-}
-
-echo elgg_view_listing($icon, $info); \ No newline at end of file
diff --git a/mod/profile/views/default/profile/menu/adminlinks.php b/mod/profile/views/default/profile/menu/adminlinks.php
deleted file mode 100644
index d2a36397d..000000000
--- a/mod/profile/views/default/profile/menu/adminlinks.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-/**
- * Profile admin context links
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- *
- * @uses $vars['entity'] The user entity
- */
-
-if (isadminloggedin()){
- if ($_SESSION['id']!=$vars['entity']->guid){
-?>
- <a href="<?php echo $vars['url']; ?>pg/settings/user/<?php echo $vars['entity']->username; ?>/"><?php echo elgg_echo('profile:editdetails'); ?></a>
-<?php
- if (!$vars['entity']->isBanned()) {
- echo elgg_view('output/confirmlink', array('text' => elgg_echo("ban"), 'href' => "{$vars['url']}action/admin/user/ban?guid={$vars['entity']->guid}"));
- } else {
- echo elgg_view('output/confirmlink', array('text' => elgg_echo("unban"), 'href' => "{$vars['url']}action/admin/user/unban?guid={$vars['entity']->guid}"));
- }
- echo elgg_view('output/confirmlink', array('text' => elgg_echo("delete"), 'href' => "{$vars['url']}action/admin/user/delete?guid={$vars['entity']->guid}"));
- echo elgg_view('output/confirmlink', array('text' => elgg_echo("resetpassword"), 'href' => "{$vars['url']}action/admin/user/resetpassword?guid={$vars['entity']->guid}"));
- if (!$vars['entity']->isAdmin()) {
- echo elgg_view('output/confirmlink', array('text' => elgg_echo("makeadmin"), 'href' => "{$vars['url']}action/admin/user/makeadmin?guid={$vars['entity']->guid}"));
- } else {
- echo elgg_view('output/confirmlink', array('text' => elgg_echo("removeadmin"), 'href' => "{$vars['url']}action/admin/user/removeadmin?guid={$vars['entity']->guid}"));
- }
- }
- }
diff --git a/mod/profile/views/default/profile/menu/friendlinks.php b/mod/profile/views/default/profile/menu/friendlinks.php
deleted file mode 100644
index f7ca3c2fd..000000000
--- a/mod/profile/views/default/profile/menu/friendlinks.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Elgg profile icon avatar menu: Add / Remove friend links
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- *
- * @uses $vars['entity'] The user entity. If none specified, the current user is assumed.
- */
-$ts = time();
-$token = generate_action_token($ts);
-if ($vars['entity']->isFriend()) {
- echo elgg_view('output/confirmlink', array(
- 'href' => "{$vars['url']}action/friends/remove?friend={$vars['entity']->getGUID()}",
- 'text' => elgg_echo('friend:remove'),
- 'class' => 'remove_friend'
- ));
-} else {
- echo elgg_view('output/confirmlink', array(
- 'href' => "{$vars['url']}action/friends/add?friend={$vars['entity']->getGUID()}",
- 'text' => elgg_echo('friend:add'),
- 'class' => 'add_friend'
- ));
-} \ No newline at end of file
diff --git a/mod/profile/views/default/profile/menu/links.php b/mod/profile/views/default/profile/menu/links.php
deleted file mode 100644
index de2b28926..000000000
--- a/mod/profile/views/default/profile/menu/links.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-/**
- * Elgg profile icon avatar menu: view for plugins to extend
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- *
- * @uses $vars['entity'] The user entity. If none specified, the current user is assumed.
- */
-?>
diff --git a/mod/profile/views/default/profile/metatags.php b/mod/profile/views/default/profile/metatags.php
index 0039281f0..52048b8a7 100644
--- a/mod/profile/views/default/profile/metatags.php
+++ b/mod/profile/views/default/profile/metatags.php
@@ -1,15 +1,16 @@
<?php
/**
- * Adds metatags to load Javascript required for the profile
+ * FOAF
*
* @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
*
*/
-if ($owner = page_owner_entity()) { ?>
- <link rel="meta" type="application/rdf+xml" title="FOAF" href="<?php echo full_url(); ?>?view=foaf" />
-<?php } ?> \ No newline at end of file
+$owner = elgg_get_page_owner_entity();
+
+if (elgg_instanceof($owner, 'user')) {
+?>
+ <link rel="meta" type="application/rdf+xml" title="FOAF" href="<?php echo current_page_url(); ?>?view=foaf" />
+<?php
+
+}
diff --git a/mod/profile/views/default/profile/owner_block.php b/mod/profile/views/default/profile/owner_block.php
new file mode 100644
index 000000000..63cb5391a
--- /dev/null
+++ b/mod/profile/views/default/profile/owner_block.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * Profile owner block
+ */
+
+$user = elgg_get_page_owner_entity();
+
+if (!$user) {
+ // no user so we quit view
+ echo elgg_echo('viewfailure', array(__FILE__));
+ return TRUE;
+}
+
+$icon = elgg_view_entity_icon($user, 'large', array(
+ 'use_hover' => false,
+ 'use_link' => false,
+));
+
+// grab the actions and admin menu items from user hover
+$menu = elgg_trigger_plugin_hook('register', "menu:user_hover", array('entity' => $user), array());
+$builder = new ElggMenuBuilder($menu);
+$menu = $builder->getMenu();
+$actions = elgg_extract('action', $menu, array());
+$admin = elgg_extract('admin', $menu, array());
+
+$profile_actions = '';
+if (elgg_is_logged_in() && $actions) {
+ $profile_actions = '<ul class="elgg-menu profile-action-menu mvm">';
+ foreach ($actions as $action) {
+ $profile_actions .= '<li>' . $action->getContent(array('class' => 'elgg-button elgg-button-action')) . '</li>';
+ }
+ $profile_actions .= '</ul>';
+}
+
+// if admin, display admin links
+$admin_links = '';
+if (elgg_is_admin_logged_in() && elgg_get_logged_in_user_guid() != elgg_get_page_owner_guid()) {
+ $text = elgg_echo('admin:options');
+
+ $admin_links = '<ul class="profile-admin-menu-wrapper">';
+ $admin_links .= "<li><a rel=\"toggle\" href=\"#profile-menu-admin\">$text&hellip;</a>";
+ $admin_links .= '<ul class="profile-admin-menu" id="profile-menu-admin">';
+ foreach ($admin as $menu_item) {
+ $admin_links .= elgg_view('navigation/menu/elements/item', array('item' => $menu_item));
+ }
+ $admin_links .= '</ul>';
+ $admin_links .= '</li>';
+ $admin_links .= '</ul>';
+}
+
+// content links
+$content_menu = elgg_view_menu('owner_block', array(
+ 'entity' => elgg_get_page_owner_entity(),
+ 'class' => 'profile-content-menu',
+));
+
+echo <<<HTML
+
+<div id="profile-owner-block">
+ $icon
+ $profile_actions
+ $content_menu
+ $admin_links
+</div>
+
+HTML;
diff --git a/mod/profile/views/default/profile/profile_contents/activity.php b/mod/profile/views/default/profile/profile_contents/activity.php
deleted file mode 100755
index 588ed89d1..000000000
--- a/mod/profile/views/default/profile/profile_contents/activity.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-/**
- * Elgg user display (details)
- * @uses $vars['entity'] The user entity
- */
- $limit = 20;
-?>
-<div id="profile_content">
- <?php
- if(is_plugin_enabled('thewire')) {
- // users last status msg, if they posted one
- echo elgg_view("profile/status", array("entity" => $vars['entity']));
- }
- if(is_plugin_enabled('conversations')) {
- // users last status msg, if they posted one
- echo elgg_view("profile/status", array("entity" => $vars['entity']));
- }
- if(is_plugin_enabled('riverdashboard')) {
- //select the correct river
- if (get_plugin_setting('activitytype', 'riverdashboard') == 'classic') {
- echo elgg_view_river_items($vars['entity']->getGuid(), 0, '', '', '', '', $limit,0,0,false,true);
- } else {
- echo elgg_view_river_items($vars['entity']->getGuid(), 0, '', '', '', '', $limit,0,0,false,false);
- echo elgg_view('riverdashboard/js');
- }
- } else {
- echo "Riverdashboard not loaded";
- }
- ?>
-</div>
diff --git a/mod/profile/views/default/profile/profile_contents/commentwall.php b/mod/profile/views/default/profile/profile_contents/commentwall.php
deleted file mode 100644
index f3a2adb1c..000000000
--- a/mod/profile/views/default/profile/profile_contents/commentwall.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-/**
- * Elgg profile comment wall
- */
-?>
-<div id="profile_content">
-<?php
-if(isloggedin()){
- echo elgg_view("profile/commentwall/commentwalladd");
-}
-echo elgg_view("profile/commentwall/commentwall", array('annotation' => $vars['comments']));
-?>
-</div> \ No newline at end of file
diff --git a/mod/profile/views/default/profile/profile_contents/details.php b/mod/profile/views/default/profile/profile_contents/details.php
deleted file mode 100755
index d040cef75..000000000
--- a/mod/profile/views/default/profile/profile_contents/details.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-/**
- * Elgg user display (details)
- * @uses $vars['entity'] The user entity
- */
-?>
-<div id="profile_content">
-<?php
- // Simple XFN
- $rel = "";
- if (page_owner() == $vars['entity']->guid)
- $rel = 'me';
- else if (check_entity_relationship(page_owner(), 'friend', $vars['entity']->guid))
- $rel = 'friend';
-
- $even_odd = null;
- if (is_array($vars['config']->profile) && sizeof($vars['config']->profile) > 0)
- foreach($vars['config']->profile as $shortname => $valtype) {
- if ($shortname != "description") {
- $value = $vars['entity']->$shortname;
- if (!empty($value)) {
- //This function controls the alternating class
- $even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even';
-?>
- <p class="<?php echo $even_odd; ?>">
- <b><?php
- echo elgg_echo("profile:{$shortname}");
- ?>: </b>
- <?php
- echo elgg_view("output/{$valtype}",array('value' => $vars['entity']->$shortname));
- ?>
- </p>
- <?php
- }
- }
- }
-?>
-<?php
- if (!get_plugin_setting('user_defined_fields', 'profile')) {
-?>
-<?php
- if ($vars['entity']->isBanned()) {
- echo "<div class='banned_user'>";
- echo elgg_echo('profile:banned');
- echo "</div>";
- }else{
- if($vars['entity']->description){
- echo "<p class='aboutme_title'><b>" . elgg_echo("profile:aboutme") . "</b></p>";
- echo "<div class='aboutme_contents'>" .elgg_view('output/longtext', array('value' => $vars['entity']->description))."</div>";
- }
- ?>
-<?php } ?>
- <?php
- }
-
- echo "</div>"; \ No newline at end of file
diff --git a/mod/profile/views/default/profile/profile_contents/friends.php b/mod/profile/views/default/profile/profile_contents/friends.php
deleted file mode 100755
index a097f3830..000000000
--- a/mod/profile/views/default/profile/profile_contents/friends.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Profile friends
- **/
-
-$friends = list_entities_from_relationship('friend',$vars['entity']->getGUID(),false,'user','',0,10,false);
-if(!$friends)
- $friends = "<p>This user has not made any friends yet.</p>";
-
-?>
-<div id="profile_content">
- <?php
- echo $friends;
- ?>
-</div> \ No newline at end of file
diff --git a/mod/profile/views/default/profile/profile_contents/sidebar.php b/mod/profile/views/default/profile/profile_contents/sidebar.php
deleted file mode 100644
index 43e3d1087..000000000
--- a/mod/profile/views/default/profile/profile_contents/sidebar.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Elgg profile icon edit form
- *
- * @package ElggProfile
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-?>
-<div id="profile_sidebar">
-<?php
- $section = $vars['section'];
- echo elgg_view('profile/profile_ownerblock', array('section' => $section));
-?>
-</div> \ No newline at end of file
diff --git a/mod/profile/views/default/profile/profile_contents/twitter.php b/mod/profile/views/default/profile/profile_contents/twitter.php
deleted file mode 100755
index f9b6f5d54..000000000
--- a/mod/profile/views/default/profile/profile_contents/twitter.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Elgg twitter view page
- */
-
-$twitter_username = $vars['entity']->twitter;
-
-// if the twitter username is empty, then do not show
-if($twitter_username){
-?>
-<div id="profile_content">
- <ul id="twitter_update_list"></ul>
- <p class="visit_twitter"><a href="http://twitter.com/<?php echo $twitter_username; ?>" target="_blank"><?php echo elgg_echo("twitter:visit"); ?></a></p>
- <script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script>
- <script type="text/javascript" src="http://twitter.com/statuses/user_timeline/<?php echo $twitter_username; ?>.json?callback=twitterCallback2&count=10"></script>
-</div>
-
-<?php
-} \ No newline at end of file
diff --git a/mod/profile/views/default/profile/profile_navigation.php b/mod/profile/views/default/profile/profile_navigation.php
deleted file mode 100755
index e4627d37a..000000000
--- a/mod/profile/views/default/profile/profile_navigation.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-$section = 'activity';
-if (isset($vars['section'])) {
- $section = $vars['section'];
-}
-
-$profile = $vars['entity'];
-$activity = '';
-$friends = '';
-$extend = '';
-$twitter = '';
-
-$url = "{$profile->getURL()}/";
-
-//select section
-switch($section){
- case 'friends':
- $friends = 'class="selected"';
- break;
-
- case 'details':
- $details = 'class="selected"';
- break;
-
- case 'twitter':
- $twitter = 'class="selected"';
- break;
-
- case 'commentwall':
- $commentwall = 'class="selected"';
- break;
- case 'activity':
- default:
- $activity = 'class="selected"';
- break;
-}
-?>
-<div class="elgg_horizontal_tabbed_nav profile">
-<div class="profile_name"><h2><?php echo $profile->name; ?></h2></div>
-<ul>
- <li <?php echo $activity; ?>><a href="<?php echo $url; ?>">Activity</a></li>
- <li <?php echo $details; ?>><a href="<?php echo $url . 'details'; ?>">Details</a></li>
- <li <?php echo $friends; ?>><a href="<?php echo $url . 'friends'; ?>">Friends</a></li>
- <li <?php echo $commentwall; ?>><a href="<?php echo $url . 'commentwall'; ?>">Comment Wall</a></li>
- <?php
- //check to see if the twitter username is set
- if($vars['entity']->twitter){
- ?>
- <li <?php echo $twitter; ?>><a href="<?php echo $url . 'twitter'; ?>">Twitter</a></li>
- <?php
- }
- //insert a view which others can extend
- echo elgg_view('profilenav/extend', $profile);
- ?>
-</ul>
-</div> \ No newline at end of file
diff --git a/mod/profile/views/default/profile/profile_ownerblock.php b/mod/profile/views/default/profile/profile_ownerblock.php
deleted file mode 100755
index a0c551b94..000000000
--- a/mod/profile/views/default/profile/profile_ownerblock.php
+++ /dev/null
@@ -1,130 +0,0 @@
-<?php
-
-/**
- * A simple owner block which houses info about the user whose 'stuff' you are looking at
- */
-
-//get the page owner
-if($vars['entity']){
- if($vars['context'] == 'edit')
- $user = get_entity($vars['entity']->container_guid);
- else
- $user = get_entity($vars['entity']->guid);
-}else{
- $user = page_owner_entity();
-}
-$more_info = '';
-//set some variables
-$location = elgg_view("output/tags",array('value' => $user->location));
-$section = $vars['section'];
-if($section == 'details'){
- $icon = elgg_view("profile/icon",array('entity' => $user, 'size' => 'large', 'override' => 'true'));
- $icon_class = "large";
-}else{
- $icon = elgg_view("profile/icon",array('entity' => $user, 'size' => 'small'));
- $more_info = "<div class='owner_block_contents clearfloat'>";
- $more_info .= "<h3><a href='{$url}'>{$user->name}</a></h3>";
- $more_info .= "<p class='profile_info briefdescription'>{$user->briefdescription}</p>";
- $more_info .= "<p class='profile_info location'>{$location}</p>";
- $more_info .= "</div>";
-}
-$profile_actions = "";
-if(isloggedin() && (get_loggedin_user()->getGuid() == page_owner())){
- $profile_actions = "<div class='clearfloat profile_actions'>";
- $profile_actions .= "<a href='{$vars['url']}pg/profile/{$user->username}/edit/details' class='action_button'>". elgg_echo('profile:edit') ."</a>";
- $profile_actions .= "<a href='{$vars['url']}pg/profile/{$user->username}/edit/icon' class='action_button'>". elgg_echo('profile:editicon') ."</a>";
- $profile_actions .= "</div>";
-}else{
- $profile_actions = "<div class='profile_actions'>";
- if (isloggedin()) {
- if ($_SESSION['user']->getGUID() != $user->getGUID()) {
- $ts = time();
- $token = generate_action_token($ts);
-
- if ($user->isFriend()) {
- $profile_actions .= "<a href=\"{$vars['url']}action/friends/remove?friend={$user->getGUID()}&__elgg_token=$token&__elgg_ts=$ts\" class='action_button'>" . elgg_echo('friend:remove') . "</a>";
- } else {
- $profile_actions .= "<a href=\"{$vars['url']}action/friends/add?friend={$user->getGUID()}&__elgg_token=$token&__elgg_ts=$ts\" class='action_button'>" . elgg_echo('friend:add') . "</a>";
- }
- }
- }
- if(is_plugin_enabled('messages') && isloggedin()){
- $profile_actions .= "<a href=\"{$vars['url']}mod/messages/send.php?send_to={$user->guid}\" class='action_button'>". elgg_echo('messages:send') ."</a>";
- }
- $profile_actions .= "</div>";
-}
-
-$username = $user->username;
-$email = $user->email;
-$phone = $user->phone;
-
-//get correct links
-$url = $vars['url'];
-
-//if admin display admin links
-if(isadminloggedin()){
- $admin_links = elgg_view('profile/admin_menu');
-}else{
- $admin_links = '';
-}
-
-
-//check tools are enabled - hard-coded for phase1
-// @todo - provide a view to extend for profile pages ownerblock tool-links
-if(is_plugin_enabled('blog')){
- $blog_link = "<li><a href=\"{$vars['url']}pg/blog/{$username}\">Blog</a></li>";
-}else{
- $blog_link = "";
-}
-if(is_plugin_enabled('bookmarks')){
- $bookmark_link = "<li><a href=\"{$vars['url']}pg/bookmarks/{$username}\">Bookmarks</a></li>";
-}else{
- $bookmark_link = "";
-}
-if(is_plugin_enabled('document')){
- $docs_link = "<li><a href=\"{$vars['url']}pg/document/{$username}\">Documents</a></li>";
-}else{
- $docs_link = "";
-}
-if(is_plugin_enabled('feeds')){
- $feeds_link = "<li><a href=\"{$vars['url']}pg/feeds/{$username}\">Feeds</a></li>";
-}else{
- $feeds_link = "";
-}
-if(is_plugin_enabled('tidypics')){
- $tidypics_link = "<li><a href=\"{$vars['url']}pg/photos/owned/{$username}\">Photos</a></li>";
-}else{
- $tidypics_link = "";
-}
-if(is_plugin_enabled('videolist')){
- $video_link = "<li><a href=\"{$vars['url']}pg/videolist/{$username}\">Videos</a></li>";
-}else{
- $video_link = "";
-}
-
-//contruct the display
-$display = <<<EOT
-
-<div id="owner_block">
- <div class="owner_block_icon {$icon_class}">
- {$icon}
- </div>
- {$more_info}
- {$profile_actions}
- <div class="owner_block_links">
- <ul>
- {$blog_link}
- {$bookmark_link}
- {$docs_link}
- {$feeds_link}
- {$tidypics_link}
- {$video_link}
- </ul>
- </div>
- <!-- if admin user -->
- {$admin_links}
-</div>
-
-EOT;
-
-echo $display;
diff --git a/mod/profile/views/default/profile/topbar_extend.php b/mod/profile/views/default/profile/topbar_extend.php
deleted file mode 100644
index c1c4e13bb..000000000
--- a/mod/profile/views/default/profile/topbar_extend.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-/**
- *
- */
-
-$user = get_loggedin_user();
-
-if (($user instanceof ElggUser) && ($user->guid > 0)) {
- $friends = elgg_echo('friends');
- echo "<a class='myfriends' href=\"{$vars['url']}pg/friends/{$user->username}\" title=\"$friends\">$friends</a>";
-}
diff --git a/mod/profile/views/default/profile/wrapper.php b/mod/profile/views/default/profile/wrapper.php
new file mode 100644
index 000000000..73b7934f2
--- /dev/null
+++ b/mod/profile/views/default/profile/wrapper.php
@@ -0,0 +1,12 @@
+<?php
+/**
+ * Profile info box
+ */
+
+?>
+<div class="profile elgg-col-2of3">
+ <div class="elgg-inner clearfix">
+ <?php echo elgg_view('profile/owner_block'); ?>
+ <?php echo elgg_view('profile/details'); ?>
+ </div>
+</div> \ No newline at end of file
diff --git a/mod/profile/views/default/river/user/default/profileiconupdate.php b/mod/profile/views/default/river/user/default/profileiconupdate.php
deleted file mode 100644
index 1dca77df6..000000000
--- a/mod/profile/views/default/river/user/default/profileiconupdate.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
- $performed_by = get_entity($vars['item']->subject_guid); // $statement->getSubject();
-
- $url = "<a href=\"{$performed_by->getURL()}\">{$performed_by->name}</a>";
- $string = sprintf(elgg_echo("profile:river:update"),$url) ." <span class='entity_subtext'>" . friendly_time($vars['item']->posted) . "</span>";
-
- echo $string; \ No newline at end of file
diff --git a/mod/profile/views/default/river/user/default/profileupdate.php b/mod/profile/views/default/river/user/default/profileupdate.php
deleted file mode 100644
index e609e1a40..000000000
--- a/mod/profile/views/default/river/user/default/profileupdate.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- $performed_by = get_entity($vars['item']->subject_guid); // $statement->getSubject();
-
- $url = "<a href=\"{$performed_by->getURL()}\">{$performed_by->name}</a>";
- $string = sprintf(elgg_echo("profile:river:update"),$url) ." <span class='entity_subtext'>" . friendly_time($vars['item']->posted) . "</span>";
-
-?>
-
-<?php echo $string; ?> \ No newline at end of file