From 086c5cca63d3488d40f5dac6a506d0ae03461d66 Mon Sep 17 00:00:00 2001
From: ben
Date: Wed, 2 Apr 2008 16:55:20 +0000
Subject: Blog posting
git-svn-id: https://code.elgg.org/elgg/trunk@373 36083f99-b078-4883-b0ff-0f9b5a30f544
---
mod/blog/actions/add.php | 64 ++++++++++++++++++++++++++++++
mod/blog/languages/en.php | 12 ++++++
mod/blog/start.php | 4 ++
mod/blog/views/default/blog/forms/edit.php | 36 +++++++++++++++--
4 files changed, 113 insertions(+), 3 deletions(-)
create mode 100644 mod/blog/actions/add.php
(limited to 'mod/blog')
diff --git a/mod/blog/actions/add.php b/mod/blog/actions/add.php
new file mode 100644
index 000000000..21c871e16
--- /dev/null
+++ b/mod/blog/actions/add.php
@@ -0,0 +1,64 @@
+
+ * @copyright Curverider Ltd 2008
+ * @link http://elgg.org/
+ */
+
+ // Make sure we're logged in (send us to the front page if not)
+ if (!isloggedin()) forward();
+
+ // Get input data
+ $title = get_input('blogtitle');
+ $body = get_input('blogbody');
+ $tags = get_input('blogtags');
+
+ // Cache to the session
+ $_SESSION['blogtitle'] = $title;
+ $_SESSION['blogbody'] = $body;
+ $_SESSION['blogtags'] = $tags;
+
+ // Make sure the title / description aren't blank
+ if (empty($title) || empty($body)) {
+ register_error(elgg_echo("blog:blank"));
+ forward("mod/blog/add.php");
+
+ // Otherwise, save the blog post
+ } else {
+
+ // Initialise a new ElggObject
+ $blog = new ElggObject();
+ // Tell the system it's a blog post
+ $blog->subtype = "blog";
+ // Set its owner to the current user
+ $blog->owner_guid = $_SESSION['user']->getGUID();
+ // For now, set its access to public (we'll add an access dropdown shortly)
+ $blog->access_id = 2;
+ // Set its title and description appropriately
+ $blog->title = $title;
+ $blog->description = $body;
+ // Before we can set metadata, we need to save the blog post
+ if (!$blog->save()) {
+ register_error(elgg_echo("blog:error"));
+ forward("mod/blog/add.php");
+ }
+ // Now let's add tags. We can pass an array directly to setMetaData!
+ // Not very painful.
+ if (is_array($tags) && sizeof($tags) > 0) {
+ $blog->tags = $tags;
+ }
+ // Success message
+ system_message(elgg_echo("blog:posted"));
+ // Remove the blog post cache
+ unset($_SESSION['blogtitle']); unset($_SESSION['blogbody']); unset($_SESSION['blogtags']);
+ // Forward to the main blog page
+ forward("mod/blog/?username=" . $_SESSION['user']->username);
+
+ }
+
+?>
\ No newline at end of file
diff --git a/mod/blog/languages/en.php b/mod/blog/languages/en.php
index 3d0057112..cef0f628f 100644
--- a/mod/blog/languages/en.php
+++ b/mod/blog/languages/en.php
@@ -16,6 +16,18 @@
'blog:text' => "Blog text",
+ /**
+ * Status messages
+ */
+
+ 'blog:posted' => "Your blog post was successfully posted.",
+
+ /**
+ * Error messages
+ */
+
+ 'blog:blank' => "Sorry; you need to fill in both the title and body before you can make a post.",
+
);
add_translation("en",$english);
diff --git a/mod/blog/start.php b/mod/blog/start.php
index 4035203b4..d3513dc02 100644
--- a/mod/blog/start.php
+++ b/mod/blog/start.php
@@ -41,4 +41,8 @@
// Make sure the blog initialisation function is called on initialisation
register_event_handler('init','system','blog_init');
+ // Register actions
+ global $CONFIG;
+ register_action("blog/add",false,$CONFIG->pluginspath . "blog/actions/add.php");
+
?>
\ No newline at end of file
diff --git a/mod/blog/views/default/blog/forms/edit.php b/mod/blog/views/default/blog/forms/edit.php
index ce39f9205..fb069961b 100644
--- a/mod/blog/views/default/blog/forms/edit.php
+++ b/mod/blog/views/default/blog/forms/edit.php
@@ -16,9 +16,22 @@
if (isset($vars['object'])) {
$title = sprintf(elgg_echo("blog:editpost"),$object->title);
$action = "blog/edit";
- } else {
+ $title = $vars['object']->title;
+ $body = $vars['object']->description;
+ $tags = $vars['object']->tags;
+ } else {
$title = elgg_echo("blog:addpost");
$action = "blog/add";
+ $tags = "";
+ $title = "";
+ $description = "";
+ }
+
+ // Just in case we have some cached details
+ if (isset($vars['blogtitle'])) {
+ $title = $vars['blogtitle'];
+ $body = $vars['blogbody'];
+ $tags = $vars['blogtags'];
}
?>
@@ -32,7 +45,10 @@
@@ -41,10 +57,24 @@