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 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 @@

+

+

-- cgit v1.2.3