From b134f6a71e276cd892ab532d91960e77c7be1e4e Mon Sep 17 00:00:00 2001 From: vyshane Date: Wed, 7 Jun 2006 08:19:34 +0000 Subject: [PATCH] Merged fix from 1.6 for Bug #5131 - RSS Feeds and Moving Discussions. --- mod/forum/discuss.php | 20 +++++++++++++++++++- mod/forum/rsslib.php | 14 ++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/mod/forum/discuss.php b/mod/forum/discuss.php index d0b83b259a..5287edd0fd 100644 --- a/mod/forum/discuss.php +++ b/mod/forum/discuss.php @@ -57,8 +57,26 @@ if (!forum_move_attachments($discussion, $move)) { notify("Errors occurred while moving attachment directories - check your file permissions"); } - set_field("forum_discussions", "forum", $forum->id, "id", $discussion->id); + + if (!$fromforum = get_record("forum", "id", $discussion->forum)) { + notify('Bad forum ID stored in this discussion'); + } $discussion->forum = $forum->id; + $discussion->timemodified = time(); + + if (update_record('forum_discussions', $discussion)) { + // Update RSS feeds for both from and to forums. + require_once('rsslib.php'); + require_once($CFG->libdir.'/rsslib.php'); + + // Delete the RSS files for the 2 forums because we want to force + // the regeneration of the feeds since the discussions have been + // moved. + if (!forum_rss_delete_file($forum) || !forum_rss_delete_file($fromforum)) { + error('Could not purge the cached RSS feeds for the source and/or destination forums'); + } + } + if ($cm = get_coursemodule_from_instance("forum", $forum->id, $course->id)) { add_to_log($course->id, "forum", "move discussion", "discuss.php?d=$discussion->id", "$discussion->id", $cm->id); diff --git a/mod/forum/rsslib.php b/mod/forum/rsslib.php index 3328e7d47a..fa3b26fd97 100644 --- a/mod/forum/rsslib.php +++ b/mod/forum/rsslib.php @@ -78,6 +78,16 @@ } return $status; } + + + // Given a forum object, deletes the RSS file + function forum_rss_delete_file($forum) { + global $CFG; + //return unlink("{$CFG->dataroot}/rss/{$modname}/{$forum->id}.xml"); + $rssfile = rss_file_name('forum', $forum); + return unlink($rssfile); + } + function forum_rss_newstuff($forum, $time) { // If there is new stuff in the forum since $time then this returns @@ -158,7 +168,7 @@ $items = array(); if ($newsince) { - $newsince = " AND p.modified > '$newsince'"; + $newsince = " AND (p.modified > '$newsince' OR d.timemodified > '$newsince')"; } else { $newsince = ""; } @@ -218,7 +228,7 @@ $items = array(); if ($newsince) { - $newsince = " AND p.modified > '$newsince'"; + $newsince = " AND (p.modified > '$newsince' OR d.timemodified > '$newsince')"; } else { $newsince = ""; } -- 2.39.5