diff options
Diffstat (limited to 'mod/profile/actions')
-rw-r--r-- | mod/profile/actions/deletedefaultprofileitem.php | 20 | ||||
-rw-r--r-- | mod/profile/actions/editdefault.php | 20 | ||||
-rw-r--r-- | mod/profile/actions/editfield.php | 21 | ||||
-rw-r--r-- | mod/profile/actions/reorder.php | 17 | ||||
-rw-r--r-- | mod/profile/actions/resetdefaultprofile.php | 12 |
5 files changed, 73 insertions, 17 deletions
diff --git a/mod/profile/actions/deletedefaultprofileitem.php b/mod/profile/actions/deletedefaultprofileitem.php index b5b2eba84..7d431020d 100644 --- a/mod/profile/actions/deletedefaultprofileitem.php +++ b/mod/profile/actions/deletedefaultprofileitem.php @@ -1,7 +1,7 @@ <?php /** * Elgg profile plugin edit default profile action removal - * + * * @package ElggProfile * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 * @author Curverider Ltd <info@elgg.com> @@ -12,11 +12,21 @@ global $CONFIG; admin_gatekeeper(); - + $id = (int)get_input('id'); - -if ( ($id) && (set_plugin_setting("admin_defined_profile_$id", '', 'profile')) && - (set_plugin_setting("admin_defined_profile_type_$id", '', 'profile'))) { + +$fieldlist = get_plugin_setting('user_defined_fields', 'profile'); +if (!$fieldlist) { + $fieldlist = ''; +} + +$fieldlist = str_replace("{$id},", "", $fieldlist); +$fieldlist = str_replace(",{$id}", "", $fieldlist); +$fieldlist = str_replace("{$id}", "", $fieldlist); + +if (($id) && (set_plugin_setting("admin_defined_profile_$id", '', 'profile')) && + (set_plugin_setting("admin_defined_profile_type_$id", '', 'profile')) && + set_plugin_setting('user_defined_fields',$fieldlist,'profile')) { system_message(elgg_echo('profile:editdefault:delete:success')); } else { register_error(elgg_echo('profile:editdefault:delete:fail')); diff --git a/mod/profile/actions/editdefault.php b/mod/profile/actions/editdefault.php index 7f5fe0004..70e3b5cd8 100644 --- a/mod/profile/actions/editdefault.php +++ b/mod/profile/actions/editdefault.php @@ -15,15 +15,23 @@ admin_gatekeeper(); $label = sanitise_string(get_input('label')); $type = sanitise_string(get_input('type')); +$fieldlist = get_plugin_setting('user_defined_fields', 'profile'); +if (!$fieldlist) { + $fieldlist = ''; +} + if (($label) && ($type)){ - // find next index for new field - $n = 0; - while (get_plugin_setting("admin_defined_profile_$n", 'profile')) { - $n++; + // Assign a random name + $n = md5(time().rand(0,9999)); + + if (!empty($fieldlist)) { + $fieldlist .= ','; } + $fieldlist .= $n; - if ( (set_plugin_setting("admin_defined_profile_$n", $label, 'profile')) && - (set_plugin_setting("admin_defined_profile_type_$n", $type, 'profile'))) { + 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/mod/profile/actions/editfield.php b/mod/profile/actions/editfield.php new file mode 100644 index 000000000..c26dfa4d9 --- /dev/null +++ b/mod/profile/actions/editfield.php @@ -0,0 +1,21 @@ +<?php
+/**
+ * Elgg profile plugin edit default profile action
+ *
+ * @package ElggProfile
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd <info@elgg.com>
+ * @copyright Curverider Ltd 2008-2010
+ * @link http://elgg.com/
+ */
+
+admin_gatekeeper();
+
+$field = get_input('field');
+$text = get_input('value');
+
+set_plugin_setting("admin_defined_profile_{$field}",$text,'profile');
+
+echo $text;
+
+exit;
\ No newline at end of file diff --git a/mod/profile/actions/reorder.php b/mod/profile/actions/reorder.php new file mode 100644 index 000000000..a189b0513 --- /dev/null +++ b/mod/profile/actions/reorder.php @@ -0,0 +1,17 @@ +<?php
+/**
+ * Elgg profile plugin reorder fields
+ *
+ * @package ElggProfile
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd <info@elgg.com>
+ * @copyright Curverider Ltd 2008-2010
+ * @link http://elgg.com/
+ */
+
+admin_gatekeeper();
+$ordering = get_input('fieldorder');
+//if (!empty($ordering))
+$result = set_plugin_setting('user_defined_fields',$ordering,'profile');
+
+exit;
\ No newline at end of file diff --git a/mod/profile/actions/resetdefaultprofile.php b/mod/profile/actions/resetdefaultprofile.php index a6c90d4b7..4ee87dbf9 100644 --- a/mod/profile/actions/resetdefaultprofile.php +++ b/mod/profile/actions/resetdefaultprofile.php @@ -12,12 +12,12 @@ global $CONFIG; admin_gatekeeper(); -$n = 0; -while (get_plugin_setting("admin_defined_profile_$n", 'profile')) { - set_plugin_setting("admin_defined_profile_$n", '', 'profile'); - set_plugin_setting("admin_defined_profile_type_$n", '', 'profile'); - - $n++; +if ($fieldlist = get_plugin_setting('user_defined_fields', 'profile')) { + $fieldlistarray = explode(',', $fieldlist); + foreach($fieldlistarray as $listitem) { + set_plugin_setting("admin_defined_profile_{$listitem}", '', 'profile'); + set_plugin_setting("admin_defined_profile_type_{$listitem}", '', 'profile'); + } } set_plugin_setting('user_defined_fields', FALSE, 'profile'); |