### Eclipse Workspace Patch 1.0
#P moodle
Index: mod/forum/lib.php
===================================================================
RCS file: /cvsroot/moodle/moodle/mod/forum/lib.php,v
retrieving revision 1.609.2.78
diff -u -r1.609.2.78 lib.php
--- mod/forum/lib.php	17 Dec 2008 18:09:11 -0000	1.609.2.78
+++ mod/forum/lib.php	18 Dec 2008 10:36:53 -0000
@@ -3945,6 +3945,9 @@
 
     $result = true;
 
+    $forum = get_record('forum', 'id', $discussion->forum);
+    $disctime = $discussion->timemodified;
+    
     if ($posts = get_records("forum_posts", "discussion", $discussion->id)) {
         foreach ($posts as $post) {
             $post->course = $discussion->course;
@@ -3964,6 +3967,8 @@
         $result = false;
     }
 
+    forum_update_rss($forum, $disctime);
+    
     return $result;
 }
 
@@ -6816,4 +6821,41 @@
     return array('moodle/site:accessallgroups', 'moodle/site:viewfullnames', 'moodle/site:trustcontent');
 }
 
+/**
+ * Checks forum RSS oldest post timestamp and updates RSS if it's less than specified one
+ * Used when user deletes post or discussion
+ */
+function forum_update_rss($forum, $time) {
+    global $CFG;
+    global $USER;
+     
+    if (empty($CFG->enablerssfeeds) || empty($CFG->forum_enablerssfeeds) || empty($forum->rsstype) || empty($forum->rssarticles)) {
+        return false;
+    }
+
+    require_once($CFG->libdir .'/rsslib.php');
+    require_once('rsslib.php');
+    require_once(MAGPIE_DIR .'rss_fetch.inc');
+    
+    $filename = rss_get_url($forum->course, $USER->id, "forum", $forum->id);
+    ob_start();
+    $rss = fetch_rss($filename);
+    ob_end_clean();
+    if ($rss === false) {
+        return false;
+    }
+    $last = end($rss->items);
+    if ($last['date_timestamp'] <= $time) {
+        $result = forum_rss_feed($forum);
+        if (!empty($result)) {
+            rss_save_file("forum",$forum,$result);
+        } else {
+            require_once($CFG->libdir . '/filelib.php');
+            fulldelete(rss_file_name("forum",$forum));
+        }
+        return true;
+    }
+    return false;
+}
+
 ?>
Index: mod/forum/post.php
===================================================================
RCS file: /cvsroot/moodle/moodle/mod/forum/post.php,v
retrieving revision 1.154.2.16
diff -u -r1.154.2.16 post.php
--- mod/forum/post.php	16 Nov 2008 22:45:06 -0000	1.154.2.16
+++ mod/forum/post.php	18 Dec 2008 10:36:53 -0000
@@ -275,6 +275,7 @@
                         forum_go_back_to("discuss.php?d=$post->discussion"));
 
             } else {
+                $ptime = $post->modified;
                 if (! $post->parent) {  // post is a discussion topic as well, so delete discussion
                     if ($forum->type == 'single') {
                         notice("Sorry, but you are not allowed to delete that discussion!",
@@ -289,6 +290,8 @@
 
                 } else if (forum_delete_post($post, has_capability('mod/forum:deleteanypost', $modcontext))) {
 
+                    forum_update_rss($forum, $ptime);
+                    
                     if ($forum->type == 'single') {
                         // Single discussion forums are an exception. We show
                         // the forum itself since it only has one discussion
