Permalink
Browse files

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 <luke@catalyst.net.nz>
  • Loading branch information...
1 parent 5113b77 commit c1cda9df459a92e869454dd99f251a2077641f34 martinlanghoff committed Jul 31, 2006
Showing with 26 additions and 0 deletions.
  1. +2 −0 lang/en_utf8/forum.php
  2. +24 −0 mod/forum/discuss.php
View
@@ -49,6 +49,7 @@
$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 <a href=\"$a->discusshref\">here</a> in the forum <a href=\"$a->forumhref\">$a->forumname</a>';
$string['discussionname'] = 'Discussion name';
$string['discussions'] = 'Discussions';
$string['discussionsstartedby'] = 'Discussions started by $a';
@@ -103,6 +104,7 @@
$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';
View
@@ -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');

0 comments on commit c1cda9d

Please sign in to comment.