aboutsummaryrefslogtreecommitdiff
path: root/mod/externalpages/actions/add.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/externalpages/actions/add.php')
-rw-r--r--mod/externalpages/actions/add.php54
1 files changed, 54 insertions, 0 deletions
diff --git a/mod/externalpages/actions/add.php b/mod/externalpages/actions/add.php
new file mode 100644
index 000000000..fed637c55
--- /dev/null
+++ b/mod/externalpages/actions/add.php
@@ -0,0 +1,54 @@
+<?php
+
+ /**
+ * Elgg external pages: add/edit
+ *
+ * @package ElggExPages
+ */
+
+ // Make sure we're logged as admin
+ admin_gatekeeper();
+
+ // Get input data
+ $contents = get_input('expagescontent', '', false);
+ $type = get_input('content_type');
+ $previous_guid = get_input('expage_guid');
+
+ // Cache to the session
+ $_SESSION['expages_content'] = $contents;
+ $_SESSION['expagestype'] = $type;
+
+ //remove the old external page
+ if(get_entity($previous_guid)){
+ delete_entity($previous_guid);
+ }
+
+ // Initialise a new ElggObject
+ $expages = new ElggObject();
+ // Tell the system what type of external page it is
+ $expages->subtype = $type;
+ // Set its owner to the current user
+ $expages->owner_guid = get_loggedin_userid();
+ // For now, set its access to public
+ $expages->access_id = ACCESS_PUBLIC;
+ // Set its title and description appropriately
+ $expages->title = $type;
+ $expages->description = $contents;
+ // Before we can set metadata, save
+ if (!$expages->save()) {
+ register_error(elgg_echo("expages:error"));
+ forward(REFERER);
+ }
+
+ // Success message
+ system_message(elgg_echo("expages:posted"));
+ // add to river
+ add_to_river('river/expages/create','create',get_loggedin_userid(),$expages->guid);
+ // Remove the cache
+ unset($_SESSION['expages_content']); unset($_SESSION['expagestitle']);
+
+
+ // Forward back to the page
+ forward("pg/expages/index.php?type={$type}");
+
+?> \ No newline at end of file