aboutsummaryrefslogtreecommitdiff
path: root/mod/defaultwidgets/actions/update.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/defaultwidgets/actions/update.php')
-rw-r--r--mod/defaultwidgets/actions/update.php61
1 files changed, 61 insertions, 0 deletions
diff --git a/mod/defaultwidgets/actions/update.php b/mod/defaultwidgets/actions/update.php
new file mode 100644
index 000000000..aaf03430d
--- /dev/null
+++ b/mod/defaultwidgets/actions/update.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Elgg default_widgets plugin.
+ *
+ * @package DefaultWidgets
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU
+ * @author Milan Magudia & Curverider
+ * @copyright HedgeHogs.net & Curverider Ltd
+ *
+ **/
+
+// validate user is an admin
+admin_gatekeeper ();
+
+// get parameters
+$context = get_input ( 'context' );
+$leftbar = str_replace ( '::0', '', get_input ( 'debugField1' ) );
+$middlebar = str_replace ( '::0', '', get_input ( 'debugField2' ) );
+$rightbar = str_replace ( '::0', '', get_input ( 'debugField3' ) );
+
+// make sure enough parameters are set
+if ($context && isset ( $leftbar ) && isset ( $middlebar ) && isset ( $rightbar )) {
+
+ // join widgets into a single string
+ $widgets = $leftbar . '%%' . $middlebar . '%%' . $rightbar;
+
+ // get the elgg object that contains our settings
+ $entities = elgg_get_entities (array('type' => 'object', 'subtype' => 'moddefaultwidgets', 'limit' => 9999));
+
+ // create new object unless one already exists
+ if (! isset ( $entities [0] )) {
+ $entity = new ElggObject ( );
+ $entity->subtype = 'moddefaultwidgets';
+ $entity->owner_guid = $_SESSION ['user']->getGUID ();
+ } else {
+ $entity = $entities [0];
+ }
+
+ // store the default widgets for each context
+ $entity->$context = $widgets;
+
+ // make sure this object is public.
+ $entity->access_id = 2;
+
+ // save the object or report error
+ if ($entity->save ()) {
+ system_message ( elgg_echo ( 'defaultwidgets:update:success' ) );
+ $entity->state = "active";
+ forward ( 'pg/admin' );
+ } else {
+ register_error ( elgg_echo ( 'defaultwidgets:update:failed' ) );
+ forward ( 'pg/defaultwidgets/' . $context );
+ }
+
+} else {
+
+ // report incorrect parameters error
+ register_error ( elgg_echo ( 'defaultwidgets:update:noparams' ) );
+ forward ( 'pg/defaultwidgets/' . $context );
+
+}