MDL-16262 fixed resetting of single simple discussions
authorskodak <skodak>
Thu, 1 Jan 2009 22:43:00 +0000 (22:43 +0000)
committerskodak <skodak>
Thu, 1 Jan 2009 22:43:00 +0000 (22:43 +0000)
mod/forum/lib.php

index 1a02985b5e9164c61d7eb32edf8d5b719ed92069..33890be898b7ea1b4539d56bc5f08fdcbd1624e4 100644 (file)
@@ -6836,11 +6836,12 @@ function forum_reset_userdata($data) {
         // remove ratings
         $DB->delete_records_select('forum_ratings', "post IN ($postssql)", $params);
 
-        // all posts
-        $DB->delete_records_select('forum_posts', "discussion IN ($discussionssql)", $params);
+        // all posts - initial posts must be kept in single simple discussion forums
+        $DB->delete_records_select('forum_posts', "discussion IN ($discussionssql) AND parent <> 0", $params); // first all children
+        $DB->delete_records_select('forum_posts', "discussion IN ($discussionssql AND f.type <> 'single') AND parent = 0", $params); // now the initial posts for non single simple
 
-        // finally all discussions
-        $DB->delete_records_select('forum_discussions', "forum IN ($forumssql)", $params);
+        // finally all discussions except single simple forums
+        delete_records_select('forum_discussions', "forum IN ($forumssql AND f.type <> 'single')", $params);
 
         // remove all grades from gradebook
         if (empty($data->reset_gradebook_grades)) {