diff --git a/mod/forum/backuplib.php b/mod/forum/backuplib.php index 06f4f51dc01..7bf899599cd 100644 --- a/mod/forum/backuplib.php +++ b/mod/forum/backuplib.php @@ -71,9 +71,7 @@ fwrite ($bf,full_tag("TYPE",4,false,$forum->type)); fwrite ($bf,full_tag("NAME",4,false,$forum->name)); fwrite ($bf,full_tag("INTRO",4,false,$forum->intro)); - fwrite ($bf,full_tag("OPEN",4,false,$forum->open)); fwrite ($bf,full_tag("ASSESSED",4,false,$forum->assessed)); - fwrite ($bf,full_tag("ASSESSPUBLIC",4,false,$forum->assesspublic)); fwrite ($bf,full_tag("ASSESSTIMESTART",4,false,$forum->assesstimestart)); fwrite ($bf,full_tag("ASSESSTIMEFINISH",4,false,$forum->assesstimefinish)); fwrite ($bf,full_tag("MAXBYTES",4,false,$forum->maxbytes)); diff --git a/mod/forum/db/mysql.php b/mod/forum/db/mysql.php index 9d638ef4164..7ec65aee11c 100644 --- a/mod/forum/db/mysql.php +++ b/mod/forum/db/mysql.php @@ -229,12 +229,10 @@ function forum_upgrade($oldversion) { } - /* - // Upgrades for new roles and capabilities support. if ($oldversion < 2006081800) { + // Upgrades for new roles and capabilities support. $forummodid = get_record('modules', 'name', 'forum'); - if ($forums = get_records('forum')) { if (!$studentroles = get_roles_with_capability('moodle/legacy:student', CAP_ALLOW)) { @@ -247,9 +245,11 @@ function forum_upgrade($oldversion) { foreach ($forums as $forum) { if ($forum->type == 'teacher') { + // Teacher forums should be converted to normal forums that // 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_records('forum', 'id', $forum->id); @@ -356,10 +356,11 @@ function forum_upgrade($oldversion) { break; } // Drop column forum.open. - modify_database('','ALTER TABLE prefix_forum DROP COLUMN open;'); + modify_database('', 'ALTER TABLE prefix_forum DROP COLUMN open;'); - // $forum->assessed defines who can rate posts: + // $forum->assessed defines whether forum rating is turned + // on (1 or 2) and who can rate posts: // 1 = Everyone can rate posts // 2 = Only teachers can rate posts switch ($forum->assessed) { @@ -389,12 +390,12 @@ function forum_upgrade($oldversion) { break; } // Drop column forum.assesspublic. - modify_database('','ALTER TABLE prefix_forum DROP COLUMN assesspublic;'); + modify_database('', 'ALTER TABLE prefix_forum DROP COLUMN assesspublic;'); } } // End foreach $teacherforums. } // End if. } - */ + return true; diff --git a/mod/forum/index.php b/mod/forum/index.php index c62d4005774..77d4b2402ab 100644 --- a/mod/forum/index.php +++ b/mod/forum/index.php @@ -4,8 +4,8 @@ require_once("lib.php"); require_once("$CFG->libdir/rsslib.php"); - $id = optional_param('id',0,PARAM_INT); // course - $subscribe = optional_param('subscribe',null,PARAM_INT); // Subscribe/Unsubscribe all forums + $id = optional_param('id', 0, PARAM_INT); // Course id + $subscribe = optional_param('subscribe', null, PARAM_INT); // Subscribe/Unsubscribe all forums if ($id) { if (! $course = get_record("course", "id", $id)) { @@ -89,10 +89,18 @@ } foreach ($forums as $forum) { + + $cm = get_coursemodule_from_instance("forum", $forum->id, $course->id); + $context = get_context_instance(CONTEXT_MODULE, $cm->id); + + if (!has_capability('mod/forum:viewforum', $context)) { + if (isset($forum->keyreference)) { + unset($learningforums[$forum->keyreference]); + } + continue; + } if (!isset($forum->visible)) { $forum->visible = instance_is_visible("forum", $forum); - $cm = get_coursemodule_from_instance("forum", $forum->id, $course->id); - $context = get_context_instance(CONTEXT_MODULE, $cm->id); if (!$forum->visible and !has_capability('moodle/course:viewhiddenactivities', $context)) { if (isset($forum->keyreference)) { unset($learningforums[$forum->keyreference]); @@ -468,4 +476,4 @@ print_footer($course); -?> +?> \ No newline at end of file diff --git a/mod/forum/lib.php b/mod/forum/lib.php index 4c65e3af1d3..087bb68c3c4 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -94,10 +94,10 @@ function forum_add_instance($forum) { $forum->timemodified = time(); - if (!$forum->userating) { + if (!$forum->assessed) { $forum->assessed = 0; } - + if (!empty($forum->ratingtime)) { $forum->assesstimestart = make_timestamp($forum->startyear, $forum->startmonth, $forum->startday, $forum->starthour, $forum->startminute, 0); @@ -145,10 +145,10 @@ function forum_update_instance($forum) { $forum->timemodified = time(); $forum->id = $forum->instance; - if (empty($forum->userating)) { + if (empty($forum->assessed)) { $forum->assessed = 0; } - + if (!empty($forum->ratingtime)) { $forum->assesstimestart = make_timestamp($forum->startyear, $forum->startmonth, $forum->startday, $forum->starthour, $forum->startminute, 0); @@ -1583,7 +1583,6 @@ function forum_get_course_forum($courseid, $type) { $forum->name = addslashes(get_string("namenews", "forum")); $forum->intro = addslashes(get_string("intronews", "forum")); $forum->forcesubscribe = FORUM_FORCESUBSCRIBE; - $forum->open = 1; // 0 - no, 1 - posts only, 2 - discuss and post $forum->assessed = 0; if ($courseid == SITEID) { $forum->name = get_string("sitenews"); @@ -1593,14 +1592,12 @@ function forum_get_course_forum($courseid, $type) { case "social": $forum->name = addslashes(get_string("namesocial", "forum")); $forum->intro = addslashes(get_string("introsocial", "forum")); - $forum->open = 2; // 0 - no, 1 - posts only, 2 - discuss and post $forum->assessed = 0; $forum->forcesubscribe = 0; break; case "teacher": $forum->name = addslashes(get_string("nameteacher", "forum")); $forum->intro = addslashes(get_string("introteacher", "forum")); - $forum->open = 2; // 0 - no, 1 - posts only, 2 - discuss and post $forum->assessed = 0; $forum->forcesubscribe = 0; break; @@ -1984,7 +1981,7 @@ function forum_print_post(&$post, $courseid, $ownpost=false, $reply=false, $link $canviewallratings = has_capability('mod/forum:viewanyrating', $modcontext); - if (($canviewallratings or $ratings->assesspublic) and !$mypost) { + if ($canviewallratings and !$mypost) { forum_print_ratings_mean($post->id, $ratings->scale, $canviewallratings); if (!empty($ratings->allow)) { echo ' '; @@ -2095,7 +2092,7 @@ function forum_print_discussion_header(&$post, $forum, $group=-1, $datestring="" echo "\n"; } - if ($forum->open or $forum->type == 'teacher') { // Show the column with replies + if (has_capability('mod/forum:viewdiscussion', $modcontext)) { // Show the column with replies echo '