From 3395f2d67e40b262f2ea95c64bcd5a92ee4a1abf Mon Sep 17 00:00:00 2001 From: moodler Date: Thu, 24 Apr 2003 14:05:47 +0000 Subject: [PATCH] Forum posts are now not allowed to have blank subjects or messages, if a message is entered with one of these blank then the user gets an error message and a chance to re-edit the message. --- mod/forum/post.php | 57 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/mod/forum/post.php b/mod/forum/post.php index 7e8ed110b7..60fe9e7a66 100644 --- a/mod/forum/post.php +++ b/mod/forum/post.php @@ -14,23 +14,29 @@ if ($post = data_submitted()) { + if (empty($SESSION->fromurl)) { + $errordestination = "$CFG->wwwroot/mod/forum/view.php?f=$post->forum"; + } else { + $errordestination = $SESSION->fromurl; + } + $post->subject = strip_tags($post->subject); // Strip all tags $post->message = clean_text($post->message, $post->format); // Clean up any bad tags $post->attachment = $_FILES["attachment"]; - if (!$post->subject and !$post->message) { - error(get_string("emptymessage", "forum")); - } + if (!$post->subject or !$post->message) { + $post->error = get_string("emptymessage", "forum"); - if ($post->edit) { // Updating a post + } else if ($post->edit) { // Updating a post $post->id = $post->edit; if (forum_update_post($post)) { add_to_log($post->course, "forum", "update post", "discuss.php?d=$post->discussion&parent=$post->id", "$post->id"); redirect(forum_go_back_to("discuss.php?d=$post->discussion"), get_string("postupdated", "forum"), 1); } else { - error(get_string("couldnotupdate", "forum")); + error(get_string("couldnotupdate", "forum"), $errordestination); } + exit; } else if ($post->discussion) { // Adding a new post to an existing discussion if ($post->id = forum_add_new_post($post)) { @@ -42,8 +48,10 @@ redirect(forum_go_back_to("discuss.php?d=$post->discussion"), get_string("postadded", "forum", format_time($CFG->maxeditingtime)), 2); } else { - error(get_string("couldnotadd", "forum")); + error(get_string("couldnotadd", "forum"), $errordestination); } + exit; + } else { // Adding a new discussion $discussion = $post; $discussion->name = $post->subject; @@ -56,10 +64,10 @@ redirect(forum_go_back_to("view.php?f=$post->forum"), get_string("postadded", "forum", format_time($CFG->maxeditingtime)), 3); } else { - error(get_string("couldnotadd", "forum")); + error(get_string("couldnotadd", "forum"), $errordestination); } + exit; } - die; } if ($usehtmleditor = can_use_richtext_editor()) { @@ -71,7 +79,31 @@ } - if (isset($forum)) { // User is starting a new discussion in a forum + if (isset($post->error)) { // User is re-editing a failed posting + + // Set up all the required objects again, and reuse the same $post + + if (! $forum = get_record("forum", "id", $post->forum)) { + error("The forum number was incorrect ($post->forum)"); + } + + if (! $course = get_record("course", "id", $forum->course)) { + error("The course number was incorrect ($forum->course)"); + } + + if (!empty($post->parent)) { + if (! $parent = forum_get_post_full($post->parent)) { + error("Parent post ID was incorrect ($post->parent)"); + } + } + + if (!empty($post->discussion)) { + if (! $discussion = get_record("forum_discussions", "id", $post->discussion)) { + error("This post is not part of a discussion! ($post->discussion)"); + } + } + + } else if (isset($forum)) { // User is starting a new discussion in a forum $SESSION->fromurl = $_SERVER["HTTP_REFERER"]; @@ -79,7 +111,7 @@ error("The forum number was incorrect ($forum)"); } if (! $course = get_record("course", "id", $forum->course)) { - error("The course number was incorrect ($forum)"); + error("The course number was incorrect ($forum->course)"); } if (! forum_user_can_post_discussion($forum)) { @@ -296,12 +328,15 @@ } echo "
"; - if (isset($parent)) { + if (!empty($parent)) { forum_print_post($parent, $course->id, $ownpost=false, $reply=false, $link=false); echo "

".get_string("yourreply", "forum").":

"; } else { echo "

".get_string("yournewtopic", "forum")."

"; } + if (!empty($post->error)) { + notify($post->error); + } echo "
"; print_simple_box_start("center", "", "$THEME->cellheading"); -- 2.39.5