From d06f87fadb1b88f8ae251ada0461dd2cebf84a00 Mon Sep 17 00:00:00 2001 From: ben Date: Fri, 4 Apr 2008 17:36:44 +0000 Subject: Blog edit updates git-svn-id: https://code.elgg.org/elgg/trunk@408 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/blog/actions/edit.php | 68 ++++++++++++++++++++++++++++++ mod/blog/edit.php | 11 ++++- mod/blog/start.php | 6 +++ mod/blog/views/default/blog/forms/edit.php | 15 +++++-- mod/blog/views/default/object/blog.php | 16 +++++++ 5 files changed, 111 insertions(+), 5 deletions(-) create mode 100644 mod/blog/actions/edit.php diff --git a/mod/blog/actions/edit.php b/mod/blog/actions/edit.php new file mode 100644 index 000000000..07f285510 --- /dev/null +++ b/mod/blog/actions/edit.php @@ -0,0 +1,68 @@ + + * @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 + $guid = (int) get_input('blogpost'); + $title = get_input('blogtitle'); + $body = get_input('blogbody'); + $tags = get_input('blogtags'); + + // Make sure we actually have permission to edit + $blog = get_entity($guid); + if ($blog->subtype = "blog" && $blog->canEdit()) { + + // Cache to the session + $_SESSION['blogtitle'] = $title; + $_SESSION['blogbody'] = $body; + $_SESSION['blogtags'] = $tags; + + // Convert string of tags into a preformatted array + $tagarray = string_to_tag_array($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 { + + // 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 the object property! Easy. + $blog->clearMetadata('tags'); + if (is_array($tagarray)) { + $blog->tags = $tagarray; + } + // 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/edit.php b/mod/blog/edit.php index 4da1a4814..262973f54 100644 --- a/mod/blog/edit.php +++ b/mod/blog/edit.php @@ -14,7 +14,16 @@ require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); // Get the post, if it exists - if (get_object()) + $blogpost = (int) get_input('blogpost'); + if ($post = get_entity($blogpost)) { + + if ($post->canEdit()) { + + $body = elgg_view("blog/forms/edit", array('entity' => $post)); + + } + + } // Display page page_draw(sprintf(elgg_echo('blog:editpost'),$post->title),$body); diff --git a/mod/blog/start.php b/mod/blog/start.php index d7def030d..e257a2d5c 100644 --- a/mod/blog/start.php +++ b/mod/blog/start.php @@ -35,6 +35,11 @@ menu_item(elgg_echo('blog:addpost'),$CONFIG->wwwroot."mod/blog/add.php"), menu_item(elgg_echo('blog:everyone'),$CONFIG->wwwroot."mod/blog/everyone.php"), )); + // And for logged out users + } else { + add_menu(elgg_echo('blog'), $CONFIG->wwwroot . "mod/blog/",array( + menu_item(elgg_echo('blog:everyone'),$CONFIG->wwwroot."mod/blog/everyone.php"), + )); } // Extend system CSS with our own styles, which are defined in the blog/css view @@ -48,6 +53,7 @@ // Register actions global $CONFIG; register_action("blog/add",false,$CONFIG->pluginspath . "blog/actions/add.php"); + register_action("blog/edit",false,$CONFIG->pluginspath . "blog/actions/edit.php"); register_action("blog/comments/add",false,$CONFIG->pluginspath . "blog/actions/comments/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 fb069961b..ff8ae8767 100644 --- a/mod/blog/views/default/blog/forms/edit.php +++ b/mod/blog/views/default/blog/forms/edit.php @@ -13,12 +13,12 @@ */ // Set title, form destination - if (isset($vars['object'])) { + if (isset($vars['entity'])) { $title = sprintf(elgg_echo("blog:editpost"),$object->title); $action = "blog/edit"; - $title = $vars['object']->title; - $body = $vars['object']->description; - $tags = $vars['object']->tags; + $title = $vars['entity']->title; + $body = $vars['entity']->description; + $tags = $vars['entity']->tags; } else { $title = elgg_echo("blog:addpost"); $action = "blog/add"; @@ -76,6 +76,13 @@ ?>

+

diff --git a/mod/blog/views/default/object/blog.php b/mod/blog/views/default/object/blog.php index b136267d7..6fcf041ba 100644 --- a/mod/blog/views/default/object/blog.php +++ b/mod/blog/views/default/object/blog.php @@ -44,6 +44,22 @@ ?>

+ canEdit()) { + ?> + + + $vars['entity'])); + + ?> +