From: martinlanghoff Date: Mon, 31 Jul 2006 04:54:44 +0000 (+0000) Subject: forum: notification of a moved dicussion (bug#4874) X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=c1cda9df459a92e869454dd99f251a2077641f34;p=moodle.git forum: notification of a moved dicussion (bug#4874) Moving a discussion now leaves a notification message in the original location with a link to the new location. Author: Luke Hudson --- diff --git a/lang/en_utf8/forum.php b/lang/en_utf8/forum.php index 9b6184c366..cafab5a37f 100644 --- a/lang/en_utf8/forum.php +++ b/lang/en_utf8/forum.php @@ -49,6 +49,7 @@ $string['disallowsubscribe'] = 'Subscriptions not allowed'; $string['disallowsubscribeteacher'] = 'Subscriptions not allowed (except for teachers)'; $string['discussion'] = 'Discussion'; $string['discussionmoved'] = 'This discussion has been moved to \'$a\'.'; +$string['discussionmovedpost'] = 'This discussion has been moved to discusshref\">here in the forum forumhref\">$a->forumname'; $string['discussionname'] = 'Discussion name'; $string['discussions'] = 'Discussions'; $string['discussionsstartedby'] = 'Discussions started by $a'; @@ -103,6 +104,7 @@ $string['modethreaded'] = 'Display replies in threaded form'; $string['modulename'] = 'Forum'; $string['modulenameplural'] = 'Forums'; $string['more'] = 'more'; +$string['movedmarker'] = '(Moved)'; $string['movethisdiscussionto'] = 'Move this discussion to ... '; $string['namenews'] = 'News forum'; $string['namesocial'] = 'Social forum'; diff --git a/mod/forum/discuss.php b/mod/forum/discuss.php index a422361eb7..7073eb47e5 100644 --- a/mod/forum/discuss.php +++ b/mod/forum/discuss.php @@ -64,6 +64,30 @@ $discussion->forum = $forum->id; $discussion->timemodified = time(); + // Leave behind a skeleton discussion containing only a post which + // notifies that the discussion has been moved. + $skeleton = clone($discussion); + $skeleton->forum = $fromforum->id; + $skeleton->name = addslashes( $skeleton->name . ' ' . get_string('movedmarker', 'forum') ); + + // Prepare replacement parameters for message content string + // - these create the link to the new discussion location + $link = new stdClass; + $me = strip_querystring(me()); + $link->discusshref = $me . '?d=' . $discussion->id; + $link->forumhref = dirname($me) . '/view.php?f=' . $forum->id; + $link->forumname = $forum->name; + + // retrieve translateable message content + $skeleton->intro = addslashes( get_string('discussionmovedpost', 'forum', $link) ); + $skeleton->format = 1; + $skeleton->mailnow = 0; + + // add the skeleton discussion to the database + if (!($skeleton->id = forum_add_discussion($skeleton, $msg))) { + notify('Failed to add discussion-moved notification : '. $msg); + } + if (update_record('forum_discussions', $discussion)) { // Update RSS feeds for both from and to forums. require_once('rsslib.php');