2 /************************************************************************/
4 /************************************************************************/
5 /* Copyright (c) 2002-2010 */
6 /* Inclusive Design Institute */
8 /* This program is free software. You can redistribute it and/or */
9 /* modify it under the terms of the GNU General Public License */
10 /* as published by the Free Software Foundation. */
11 /************************************************************************/
14 define('AT_INCLUDE_PATH', '../../../../include/');
15 require(AT_INCLUDE_PATH.'vitals.inc.php');
17 admin_authenticate(AT_ADMIN_PRIV_FORUMS);
19 include(AT_INCLUDE_PATH.'../mods/_standard/forums/lib/forums.inc.php');
21 if (isset($_POST['cancel'])) {
22 $msg->addFeedback('CANCELLED');
23 header('Location: '.AT_BASE_HREF.'mods/_standard/forums/admin/forums.php');
25 } else if (isset($_POST['edit_forum'])) {
26 $missing_fields = array();
27 if (empty($_POST['title'])) {
28 $missing_fields[] = _AT('title');
31 if (empty($_POST['courses'])) {
32 $missing_fields[] = _AT('courses');
35 if ($missing_fields) {
36 $missing_fields = implode(', ', $missing_fields);
37 $msg->addError(array('EMPTY_FIELDS', $missing_fields));
40 if (!($msg->containsErrors())) {
43 $forum_id = intval($_POST['forum']);
44 $_POST['title'] = $addslashes($_POST['title']);
45 $_POST['edit'] = intval($_POST['edit']);
46 $_POST['description'] = $addslashes($_POST['description']);
48 $sql = "UPDATE ".TABLE_PREFIX."forums SET title='" . $_POST['title'] . "', description='" . $_POST['description'] . "', last_post=last_post, mins_to_edit=$_POST[edit] WHERE forum_id=".$forum_id;
49 $result = mysql_query($sql, $db);
50 write_to_log(AT_ADMIN_LOG_UPDATE, 'forums', mysql_affected_rows($db), $sql);
52 // unsubscribe all the members who are NOT in $_POST['courses']
53 $courses_list = implode(',', $_POST['courses']);
55 // list of all the students who are in other courses as well
56 $sql = "SELECT member_id FROM ".TABLE_PREFIX."course_enrollment WHERE course_id IN ($courses_list)";
57 $result2 = mysql_query($sql, $db);
58 while ($row2 = mysql_fetch_assoc($result2)) {
59 $students[] = $row2['member_id'];
62 // list of students who must REMAIN subscribed!
63 $students_list = implode(',', $students);
66 // remove the subscriptions
67 $sql = "SELECT post_id FROM ".TABLE_PREFIX."forums_threads WHERE forum_id=$forum_id";
68 $result2 = mysql_query($sql, $db);
69 while ($row2 = mysql_fetch_assoc($result2)) {
70 $sql = "DELETE FROM ".TABLE_PREFIX."forums_accessed WHERE post_id=$row2[post_id] AND member_id NOT IN ($students_list)";
71 $result3 = mysql_query($sql, $db);
74 $sql = "DELETE FROM ".TABLE_PREFIX."forums_subscriptions WHERE forum_id=$forum_id AND member_id NOT IN ($students_list)";
75 $result3 = mysql_query($sql, $db);
78 $sql = "DELETE FROM ".TABLE_PREFIX."forums_courses WHERE forum_id=$forum_id AND course_id NOT IN ($courses_list)";
79 $result = mysql_query($sql, $db);
80 write_to_log(AT_ADMIN_LOG_DELETE, 'forums_courses', mysql_affected_rows($db), $sql);
82 //update forums_courses
83 if (in_array('0', $_POST['courses'])) {
84 //general course - used by all. put one entry in forums_courses w/ course_id=0
85 $sql = "REPLACE INTO ".TABLE_PREFIX."forums_courses VALUES (" . $_POST['forum'] . ", 0)";
86 $result = mysql_query($sql, $db);
87 write_to_log(AT_ADMIN_LOG_REPLACE, 'forums_courses', mysql_affected_rows($db), $sql);
89 foreach ($_POST['courses'] as $course) {
90 $sql = "REPLACE INTO ".TABLE_PREFIX."forums_courses VALUES (" . $_POST['forum'] . "," . $course . ")";
91 $result = mysql_query($sql, $db);
92 write_to_log(AT_ADMIN_LOG_REPLACE, 'forums_courses', mysql_affected_rows($db), $sql);
95 $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
96 header('Location: '.AT_BASE_HREF.'mods/_standard/forums/admin/forums.php');
101 require(AT_INCLUDE_PATH.'header.inc.php');
103 if (!($forum = @get_forum($_GET['forum']))) {
105 $msg->addError('FORUM_NOT_FOUND');
110 $sql = "SELECT * FROM ".TABLE_PREFIX."forums_courses WHERE forum_id=$forum[forum_id]";
111 $result = mysql_query($sql, $db);
112 while ($row = mysql_fetch_assoc($result)) {
113 $courses[] = $row['course_id'];
115 $sql = "SELECT course_id, title FROM ".TABLE_PREFIX."courses ORDER BY title";
116 $result = mysql_query($sql, $db);
121 $savant->assign('courses', $courses);
122 $savant->assign('result', $result);
123 $savant->assign('forum', $forum);
124 $savant->display('admin/courses/forum_edit.tmpl.php');
125 require(AT_INCLUDE_PATH.'footer.inc.php');