From c1de8b8a8043b3ec6ef242ff2605bbd32388531e Mon Sep 17 00:00:00 2001 From: vyshane Date: Mon, 21 Aug 2006 08:45:12 +0000 Subject: [PATCH] Fixed bug - empty teacher forums (deleted) should not have a course module created for them. --- mod/forum/db/mysql.php | 130 +++++++++++++++++++++-------------------- 1 file changed, 66 insertions(+), 64 deletions(-) diff --git a/mod/forum/db/mysql.php b/mod/forum/db/mysql.php index 7ec65aee11..384f64f3da 100644 --- a/mod/forum/db/mysql.php +++ b/mod/forum/db/mysql.php @@ -250,77 +250,79 @@ function forum_upgrade($oldversion) { // use the Roles System to implement the old behavior. require_once($CFG->dirroot.'/course/lib.php'); - // Delete empty teacher forums. if (count_records('forum_discussions', 'forum', $forum->id) == 0) { + // Delete empty teacher forums. delete_records('forum', 'id', $forum->id); - } - - // Create a course module for the forum and assign it to - // section 0 in the course. - $mod = new object; - $mod->course = $forum->course; - $mod->module = $forummodid; - $mod->instance = $forum->id; - $mod->section = 0; - $mod->visible = 0; - $mod->visibleold = 0; - $mod->groupmode = 0; - - if (!$cmid = add_course_module($mod)) { - error('Could not create new course module instance for the teacher forum'); } else { - $mod->coursemodule = $cmid; - if (!add_mod_to_section($mod)) { - error('Could not add new forum instance to section 0 in the course'); + // Create a course module for the forum and assign it to + // section 0 in the course. + $mod = new object; + $mod->course = $forum->course; + $mod->module = $forummodid; + $mod->instance = $forum->id; + $mod->section = 0; + $mod->visible = 0; + $mod->visibleold = 0; + $mod->groupmode = 0; + + print_object($mod); + + if (!$cmid = add_course_module($mod)) { + error('Could not create new course module instance for the teacher forum'); + } else { + $mod->coursemodule = $cmid; + if (!add_mod_to_section($mod)) { + error('Could not add new forum instance to section 0 in the course'); + } } - } - // Change the forum type to general. - $forum->type = 'general'; - if (!update_record('forum', $forum)) { - error('Could not change forum from type teacher to type general'); - } + // Change the forum type to general. + $forum->type = 'general'; + if (!update_record('forum', $forum)) { + error('Could not change forum from type teacher to type general'); + } - $context = get_context_instance(CONTEXT_MODULE, $cmid); + $context = get_context_instance(CONTEXT_MODULE, $cmid); - // Create overrides for default student and guest roles (prevent). - foreach($studentroles as $studentrole) { - assign_capability('mod/forum:viewforum', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:viewdiscussion', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:viewhiddentimedposts', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:startdiscussion', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:replypost', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:viewrating', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:viewanyrating', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:rate', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:deleteownpost', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:deleteanypost', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:splitdiscussions', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:movediscussions', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:editanypost', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:viewqandawithoutposting', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:viewsubscribers', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:managesubscriptions', CAP_PREVENT, $studentrole->id, $context->id); - assign_capability('mod/forum:throttlingapplies', CAP_PREVENT, $studentrole->id, $context->id); - } - foreach($guestroles as $guestrole) { - assign_capability('mod/forum:viewforum', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:viewdiscussion', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:viewhiddentimedposts', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:startdiscussion', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:replypost', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:viewrating', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:viewanyrating', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:rate', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:deleteownpost', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:deleteanypost', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:splitdiscussions', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:movediscussions', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:editanypost', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:viewqandawithoutposting', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:viewsubscribers', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:managesubscriptions', CAP_PREVENT, $guestrole->id, $context->id); - assign_capability('mod/forum:throttlingapplies', CAP_PREVENT, $guestrole->id, $context->id); + // Create overrides for default student and guest roles (prevent). + foreach($studentroles as $studentrole) { + assign_capability('mod/forum:viewforum', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:viewdiscussion', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:viewhiddentimedposts', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:startdiscussion', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:replypost', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:viewrating', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:viewanyrating', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:rate', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:deleteownpost', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:deleteanypost', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:splitdiscussions', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:movediscussions', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:editanypost', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:viewqandawithoutposting', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:viewsubscribers', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:managesubscriptions', CAP_PREVENT, $studentrole->id, $context->id); + assign_capability('mod/forum:throttlingapplies', CAP_PREVENT, $studentrole->id, $context->id); + } + foreach($guestroles as $guestrole) { + assign_capability('mod/forum:viewforum', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:viewdiscussion', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:viewhiddentimedposts', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:startdiscussion', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:replypost', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:viewrating', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:viewanyrating', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:rate', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:deleteownpost', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:deleteanypost', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:splitdiscussions', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:movediscussions', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:editanypost', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:viewqandawithoutposting', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:viewsubscribers', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:managesubscriptions', CAP_PREVENT, $guestrole->id, $context->id); + assign_capability('mod/forum:throttlingapplies', CAP_PREVENT, $guestrole->id, $context->id); + } } } else { // Non-teacher forum. -- 2.39.5