From 7e434bda73195ad81d728c97823c14c09383438d Mon Sep 17 00:00:00 2001 From: cash Date: Wed, 29 Dec 2010 20:17:54 +0000 Subject: Fixes #2751 profile custom fields uses the config table now git-svn-id: http://code.elgg.org/elgg/trunk@7754 36083f99-b078-4883-b0ff-0f9b5a30f544 --- actions/profile/edit.php | 4 ++-- actions/profile/fields/add.php | 27 +++++++++++++++------------ actions/profile/fields/delete.php | 10 ++++++---- actions/profile/fields/reorder.php | 4 ++-- actions/profile/fields/reset.php | 8 ++++---- 5 files changed, 29 insertions(+), 24 deletions(-) (limited to 'actions') diff --git a/actions/profile/edit.php b/actions/profile/edit.php index 219474f2c..2d7c25d37 100644 --- a/actions/profile/edit.php +++ b/actions/profile/edit.php @@ -28,9 +28,9 @@ function profile_array_decoder(&$v) { $v = html_entity_decode($v, ENT_COMPAT, 'UTF-8'); } -$profile_fields = elgg_get_config('profile'); +$profile_fields = elgg_get_config('profile_fields'); foreach ($profile_fields as $shortname => $valuetype) { - // the decoding is a stop gag to prevent && showing up in profile fields + // the decoding is a stop gap to prevent && showing up in profile fields // because it is escaped on both input (get_input()) and output (view:output/text). see #561 and #1405. // must decode in utf8 or string corruption occurs. see #1567. $value = get_input($shortname); 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')); diff --git a/actions/profile/fields/delete.php b/actions/profile/fields/delete.php index 38d8b8379..26ab48cba 100644 --- a/actions/profile/fields/delete.php +++ b/actions/profile/fields/delete.php @@ -7,7 +7,7 @@ $id = get_input('id'); -$fieldlist = get_plugin_setting('user_defined_fields', 'profile'); +$fieldlist = elgg_get_config('profile_custom_fields'); if (!$fieldlist) { $fieldlist = ''; } @@ -16,9 +16,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/reorder.php b/actions/profile/fields/reorder.php index a30e97bac..dd7a682a6 100644 --- a/actions/profile/fields/reorder.php +++ b/actions/profile/fields/reorder.php @@ -6,7 +6,7 @@ */ $ordering = get_input('fieldorder'); -//if (!empty($ordering)) -$result = set_plugin_setting('user_defined_fields',$ordering,'profile'); + +$result = elgg_save_config('profile_custom_fields', $ordering); exit; \ No newline at end of file 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')); -- cgit v1.2.3