aboutsummaryrefslogtreecommitdiff
path: root/actions/profile/fields/add.php
diff options
context:
space:
mode:
Diffstat (limited to 'actions/profile/fields/add.php')
-rw-r--r--actions/profile/fields/add.php27
1 files changed, 15 insertions, 12 deletions
diff --git a/actions/profile/fields/add.php b/actions/profile/fields/add.php
index 96e878402..15bd7024a 100644
--- a/actions/profile/fields/add.php
+++ b/actions/profile/fields/add.php
@@ -5,28 +5,31 @@
* @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 (!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'));