/** * Returns an array of (shared and non-shared) forums belonging to the given course * @access public * @param integer $course id of the course * @return string array each row is a forum * @see $db in include/vitals.inc.php * @see is_shared_forum() * @author Heidi Hazelton * @author Joel Kronenberg */ function get_forums($course) { global $db; if ($course) { $sql = "SELECT F.*, DATE_FORMAT(F.last_post, '%Y-%m-%d %H:%i:%s') AS last_post FROM ".TABLE_PREFIX."forums_courses FC INNER JOIN ".TABLE_PREFIX."forums F USING (forum_id) WHERE FC.course_id=$course GROUP BY FC.forum_id ORDER BY F.title"; } else { $sql = "SELECT F.*, FC.course_id, DATE_FORMAT(F.last_post, '%Y-%m-%d %H:%i:%s') AS last_post FROM ".TABLE_PREFIX."forums_courses FC INNER JOIN ".TABLE_PREFIX."forums F USING (forum_id) GROUP BY FC.forum_id ORDER BY F.title"; } // 'nonshared' forums are always listed first: $forums['nonshared'] = array(); $forums['shared'] = array(); $forums['group'] = array(); $result = mysql_query($sql, $db); while ($row = mysql_fetch_assoc($result)) { // for each forum, check if it's shared or not: if (is_shared_forum($row['forum_id'])) { $forums['shared'][] = $row; } else { $forums['nonshared'][] = $row; } } // retrieve the group forums if course is given if (!$_SESSION['groups'] || !$course) { return $forums; } // filter out the groups that do not belong to the given course foreach ($_SESSION['groups'] as $group) { $sql = "SELECT * FROM ".TABLE_PREFIX."groups g, ". TABLE_PREFIX."groups_types gt WHERE g.group_id=".$group." AND g.type_id = gt.type_id AND gt.course_id=".$course; $result = mysql_query($sql, $db); if (mysql_num_rows($result) > 0){ $groups = $group .','; } } if (isset($groups)) { $groups = substr($groups, 0, -1); $sql = "SELECT F.*, G.group_id FROM ".TABLE_PREFIX."forums_groups G INNER JOIN ".TABLE_PREFIX."forums F USING (forum_id) WHERE G.group_id IN ($groups) ORDER BY F.title"; $result = mysql_query($sql, $db); while ($row = mysql_fetch_assoc($result)) { $row['title'] = get_group_title($row['group_id']); $forums['group'][] = $row; } } return $forums; }
/** * Returns an array of (shared and non-shared) forums belonging to the given course * @access public * @param integer $course id of the course * @return string array each row is a forum * @see is_shared_forum() * @author Heidi Hazelton * @author Joel Kronenberg */ function get_forums($course) { if ($course) { $sql = "SELECT F.*, DATE_FORMAT(F.last_post, '%%Y-%%m-%%d %%H:%%i:%%s') AS last_post FROM %sforums_courses FC INNER JOIN %sforums F USING (forum_id) WHERE FC.course_id=%d GROUP BY FC.forum_id ORDER BY F.title"; $rows_forums = queryDB($sql, array(TABLE_PREFIX, TABLE_PREFIX, $course)); } else { $sql = "SELECT F.*, FC.course_id, DATE_FORMAT(F.last_post, '%%Y-%%m-%%d %%H:%%i:%%s') AS last_post FROM %sforums_courses FC INNER JOIN %sforums F USING (forum_id) GROUP BY FC.forum_id ORDER BY F.title"; $rows_forums = queryDB($sql, array(TABLE_PREFIX, TABLE_PREFIX)); } // 'nonshared' forums are always listed first: $forums['nonshared'] = array(); $forums['shared'] = array(); $forums['group'] = array(); foreach ($rows_forums as $row) { // for each forum, check if it's shared or not: if (is_shared_forum($row['forum_id'])) { $forums['shared'][] = $row; } else { $forums['nonshared'][] = $row; } } // retrieve the group forums if course is given if (!$_SESSION['groups'] || !$course) { return $forums; } // filter out the groups that do not belong to the given course foreach ($_SESSION['groups'] as $group) { $sql = "SELECT * FROM %sgroups g, %sgroups_types gt\n\t\t WHERE g.group_id=%d\n\t\t AND g.type_id = gt.type_id\n\t\t AND gt.course_id=%d"; $rows_forums = queryDB($sql, array(TABLE_PREFIX, TABLE_PREFIX, $group, $course)); if ($rows_forums > 0) { $groups .= $group . ','; } } if (isset($groups)) { $groups = substr($groups, 0, -1); $sql = "SELECT F.*, G.group_id FROM %sforums_groups G \n\t\t INNER JOIN %sforums F \n\t\t USING (forum_id) \n\t\t WHERE G.group_id IN (%s) \n\t\t ORDER BY F.title"; $rows_gforums = queryDB($sql, array(TABLE_PREFIX, TABLE_PREFIX, $groups)); foreach ($rows_gforums as $row) { $row['title'] = get_group_title($row['group_id']); $forums['group'][] = $row; } } return $forums; }
authenticate(AT_PRIV_FORUMS); require AT_INCLUDE_PATH . '../mods/_standard/forums/lib/forums.inc.php'; if (isset($_POST['cancel'])) { $msg->addFeedback('CANCELLED'); header('Location: ' . AT_BASE_HREF . 'mods/_standard/forums/index.php'); exit; } else { if (isset($_POST['edit_forum'])) { $_POST['fid'] = intval($_POST['fid']); if ($_POST['title'] == '') { $msg->addError(array('EMPTY_FIELDS', _AT('title'))); } else { $_POST['title'] = validate_length($_POST['title'], 60); } if (!$msg->containsErrors()) { if (!is_shared_forum($_POST['fid'])) { edit_forum($_POST); $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY'); } else { $msg->addError('FORUM_NO_EDIT_SHARE'); } header('Location: ' . AT_BASE_HREF . 'mods/_standard/forums/index.php'); exit; } } } $onload = 'document.form.title.focus();'; require AT_INCLUDE_PATH . 'header.inc.php'; $fid = intval($_REQUEST['fid']); if (!isset($_POST['submit'])) { $row = get_forum($fid, $_SESSION['course_id']);
/****************************************************************************/ // $Id$ define('AT_INCLUDE_PATH', '../../../include/'); require AT_INCLUDE_PATH . 'vitals.inc.php'; authenticate(AT_PRIV_FORUMS); require_once AT_INCLUDE_PATH . '../mods/_standard/forums/lib/forums.inc.php'; if (isset($_POST['submit_no'])) { $msg->addFeedback('CANCELLED'); header('Location: ' . AT_BASE_HREF . 'mods/_standard/forums/index.php'); exit; } else { if (isset($_POST['submit_yes'])) { $_POST['fid'] = intval($_POST['fid']); // check if this forum is shared: // (if this forum is shared, then we do not want to delete it.) if (!is_shared_forum($_POST['fid']) && valid_forum_user($_POST['fid'])) { delete_forum($_POST['fid']); $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY'); } else { $msg->addError('FORUM_NO_DEL_SHARE'); } header('Location: ' . AT_BASE_HREF . 'mods/_standard/forums/index.php'); exit; } } $_section[0][0] = _AT('discussions'); $_section[0][1] = 'discussions/'; $_section[1][0] = _AT('forums'); $_section[1][1] = 'forum/list.php'; $_section[2][0] = _AT('delete_forum'); require AT_INCLUDE_PATH . 'header.inc.php';
function get_forums($course) { if ($course) { $sql = "SELECT F.*, DATE_FORMAT(F.last_post, '%%Y-%%m-%%d %%H:%%i:%%s') AS last_post FROM %sforums_courses FC \n\t\tINNER JOIN %sforums F \n\t\tUSING (forum_id) \n\t\tWHERE FC.course_id=%d \n\t\tGROUP BY FC.forum_id \n\t\tORDER BY F.title"; $rows_forums = queryDB($sql, array(TABLE_PREFIX, TABLE_PREFIX, $course)); } else { $sql = "SELECT F.*, FC.course_id, DATE_FORMAT(F.last_post, '%%Y-%%m-%%d %%H:%%i:%%s') AS last_post FROM %sforums_courses FC \n\t\tINNER JOIN %sforums F \n\t\tUSING (forum_id) \n\t\tGROUP BY FC.forum_id \n\t\tORDER BY F.title"; $rows_forums = queryDB($sql, array(TABLE_PREFIX, TABLE_PREFIX)); } // 'nonshared' forums are always listed first: $forums['nonshared'] = array(); $forums['shared'] = array(); $forums['group'] = array(); foreach ($rows_forums as $row) { // for each forum, check if it's shared or not: if (is_shared_forum($row['forum_id'])) { $forums['shared'][] = $row; } else { $forums['nonshared'][] = $row; } } // retrieve the group forums if course is given $course_groups = get_course_groups($course); if (!$course_groups || !$course) { return $forums; } if (isset($course_groups)) { foreach ($course_groups as $groups) { $sql = "SELECT F.*, G.group_id FROM %sforums_groups G \n INNER JOIN %sforums F \n USING (forum_id) \n WHERE G.group_id IN (%s) \n ORDER BY F.title"; $rows_gforums = queryDB($sql, array(TABLE_PREFIX, TABLE_PREFIX, $groups['group_id'])); foreach ($rows_gforums as $row) { $row['title'] = get_group_title($row['group_id']); $forums['group'][] = $row; } } } return $forums; }