aboutsummaryrefslogtreecommitdiff
path: root/actions/widgets/add.php
diff options
context:
space:
mode:
Diffstat (limited to 'actions/widgets/add.php')
-rw-r--r--actions/widgets/add.php42
1 files changed, 42 insertions, 0 deletions
diff --git a/actions/widgets/add.php b/actions/widgets/add.php
new file mode 100644
index 000000000..d7b2f291c
--- /dev/null
+++ b/actions/widgets/add.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Elgg widget add action
+ *
+ * @package Elgg.Core
+ * @subpackage Widgets.Management
+ */
+
+$owner_guid = get_input('owner_guid');
+$handler = get_input('handler');
+$context = get_input('context');
+$show_access = (bool)get_input('show_access', true);
+$column = get_input('column', 1);
+$default_widgets = get_input('default_widgets', 0);
+
+elgg_push_context($context);
+if ($default_widgets) {
+ elgg_push_context('default_widgets');
+}
+elgg_push_context('widgets');
+
+if (!empty($owner_guid)) {
+ $owner = get_entity($owner_guid);
+ if ($owner && $owner->canEdit()) {
+ $guid = elgg_create_widget($owner->getGUID(), $handler, $context);
+ if ($guid) {
+ $widget = get_entity($guid);
+
+ // position the widget
+ $widget->move($column, 0);
+
+ // send widget html for insertion
+ echo elgg_view_entity($widget, array('show_access' => $show_access));
+
+ //system_message(elgg_echo('widgets:add:success'));
+ forward(REFERER);
+ }
+ }
+}
+
+register_error(elgg_echo('widgets:add:failure'));
+forward(REFERER);