示例#1
0
/**
* 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;	
}
示例#2
0
/**
* 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;
}
示例#3
0
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']);
示例#4
0
/****************************************************************************/
// $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';
示例#5
0
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;
}