diff options
Diffstat (limited to 'mod/profile/actions/editdefault.php')
-rw-r--r-- | mod/profile/actions/editdefault.php | 20 |
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')); |