aboutsummaryrefslogtreecommitdiff
path: root/mod/profile/actions/editdefault.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/profile/actions/editdefault.php')
-rw-r--r--mod/profile/actions/editdefault.php20
1 files changed, 14 insertions, 6 deletions
diff --git a/mod/profile/actions/editdefault.php b/mod/profile/actions/editdefault.php
index 7f5fe0004..70e3b5cd8 100644
--- a/mod/profile/actions/editdefault.php
+++ b/mod/profile/actions/editdefault.php
@@ -15,15 +15,23 @@ 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)){
- // find next index for new field
- $n = 0;
- while (get_plugin_setting("admin_defined_profile_$n", 'profile')) {
- $n++;
+ // 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'))) {
+ 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'));