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 +++---- engine/lib/users.php | 14 +++++------ mod/profile/views/default/profile/details.php | 4 ++-- .../admin/appearance/profile_fields/list.php | 8 +++---- views/default/forms/profile/edit.php | 2 +- 9 files changed, 43 insertions(+), 38 deletions(-) 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')); diff --git a/engine/lib/users.php b/engine/lib/users.php index 25b269873..04e1eeff4 100644 --- a/engine/lib/users.php +++ b/engine/lib/users.php @@ -1575,13 +1575,13 @@ function elgg_profile_fields_setup() { ); $loaded_default = array(); - if ($fieldlist = get_plugin_setting('user_defined_fields','profile')) { + if ($fieldlist = elgg_get_config('profile_custom_fields')) { if (!empty($fieldlist)) { - $fieldlistarray = explode(',',$fieldlist); + $fieldlistarray = explode(',', $fieldlist); $loaded_defaults = array(); - foreach($fieldlistarray as $listitem) { - if ($translation = get_plugin_setting("admin_defined_profile_{$listitem}", 'profile')) { - $type = get_plugin_setting("admin_defined_profile_type_{$listitem}", 'profile'); + foreach ($fieldlistarray as $listitem) { + if ($translation = elgg_get_config("admin_defined_profile_{$listitem}")) { + $type = elgg_get_config("admin_defined_profile_type_{$listitem}"); $loaded_defaults["admin_defined_profile_{$listitem}"] = $type; add_translation(get_current_language(), array("profile:admin_defined_profile_{$listitem}" => $translation)); } @@ -1594,10 +1594,10 @@ function elgg_profile_fields_setup() { $profile_defaults = $loaded_defaults; } - $CONFIG->profile = elgg_trigger_plugin_hook('profile:fields', 'profile', NULL, $profile_defaults); + $CONFIG->profile_fields = elgg_trigger_plugin_hook('profile:fields', 'profile', NULL, $profile_defaults); // register any tag metadata names - foreach ($CONFIG->profile as $name => $type) { + foreach ($CONFIG->profile_fields as $name => $type) { if ($type == 'tags') { elgg_register_tag_metadata_name($name); // register a tag name translation diff --git a/mod/profile/views/default/profile/details.php b/mod/profile/views/default/profile/details.php index 0afceec0b..31630fb69 100644 --- a/mod/profile/views/default/profile/details.php +++ b/mod/profile/views/default/profile/details.php @@ -6,7 +6,7 @@ $user = elgg_get_page_owner(); -$profile_fields = elgg_get_config('profile'); +$profile_fields = elgg_get_config('profile_fields'); echo '
'; echo "

{$user->name}

"; @@ -34,7 +34,7 @@ if (is_array($profile_fields) && sizeof($profile_fields) > 0) { } } -if (!get_plugin_setting('user_defined_fields', 'profile')) { +if (!elgg_get_config('profile_custom_fields')) { if ($user->isBanned()) { echo "

"; echo elgg_echo('banned'); diff --git a/views/default/admin/appearance/profile_fields/list.php b/views/default/admin/appearance/profile_fields/list.php index bbd6dccd2..d14452f47 100644 --- a/views/default/admin/appearance/profile_fields/list.php +++ b/views/default/admin/appearance/profile_fields/list.php @@ -5,15 +5,15 @@ $n = 0; $loaded_defaults = array(); $items = array(); -if ($fieldlist = get_plugin_setting('user_defined_fields', 'profile')) { +if ($fieldlist = elgg_get_config('profile_custom_fields')) { $fieldlistarray = explode(',', $fieldlist); - foreach($fieldlistarray as $listitem) { - if ($translation = get_plugin_setting("admin_defined_profile_{$listitem}", 'profile')) { + foreach ($fieldlistarray as $listitem) { + if ($translation = elgg_get_config("admin_defined_profile_{$listitem}")) { $item = new stdClass; $item->translation = $translation; $item->shortname = $listitem; $item->name = "admin_defined_profile_{$listitem}"; - $item->type = get_plugin_setting("admin_defined_profile_type_{$listitem}", 'profile'); + $item->type = elgg_get_config("admin_defined_profile_type_{$listitem}"); $items[] = $item; } } diff --git a/views/default/forms/profile/edit.php b/views/default/forms/profile/edit.php index c9117c8e7..108e7f9f2 100644 --- a/views/default/forms/profile/edit.php +++ b/views/default/forms/profile/edit.php @@ -13,7 +13,7 @@

0) { foreach ($profile_fields as $shortname => $valtype) { $metadata = get_metadata_byname($vars['entity']->guid, $shortname); -- cgit v1.2.3