From: moodler Date: Wed, 17 Sep 2003 06:20:25 +0000 (+0000) Subject: Forums in section 0 (top section) now get combined in the X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=fa5a5b5295c0fd21fafd6329139733943da195c3;p=moodle.git Forums in section 0 (top section) now get combined in the "General Forums" listing on the Forums list --- diff --git a/mod/forum/index.php b/mod/forum/index.php index ffc6d7dea8..764d1a414f 100644 --- a/mod/forum/index.php +++ b/mod/forum/index.php @@ -31,26 +31,21 @@ $searchform = forum_print_search_form($course, "", true, "plain"); - if ($course->category) { - print_header("$course->shortname: $strforums", "$course->fullname", - "id>$course->shortname -> $strforums", - "", "", true, $searchform, navmenu($course)); - } else { - print_header("$course->shortname: $strforums", "$course->fullname", "$strforums", - "", "", true, $searchform, navmenu($course)); - } - - $table->head = array ($strforum, $strdescription, $strdiscussions); - $table->align = array ("LEFT", "LEFT", "CENTER"); + // Build up the tables - $can_subscribe = (isstudent($course->id) or isteacher($course->id) or isadmin()); + $generaltable->head = array ($strforum, $strdescription, $strdiscussions); + $generaltable->align = array ("LEFT", "LEFT", "CENTER"); - if ($can_subscribe) { - $table->head[] = $strsubscribed; - $table->align[] = "CENTER"; + if ($can_subscribe = (isstudent($course->id) or isteacher($course->id) or isadmin())) { + $generaltable->head[] = $strsubscribed; + $generaltable->align[] = "CENTER"; } + $learningtable = $generaltable; // Headers etc are the same + + // Parse the forums + if ($forums = get_records("forum", "course", $id, "name ASC")) { foreach ($forums as $forum) { $forum->visible = true; @@ -74,46 +69,10 @@ } } - if ($generalforums) { - foreach ($generalforums as $forum) { - $count = count_records("forum_discussions", "forum", "$forum->id"); - - $forum->intro = forum_shorten_post($forum->intro); - replace_smilies($forum->intro); - - if ($forum->visible) { - $forumlink = "id\">$forum->name"; - } else { - $forumlink = "id\">$forum->name"; - } - - if ($can_subscribe) { - if (forum_is_forcesubscribed($forum->id)) { - $sublink = get_string("yes"); - } else { - if (forum_is_subscribed($USER->id, $forum->id)) { - $subscribed = get_string("yes"); - $subtitle = get_string("unsubscribe", "forum"); - } else { - $subscribed = get_string("no"); - $subtitle = get_string("subscribe", "forum"); - } - $sublink = "id\">$subscribed"; - } - $table->data[] = array ($forumlink, "$forum->intro", "$count", $sublink); - } else { - $table->data[] = array ($forumlink, "$forum->intro", "$count"); - } - } - print_heading(get_string("generalforums", "forum")); - print_table($table); - unset($table->data); - } - if ($course->category) { // Only real courses have learning forums // Add extra field for section number, at the front - array_unshift($table->head, ""); - array_unshift($table->align, "center"); + array_unshift($learningtable->head, ""); + array_unshift($learningtable->align, "center"); if ($learningforums = get_all_instances_in_course("forum", $course)) { foreach ($learningforums as $key => $forum) { @@ -129,8 +88,9 @@ $forum->intro = forum_shorten_post($forum->intro); replace_smilies($forum->intro); - if (!$forum->section) { // some forums are in the "0" section - $forum->section = ""; + if (!$forum->section) { // forums in the "0" section => generaltable + $generalforums[] = $forum; + continue; } if ($forum->visible) { @@ -152,16 +112,64 @@ } $sublink = "id\">$subscribed"; } - $table->data[] = array ("$forum->section", $forumlink, "$forum->intro", "$count", "$sublink"); + $learningtable->data[] = array ("$forum->section", $forumlink, "$forum->intro", "$count", "$sublink"); } else { - $table->data[] = array ("$forum->section", $forumlink, "$forum->intro", "$count"); + $learningtable->data[] = array ("$forum->section", $forumlink, "$forum->intro", "$count"); } } - print_heading(get_string("learningforums", "forum")); - print_table($table); } } + if ($generalforums) { + foreach ($generalforums as $forum) { + $count = count_records("forum_discussions", "forum", "$forum->id"); + + $forum->intro = forum_shorten_post($forum->intro); + replace_smilies($forum->intro); + + if ($forum->visible) { + $forumlink = "id\">$forum->name"; + } else { + $forumlink = "id\">$forum->name"; + } + + if ($can_subscribe) { + if (forum_is_forcesubscribed($forum->id)) { + $sublink = get_string("yes"); + } else { + if (forum_is_subscribed($USER->id, $forum->id)) { + $subscribed = get_string("yes"); + $subtitle = get_string("unsubscribe", "forum"); + } else { + $subscribed = get_string("no"); + $subtitle = get_string("subscribe", "forum"); + } + $sublink = "id\">$subscribed"; + } + $generaltable->data[] = array ($forumlink, "$forum->intro", "$count", $sublink); + } else { + $generaltable->data[] = array ($forumlink, "$forum->intro", "$count"); + } + } + } + + + /// Output the page + + if ($course->category) { + print_header("$course->shortname: $strforums", "$course->fullname", + "id>$course->shortname -> $strforums", + "", "", true, $searchform, navmenu($course)); + } else { + print_header("$course->shortname: $strforums", "$course->fullname", "$strforums", + "", "", true, $searchform, navmenu($course)); + } + + print_heading(get_string("generalforums", "forum")); + print_table($generaltable); + + print_heading(get_string("learningforums", "forum")); + print_table($learningtable); print_footer($course);