diff options
Diffstat (limited to 'actions/profile/fields/add.php')
| -rw-r--r-- | actions/profile/fields/add.php | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/actions/profile/fields/add.php b/actions/profile/fields/add.php index 96e878402..fce783092 100644 --- a/actions/profile/fields/add.php +++ b/actions/profile/fields/add.php @@ -2,31 +2,33 @@ /** * Elgg profile plugin edit default profile action * - * @package ElggProfile */ -global $CONFIG; +$label = get_input('label'); +$type = get_input('type'); -$label = sanitise_string(get_input('label')); -$type = sanitise_string(get_input('type')); - -$fieldlist = get_plugin_setting('user_defined_fields', 'profile'); +$fieldlist = elgg_get_config('profile_custom_fields'); if (!$fieldlist) { $fieldlist = ''; + $id = 1; +} else { + $fieldlistarray = explode(',', $fieldlist); + foreach ($fieldlistarray as $key => $value) { + $fieldlistarray[$key] = (int)$value; + } + $id = max($fieldlistarray) + 1; } -if (($label) && ($type)){ - // Assign a random name - $n = md5(time().rand(0,9999)); - +if (($label) && ($type)) { if (!empty($fieldlist)) { $fieldlist .= ','; } - $fieldlist .= $n; + $fieldlist .= "$id"; + + if (elgg_save_config("admin_defined_profile_$id", $label) && + elgg_save_config("admin_defined_profile_type_$id", $type) && + elgg_save_config('profile_custom_fields', $fieldlist)) { - 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')); |
