From 664826585700daab1686e55a00d945dbfba02490 Mon Sep 17 00:00:00 2001 From: skodak Date: Thu, 1 Jan 2009 22:53:43 +0000 Subject: [PATCH] MDL-16262 recovery of broken single simple discussions after old reset --- mod/forum/lib.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/mod/forum/lib.php b/mod/forum/lib.php index 33890be898..c56daeff3c 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -138,7 +138,22 @@ function forum_update_instance($forum) { notify('Warning! There is more than one discussion in this forum - using the most recent'); $discussion = array_pop($discussions); } else { - print_error('cannotfinddisscussion', 'forum'); + // try to recover by creating initial discussion - MDL-16262 + $discussion = new object(); + $discussion->course = $forum->course; + $discussion->forum = $forum->id; + $discussion->name = $forum->name; + $discussion->intro = $forum->intro; + $discussion->assessed = $forum->assessed; + $discussion->format = $forum->type; + $discussion->mailnow = false; + $discussion->groupid = -1; + + forum_add_discussion($discussion, null, $message); + + if (! $discussion = $DB->get_record('forum_discussions', array('forum'=>$forum->id))) { + print_error('cannotadd', 'forum'); + } } } if (! $post = $DB->get_record('forum_posts', array('id'=>$discussion->firstpost))) { -- 2.39.5