@ -7,12 +7,6 @@
/**
* Code
*/
require_once (api_get_path(LIBRARY_PATH).'course.lib.php');
/**
* This library contains some functions for class-management.
* @author Bart Mollet
* @package chamilo.library
*/
class ClassManager
{
/**
@ -20,8 +14,8 @@ class ClassManager
* note: This function can't be named get_class() because that's a standard
* php-function.
*/
function get_class_info($class_id)
{
function get_class_info($class_id) {
$class_id = intval($class_id);
$table_class = Database :: get_main_table(TABLE_MAIN_CLASS);
$sql = "SELECT * FROM $table_class WHERE id='".$class_id."'";
$res = Database::query($sql);
@ -32,8 +26,8 @@ class ClassManager
* @param string $name The new name
* @param int $class_id The class id
*/
function set_name($name, $class_id)
{
function set_name($name, $class_id) {
$class_id = intval($class_id);
$table_class = Database :: get_main_table(TABLE_MAIN_CLASS);
$sql = "UPDATE $table_class SET name='".Database::escape_string($name)."' WHERE id='".$class_id."'";
$res = Database::query($sql);
@ -42,8 +36,7 @@ class ClassManager
* Create a class
* @param string $name
*/
function create_class($name)
{
function create_class($name) {
$table_class = Database :: get_main_table(TABLE_MAIN_CLASS);
$sql = "INSERT INTO $table_class SET name='".Database::escape_string($name)."'";
Database::query($sql);
@ -53,8 +46,7 @@ class ClassManager
* Check if a classname is allready in use
* @param string $name
*/
function class_name_exists($name)
{
function class_name_exists($name) {
$table_class = Database :: get_main_table(TABLE_MAIN_CLASS);
$sql = "SELECT * FROM $table_class WHERE name='".Database::escape_string($name)."'";
$res = Database::query($sql);
@ -66,8 +58,8 @@ class ClassManager
* @todo Add option to unsubscribe class-members from the courses where the
* class was subscibed to
*/
function delete_class($class_id)
{
function delete_class($class_id) {
$class_id = intval($class_id);
$table_class = Database :: get_main_table(TABLE_MAIN_CLASS);
$table_class_course = Database :: get_main_table(TABLE_MAIN_COURSE_CLASS);
$table_class_user = Database :: get_main_table(TABLE_MAIN_CLASS_USER);
@ -83,15 +75,14 @@ class ClassManager
* @param int $class_id
* @return array
*/
function get_users($class_id)
{
function get_users($class_id) {
$class_id = intval($class_id);
$table_class_user = Database :: get_main_table(TABLE_MAIN_CLASS_USER);
$table_user = Database :: get_main_table(TABLE_MAIN_USER);
$sql = "SELECT * FROM $table_class_user cu, $table_user u WHERE cu.class_id = '".$class_id."' AND cu.user_id = u.user_id";
$res = Database::query($sql);
$users = array ();
while ($user = Database::fetch_array($res, 'ASSOC'))
{
while ($user = Database::fetch_array($res, 'ASSOC')) {
$users[] = $user;
}
return $users;
@ -102,14 +93,14 @@ class ClassManager
* @param int $user_id The user id
* @param int $class_id The class id
*/
function add_user($user_id, $class_id)
{
function add_user($user_id, $class_id) {
$table_class_user = Database :: get_main_table(TABLE_MAIN_CLASS_USER);
$user_id = intval($user_id);
$class_id = intval($class_id);
$sql = "INSERT IGNORE INTO $table_class_user SET user_id = '".$user_id."', class_id='".$class_id."'";
Database::query($sql);
$courses = ClassManager :: get_courses($class_id);
foreach ($courses as $index => $course)
{
foreach ($courses as $index => $course) {
CourseManager :: subscribe_user($user_id, $course['course_code']);
}
}
@ -119,16 +110,16 @@ class ClassManager
* @param int $user_id The user id
* @param int $class_id The class id
*/
function unsubscribe_user($user_id, $class_id)
{
function unsubscribe_user($user_id, $class_id) {
$class_id = intval($class_id);
$user_id = intval($user_id);
$table_class_user = Database :: get_main_table(TABLE_MAIN_CLASS_USER);
$table_course_class = Database :: get_main_table(TABLE_MAIN_COURSE_CLASS);
$courses = ClassManager :: get_courses($class_id);
if (count($courses) != 0)
{
if (count($courses) != 0) {
$course_codes = array ();
foreach ($courses as $index => $course)
{
foreach ($courses as $index => $course) {
$course_codes[] = $course['course_code'];
$sql = "SELECT DISTINCT user_id FROM $table_class_user t1, $table_course_class t2 WHERE t1.class_id=t2.class_id AND course_code = '".$course['course_code']."' AND user_id = $user_id AND t2.class_id< >'$class_id'";
$res = Database::query($sql);
@ -146,15 +137,14 @@ class ClassManager
* @param int $class_id
* @return array
*/
function get_courses($class_id)
{
function get_courses($class_id) {
$class_id = intval($class_id);
$table_class_course = Database :: get_main_table(TABLE_MAIN_COURSE_CLASS);
$table_course = Database :: get_main_table(TABLE_MAIN_COURSE);
$sql = "SELECT * FROM $table_class_course cc, $table_course c WHERE cc.class_id = '".$class_id."' AND cc.course_code = c.code";
$res = Database::query($sql);
$courses = array ();
while ($course = Database::fetch_array($res, 'ASSOC'))
{
while ($course = Database::fetch_array($res, 'ASSOC')) {
$courses[] = $course;
}
return $courses;
@ -164,8 +154,7 @@ class ClassManager
* @param int $class_id The class id
* @param string $course_code The course code
*/
function subscribe_to_course($class_id, $course_code)
{
function subscribe_to_course($class_id, $course_code) {
$tbl_course_class = Database :: get_main_table(TABLE_MAIN_COURSE_CLASS);
$tbl_class_user = Database :: get_main_table(TABLE_MAIN_CLASS_USER);
$tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
@ -173,8 +162,7 @@ class ClassManager
Database::query($sql);
$sql = "SELECT user_id FROM $tbl_class_user WHERE class_id = '".Database::escape_string($class_id)."'";
$res = Database::query($sql);
while ($user = Database::fetch_object($res))
{
while ($user = Database::fetch_object($res)) {
CourseManager :: subscribe_user($user->user_id, $course_code);
}
}
@ -212,8 +200,8 @@ class ClassManager
* @param string $name The class name
* @return int the ID of the class
*/
function get_class_id($name)
{
function get_class_id($name) {
$name = Database::escape_string($name);
$table_class = Database :: get_main_table(TABLE_MAIN_CLASS);
$sql = "SELECT * FROM $table_class WHERE name='".$name."'";
$res = Database::query($sql);
@ -225,18 +213,15 @@ class ClassManager
* @param string $course_code
* @return array An array with all classes (keys: 'id','code','name')
*/
function get_classes_in_course($course_code)
{
function get_classes_in_course($course_code) {
$table_class = Database :: get_main_table(TABLE_MAIN_CLASS);
$table_course_class = Database :: get_main_table(TABLE_MAIN_COURSE_CLASS);
$sql = "SELECT cl.* FROM $table_class cl, $table_course_class cc WHERE cc.course_code = '".Database::escape_string($course_code)."' AND cc.class_id = cl.id";
$res = Database::query($sql);
$classes = array ();
while ($class = Database::fetch_array($res, 'ASSOC'))
{
while ($class = Database::fetch_array($res, 'ASSOC')) {
$classes[] = $class;
}
return $classes;
}
}
?>
}