diff options
Diffstat (limited to 'actions/profile/fields')
| -rw-r--r-- | actions/profile/fields/add.php | 30 | ||||
| -rw-r--r-- | actions/profile/fields/delete.php | 11 | ||||
| -rw-r--r-- | actions/profile/fields/edit.php | 20 | ||||
| -rw-r--r-- | actions/profile/fields/reorder.php | 8 | ||||
| -rw-r--r-- | actions/profile/fields/reset.php | 8 |
5 files changed, 50 insertions, 27 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')); diff --git a/actions/profile/fields/delete.php b/actions/profile/fields/delete.php index 38d8b8379..9879feb3f 100644 --- a/actions/profile/fields/delete.php +++ b/actions/profile/fields/delete.php @@ -2,12 +2,11 @@ /** * Elgg profile plugin edit default profile action removal * - * @package ElggProfile */ $id = get_input('id'); -$fieldlist = get_plugin_setting('user_defined_fields', 'profile'); +$fieldlist = elgg_get_config('profile_custom_fields'); if (!$fieldlist) { $fieldlist = ''; } @@ -16,9 +15,11 @@ $fieldlist = str_replace("{$id},", "", $fieldlist); $fieldlist = str_replace(",{$id}", "", $fieldlist); $fieldlist = str_replace("{$id}", "", $fieldlist); -if (($id) && (clear_plugin_setting("admin_defined_profile_$id", 'profile')) && - (clear_plugin_setting("admin_defined_profile_type_$id", 'profile')) && - set_plugin_setting('user_defined_fields', $fieldlist, 'profile')) { +if ($id && + unset_config("admin_defined_profile_$id") && + unset_config("admin_defined_profile_type_$id") && + elgg_save_config('profile_custom_fields', $fieldlist)) { + system_message(elgg_echo('profile:editdefault:delete:success')); } else { register_error(elgg_echo('profile:editdefault:delete:fail')); diff --git a/actions/profile/fields/edit.php b/actions/profile/fields/edit.php new file mode 100644 index 000000000..5fc84ff11 --- /dev/null +++ b/actions/profile/fields/edit.php @@ -0,0 +1,20 @@ +<?php +/** + * Edit a custom profile field + */ + +$id = get_input('id'); +$label = get_input('label'); + +if (!elgg_get_config("admin_defined_profile_$id")) { + register_error(elgg_echo('profile:editdefault:fail')); + forward(REFERER); +} + +if (elgg_save_config("admin_defined_profile_$id", $label)) { + system_message(elgg_echo('profile:editdefault:success')); +} else { + register_error(elgg_echo('profile:editdefault:fail')); +} + +forward(REFERER);
\ No newline at end of file diff --git a/actions/profile/fields/reorder.php b/actions/profile/fields/reorder.php index a30e97bac..27c716749 100644 --- a/actions/profile/fields/reorder.php +++ b/actions/profile/fields/reorder.php @@ -2,11 +2,11 @@ /** * Elgg profile plugin reorder fields * - * @package ElggProfile */ $ordering = get_input('fieldorder'); -//if (!empty($ordering)) -$result = set_plugin_setting('user_defined_fields',$ordering,'profile'); -exit;
\ No newline at end of file +$result = elgg_save_config('profile_custom_fields', $ordering); + +// called by ajax so we exit +exit; diff --git a/actions/profile/fields/reset.php b/actions/profile/fields/reset.php index 2cf54b563..19efae479 100644 --- a/actions/profile/fields/reset.php +++ b/actions/profile/fields/reset.php @@ -4,16 +4,16 @@ * */ -$fieldlist = get_plugin_setting('user_defined_fields', 'profile'); +$fieldlist = elgg_get_config('profile_custom_fields'); if ($fieldlist) { $fieldlistarray = explode(',', $fieldlist); foreach ($fieldlistarray as $listitem) { - clear_plugin_setting("admin_defined_profile_{$listitem}", 'profile'); - clear_plugin_setting("admin_defined_profile_type_{$listitem}", 'profile'); + unset_config("admin_defined_profile_{$listitem}"); + unset_config("admin_defined_profile_type_{$listitem}"); } } -set_plugin_setting('user_defined_fields', FALSE, 'profile'); +unset_config('profile_custom_fields'); system_message(elgg_echo('profile:defaultprofile:reset')); |
