aboutsummaryrefslogtreecommitdiff
path: root/actions/profile
diff options
context:
space:
mode:
Diffstat (limited to 'actions/profile')
-rw-r--r--actions/profile/edit.php4
-rw-r--r--actions/profile/fields/add.php27
-rw-r--r--actions/profile/fields/delete.php10
-rw-r--r--actions/profile/fields/reorder.php4
-rw-r--r--actions/profile/fields/reset.php8
5 files changed, 29 insertions, 24 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'));