aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-12-29 20:17:54 +0000
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-12-29 20:17:54 +0000
commit7e434bda73195ad81d728c97823c14c09383438d (patch)
treec9af7225b4f82b0abfd9403fee4b3f0e439caa6e
parentce7eb8ee45b4222e9ea5e63ed6941f19239b969d (diff)
downloadelgg-7e434bda73195ad81d728c97823c14c09383438d.tar.gz
elgg-7e434bda73195ad81d728c97823c14c09383438d.tar.bz2
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
-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
-rw-r--r--engine/lib/users.php14
-rw-r--r--mod/profile/views/default/profile/details.php4
-rw-r--r--views/default/admin/appearance/profile_fields/list.php8
-rw-r--r--views/default/forms/profile/edit.php2
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 &amp;&amp; showing up in profile fields
+ // the decoding is a stop gap to prevent &amp;&amp; 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 '<div id="profile-details" class="elgg-body pll">';
echo "<h2>{$user->name}</h2>";
@@ -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 "<p class='profile-banned-user'>";
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 @@
</p>
<?php
-$profile_fields = elgg_get_config('profile');
+$profile_fields = elgg_get_config('profile_fields');
if (is_array($profile_fields) && count($profile_fields) > 0) {
foreach ($profile_fields as $shortname => $valtype) {
$metadata = get_metadata_byname($vars['entity']->guid, $shortname);