From 82aa0e8de6bf95a4147837b26c08f264fca76ecb Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 4 Jul 2002 08:30:36 +0000 Subject: [PATCH] Added new teacher forum. TABLE CHANGED: forum --- course/topics.php | 6 +++++- course/weeks.php | 4 ++++ mod/forum/db/mysql.sql | 2 +- mod/forum/index.php | 5 +++++ mod/forum/lib.php | 19 +++++++++++++++++++ mod/forum/subscribe.php | 7 +++++++ mod/forum/view.php | 7 +++++++ 7 files changed, 48 insertions(+), 2 deletions(-) diff --git a/course/topics.php b/course/topics.php index 912bcdabbd..42ea9fc1a2 100644 --- a/course/topics.php +++ b/course/topics.php @@ -82,9 +82,13 @@ } else { $admindata[]="id&edit=on\">Turn editing on"; } + if ($teacherforum = get_course_teacher_forum($course->id)) { + $admindata[]="id\">Teacher Forum..."; + $adminicon[]="\"Teacher"; + } $admindata[]="id\">Course settings..."; - $adminicon[]="\"Course\""; + $adminicon[]="\"Course"; $admindata[]="id\">Logs..."; $adminicon[]="\"Log\""; $admindata[]="id\">Files..."; diff --git a/course/weeks.php b/course/weeks.php index 506e4a0ee3..870248b897 100644 --- a/course/weeks.php +++ b/course/weeks.php @@ -73,6 +73,10 @@ $admindata[]="id&edit=on\">Turn editing on"; } + if ($teacherforum = get_course_teacher_forum($course->id)) { + $admindata[]="id\">Teacher Forum..."; + $adminicon[]="\"Teacher"; + } $admindata[]="id\">Course settings..."; $adminicon[]="\"Course\""; $admindata[]="id\">Logs..."; diff --git a/mod/forum/db/mysql.sql b/mod/forum/db/mysql.sql index aecc2d1c2b..9553e3b5f6 100644 --- a/mod/forum/db/mysql.sql +++ b/mod/forum/db/mysql.sql @@ -5,7 +5,7 @@ CREATE TABLE forum ( id int(10) unsigned NOT NULL auto_increment, course int(10) unsigned NOT NULL default '0', - type enum('discussion','news','general','social','eachuser') NOT NULL default 'general', + type enum('discussion','news','general','social','eachuser','teacher') NOT NULL default 'general', name varchar(255) NOT NULL default '', intro tinytext NOT NULL, open tinyint(1) unsigned NOT NULL default '0', diff --git a/mod/forum/index.php b/mod/forum/index.php index 99c887d38e..c19ece5940 100644 --- a/mod/forum/index.php +++ b/mod/forum/index.php @@ -40,6 +40,11 @@ if ($forums = get_records("forum", "course", $id, "name ASC")) { foreach ($forums as $forum) { + if ($forum->type == "teacher") { + if (!isteacher($course->id)) { + continue; + } + } $count = count_records("discuss", "forum", "$forum->id"); if ($can_subscribe) { diff --git a/mod/forum/lib.php b/mod/forum/lib.php index 53631d6b71..76b33ec408 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -40,6 +40,8 @@ function user_can_post_discussion($forum) { if ($forum->type == "eachuser") { return (! user_has_posted_discussion($forum->id, $USER->id)); + } else if ($forum->type == "teacher") { + return isteacher($forum->course); } else if (isteacher($forum->course)) { return true; } else { @@ -113,6 +115,23 @@ function get_course_discussion_forum($courseid) { } } +function get_course_teacher_forum($courseid) { + if ($forum = get_record_sql("SELECT * from forum WHERE course = '$courseid' AND type = 'teacher'")) { + return $forum; + } else { + // Doesn't exist, so create one now. + $forum->course = $courseid; + $forum->type = "teacher"; + $forum->name = "Teacher Forum"; + $forum->intro= "For teacher-only notes and discussion"; + $forum->open = 0; + $forum->assessed = 0; + $forum->timemodified = time(); + $forum->id = insert_record("forum", $forum); + return get_record_sql("SELECT * from forum WHERE id = '$forum->id'"); + } +} + function print_forum_latest_topics($forum_id=0, $forum_numtopics=5, $forum_style="plain", $forum_sort="DESC") { global $CFG, $USER; diff --git a/mod/forum/subscribe.php b/mod/forum/subscribe.php index 987b20bf0c..926213b816 100644 --- a/mod/forum/subscribe.php +++ b/mod/forum/subscribe.php @@ -25,6 +25,13 @@ require_login(); } + if ($forum->type == "teacher") { + if (!isteacher($course->id)) { + error("You must be a $course->teacher to subscribe to this forum"); + } + } + + $returnto = go_back_to("index.php?id=$course->id"); if ( is_subscribed($USER->id, $forum->id) ) { diff --git a/mod/forum/view.php b/mod/forum/view.php index e4329e49d6..2106c88cd7 100644 --- a/mod/forum/view.php +++ b/mod/forum/view.php @@ -38,6 +38,13 @@ id\">Forums ->"; } + if ($forum->type == "teacher") { + if (!isteacher($course->id)) { + error("You must be a $course->teacher to view this forum"); + } + } + + add_to_log($course->id, "forum", "view forum", "view.php?f=$forum->id", "$forum->id"); print_header("$course->shortname: $forum->name", "$course->fullname", -- 2.39.5