aboutsummaryrefslogtreecommitdiff
path: root/mod/profile
diff options
context:
space:
mode:
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-12-18 22:20:25 +0000
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-12-18 22:20:25 +0000
commit09d08af9814a4edfb2050cdb47ad8ae20a944472 (patch)
tree43aad705fd98ab1531d7ca19aebdf19d864e60fd /mod/profile
parent9bc9a3e7590ba15039b019da22c60bdd9d9868e0 (diff)
downloadelgg-09d08af9814a4edfb2050cdb47ad8ae20a944472.tar.gz
elgg-09d08af9814a4edfb2050cdb47ad8ae20a944472.tar.bz2
moved profile edit form into core
git-svn-id: http://code.elgg.org/elgg/trunk@7672 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/profile')
-rw-r--r--mod/profile/actions/edit.php110
-rw-r--r--mod/profile/start.php5
2 files changed, 5 insertions, 110 deletions
diff --git a/mod/profile/actions/edit.php b/mod/profile/actions/edit.php
deleted file mode 100644
index da7553b6e..000000000
--- a/mod/profile/actions/edit.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-/**
- * Elgg profile plugin edit action
- *
- * @package ElggProfile
- */
-
-global $CONFIG;
-
-$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(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 = elgg_echo('profile:field_too_long', array(elgg_echo("profile:{$shortname}")));
- register_error($error);
- forward(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
- elgg_trigger_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',get_loggedin_userid(),get_loggedin_userid(),get_default_access(get_loggedin_user()));
- }
-
- system_message(elgg_echo("profile:saved"));
-}
-
-forward($profile_owner->getUrl() . "/details");
diff --git a/mod/profile/start.php b/mod/profile/start.php
index 4c24c2b50..8ae16cfb5 100644
--- a/mod/profile/start.php
+++ b/mod/profile/start.php
@@ -135,6 +135,9 @@ function profile_page_handler($page) {
switch ($action) {
case 'edit':
+ require $CONFIG->path . 'pages/profile/edit.php';
+ return;
+ /*
$layout = 'one_column_with_sidebar';
if (!$user || !$user->canEdit()) {
@@ -144,6 +147,8 @@ function profile_page_handler($page) {
$content = profile_get_user_edit_content($user, $page);
$content = elgg_view_layout($layout, array('content' => $content));
+ *
+ */
break;
default: