aboutsummaryrefslogtreecommitdiff
path: root/actions
diff options
context:
space:
mode:
authorJeroen Dalsem <jdalsem@coldtrick.com>2012-09-13 11:13:08 +0200
committerJeroen Dalsem <jdalsem@coldtrick.com>2012-09-13 11:13:08 +0200
commite1eedeae6a43a5f040402a4ba2c09146877a2672 (patch)
tree48de34c90492bbc8c7433db954df9dc68d008c7f /actions
parent9ccbd106a87a1742a61cc4df0e9ead921046772a (diff)
downloadelgg-e1eedeae6a43a5f040402a4ba2c09146877a2672.tar.gz
elgg-e1eedeae6a43a5f040402a4ba2c09146877a2672.tar.bz2
fixes saving of empty values on profile metadata #4858
Diffstat (limited to 'actions')
-rw-r--r--actions/profile/edit.php35
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);
}
}