aboutsummaryrefslogtreecommitdiff
path: root/actions/profile
diff options
context:
space:
mode:
Diffstat (limited to 'actions/profile')
-rw-r--r--actions/profile/fields/add.php38
-rw-r--r--actions/profile/fields/delete.php27
-rw-r--r--actions/profile/fields/reorder.php12
-rw-r--r--actions/profile/fields/reset.php20
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