diff options
Diffstat (limited to 'actions')
-rw-r--r-- | actions/profile/fields/add.php | 38 | ||||
-rw-r--r-- | actions/profile/fields/delete.php | 27 | ||||
-rw-r--r-- | actions/profile/fields/reorder.php | 12 | ||||
-rw-r--r-- | actions/profile/fields/reset.php | 20 |
4 files changed, 97 insertions, 0 deletions
diff --git a/actions/profile/fields/add.php b/actions/profile/fields/add.php new file mode 100644 index 000000000..96e878402 --- /dev/null +++ b/actions/profile/fields/add.php @@ -0,0 +1,38 @@ +<?php +/** + * Elgg profile plugin edit default profile action + * + * @package ElggProfile + */ + +global $CONFIG; + +$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)){ + // 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')) && + set_plugin_setting('user_defined_fields',$fieldlist,'profile')) { + system_message(elgg_echo('profile:editdefault:success')); + } else { + register_error(elgg_echo('profile:editdefault:fail')); + } +} else { + register_error(elgg_echo('profile:editdefault:fail')); +} + +forward(REFERER);
\ No newline at end of file diff --git a/actions/profile/fields/delete.php b/actions/profile/fields/delete.php new file mode 100644 index 000000000..38d8b8379 --- /dev/null +++ b/actions/profile/fields/delete.php @@ -0,0 +1,27 @@ +<?php +/** + * Elgg profile plugin edit default profile action removal + * + * @package ElggProfile + */ + +$id = get_input('id'); + +$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) && (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')) { + system_message(elgg_echo('profile:editdefault:delete:success')); +} else { + register_error(elgg_echo('profile:editdefault:delete:fail')); +} + +forward(REFERER);
\ No newline at end of file diff --git a/actions/profile/fields/reorder.php b/actions/profile/fields/reorder.php new file mode 100644 index 000000000..a30e97bac --- /dev/null +++ b/actions/profile/fields/reorder.php @@ -0,0 +1,12 @@ +<?php +/** + * Elgg profile plugin reorder fields + * + * @package ElggProfile + */ + +$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/actions/profile/fields/reset.php b/actions/profile/fields/reset.php new file mode 100644 index 000000000..2cf54b563 --- /dev/null +++ b/actions/profile/fields/reset.php @@ -0,0 +1,20 @@ +<?php +/** + * Reset profile fields action + * + */ + +$fieldlist = get_plugin_setting('user_defined_fields', 'profile'); +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'); + } +} + +set_plugin_setting('user_defined_fields', FALSE, 'profile'); + +system_message(elgg_echo('profile:defaultprofile:reset')); + +forward(REFERER);
\ No newline at end of file |