diff options
author | Jeroen Dalsem <jdalsem@coldtrick.com> | 2012-09-13 11:13:08 +0200 |
---|---|---|
committer | Jeroen Dalsem <jdalsem@coldtrick.com> | 2012-09-13 11:13:08 +0200 |
commit | e1eedeae6a43a5f040402a4ba2c09146877a2672 (patch) | |
tree | 48de34c90492bbc8c7433db954df9dc68d008c7f /actions/profile/edit.php | |
parent | 9ccbd106a87a1742a61cc4df0e9ead921046772a (diff) | |
download | elgg-e1eedeae6a43a5f040402a4ba2c09146877a2672.tar.gz elgg-e1eedeae6a43a5f040402a4ba2c09146877a2672.tar.bz2 |
fixes saving of empty values on profile metadata #4858
Diffstat (limited to 'actions/profile/edit.php')
-rw-r--r-- | actions/profile/edit.php | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/actions/profile/edit.php b/actions/profile/edit.php index 8ca60f246..0456c60bc 100644 --- a/actions/profile/edit.php +++ b/actions/profile/edit.php @@ -51,7 +51,7 @@ foreach ($profile_fields as $shortname => $valuetype) { if ($valuetype == 'tags') { $value = string_to_tag_array($value); } - + $input[$shortname] = $value; } @@ -74,21 +74,26 @@ if (sizeof($input) > 0) { 'metadata_name' => $shortname ); elgg_delete_metadata($options); - 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($owner->guid, $shortname, $interval, 'text', $owner->guid, $access_id, $multiple); + + if(!is_null($value) && ($value !== '')){ + // only create metadata for non empty values (0 is allowed) to prevent metadata records with empty string values #4858 + + 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($owner->guid, $shortname, $interval, 'text', $owner->guid, $access_id, $multiple); + } + } else { + create_metadata($owner->getGUID(), $shortname, $value, 'text', $owner->getGUID(), $access_id); } - } else { - create_metadata($owner->getGUID(), $shortname, $value, 'text', $owner->getGUID(), $access_id); } } |