aboutsummaryrefslogtreecommitdiff
path: root/mod/sitepages/actions
diff options
context:
space:
mode:
authordave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-03-08 15:51:52 +0000
committerdave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-03-08 15:51:52 +0000
commit1336b9e8ed9cc3f9b9b9c4427f1e0f8bccc96f7d (patch)
tree9779e38d0f11257f764217d4312020920d425dd2 /mod/sitepages/actions
parent21e4f3681d9f936af24e6a44868628ceeb53ddf9 (diff)
downloadelgg-1336b9e8ed9cc3f9b9b9c4427f1e0f8bccc96f7d.tar.gz
elgg-1336b9e8ed9cc3f9b9b9c4427f1e0f8bccc96f7d.tar.bz2
Site pages will eventually replace the external pages and custom index plugins as well as introduce a new keywords system to enable dynamic content to be displayed without needing to know php or Elgg. This will be handy for frontpage layout/design.
git-svn-id: http://code.elgg.org/elgg/trunk@5303 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/sitepages/actions')
-rw-r--r--mod/sitepages/actions/add.php64
-rw-r--r--mod/sitepages/actions/addfront.php51
-rw-r--r--mod/sitepages/actions/addmeta.php49
3 files changed, 164 insertions, 0 deletions
diff --git a/mod/sitepages/actions/add.php b/mod/sitepages/actions/add.php
new file mode 100644
index 000000000..3b7f4eb2d
--- /dev/null
+++ b/mod/sitepages/actions/add.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * Elgg external pages: add/edit
+ */
+
+// Make sure we're logged as admin
+admin_gatekeeper();
+
+// Get input data
+$contents = get_input('sitepagescontent', '', false);
+$type = get_input('content_type');
+$tags = get_input('sitepagestags');
+$previous_guid = get_input('expage_guid');
+
+// Cache to the session
+$_SESSION['sitepages_content'] = $contents;
+$_SESSION['sitepagestype'] = $type;
+$_SESSION['sitepagestags'] = $tags;
+
+// Convert string of tags into a preformatted array
+$tagarray = string_to_tag_array($tags);
+
+// Make sure the content exists
+if (empty($contents)) {
+ register_error(elgg_echo("sitepages:blank"));
+ forward("mod/sitepages/add.php");
+
+// Otherwise, save the new external page
+} else {
+ //remove the old external page
+ if(get_entity($previous_guid)){
+ delete_entity($previous_guid);
+ }
+
+ // Initialise a new ElggObject
+ $sitepages = new ElggObject();
+ // Tell the system what type of external page it is
+ $sitepages->subtype = $type;
+ // Set its owner to the current user
+ $sitepages->owner_guid = $_SESSION['user']->getGUID();
+ // For now, set its access to public
+ $sitepages->access_id = 2;
+ // Set its title and description appropriately
+ $sitepages->title = $type;
+ $sitepages->description = $contents;
+ // Before we can set metadata, save
+ if (!$sitepages->save()) {
+ register_error(elgg_echo("sitepages:error"));
+ forward("mod/sitepages/add.php");
+ }
+ // Now let's add tags. We can pass an array directly to the object property! Easy.
+ if (is_array($tagarray)) {
+ $sitepages->tags = $tagarray;
+ }
+ // Success message
+ system_message(elgg_echo("sitepages:posted"));
+ // add to river
+ add_to_river('river/sitepages/create','create',$_SESSION['user']->guid,$sitepages->guid);
+ // Remove the cache
+ unset($_SESSION['sitepages_content']); unset($_SESSION['sitepagestitle']); unset($_SESSION['sitepagestags']);
+
+ // Forward back to the page
+ forward("pg/sitepages/index.php?type={$type}");
+}
diff --git a/mod/sitepages/actions/addfront.php b/mod/sitepages/actions/addfront.php
new file mode 100644
index 000000000..5a86189db
--- /dev/null
+++ b/mod/sitepages/actions/addfront.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Elgg front page: add/edit
+ */
+
+// Make sure we're logged as admin
+admin_gatekeeper();
+
+// Get input data
+$frontContents = get_input('frontContents');
+$css = get_input('css');
+$previous_guid = get_input('front_guid');
+
+//remove the old front page
+if(get_entity($previous_guid)){
+ delete_entity($previous_guid);
+}
+
+//var_export($pageshell);exit;
+
+// Cache to the session
+$_SESSION['pageshell'] = $pageshell;
+$_SESSION['css'] = $css;
+
+// Initialise a new ElggObject
+$frontpage = new ElggObject();
+// Tell the system what type of external page it is
+$frontpage->subtype = "frontpage";
+// Set its owner to the current user
+$frontpage->owner_guid = $_SESSION['user']->getGUID();
+// Set its access to public
+$frontpage->access_id = 2;
+// Set its title and description appropriately
+$frontpage->title = $css;
+$frontpage->description = $frontContents;
+
+// Before we can set metadata, save
+if (!$frontpage->save()) {
+ register_error(elgg_echo("sitepages:error"));
+ forward("pg/sitepages/index.php?type=front");
+}
+
+// Success message
+system_message(elgg_echo("sitepages:posted"));
+
+// Remove the cache
+unset($_SESSION['css']); unset($_SESSION['pageshell']);
+
+
+// Forward back to the page
+forward("pg/sitepages/index.php?type=front");
diff --git a/mod/sitepages/actions/addmeta.php b/mod/sitepages/actions/addmeta.php
new file mode 100644
index 000000000..432152ef1
--- /dev/null
+++ b/mod/sitepages/actions/addmeta.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Elgg SEO: add/edit
+ */
+
+// Make sure we're logged as admin
+admin_gatekeeper();
+
+// Get input data
+$description = get_input('description', '', false);
+$metatags = get_input('metatags', '', false);
+$previous_guid = get_input('seo_guid');
+
+//remove the old front page
+if(get_entity($previous_guid)){
+ delete_entity($previous_guid);
+}
+
+// Cache to the session
+$_SESSION['description'] = $description;
+$_SESSION['metatags'] = $metatags;
+
+// Initialise a new ElggObject
+$seo = new ElggObject();
+// Tell the system what type of external page it is
+$seo->subtype = "sitemeta";
+// Set its owner to the current user
+$seo->owner_guid = $_SESSION['user']->getGUID();
+// Set its access to public
+$seo->access_id = 2;
+// Set its title and description appropriately
+$seo->title = $metatags;
+$seo->description = $description;
+
+// Before we can set metadata, save
+if (!$seo->save()) {
+ register_error(elgg_echo("sitepages:error"));
+ forward("pg/sitepages/index.php?type=seo");
+}
+
+// Success message
+system_message(elgg_echo("sitepages:seocreated"));
+
+// Remove the cache
+unset($_SESSION['description']); unset($_SESSION['metatags']);
+
+
+// Forward back to the page
+forward("pg/sitepages/index.php?type=seo");