Source for file course_edit.php
Documentation is available at course_edit.php
// $Id: course_edit.php 15245 2008-05-08 16:53:52Z juliomontoya $
==============================================================================
Dokeos - elearning and course management software
Copyright (c) 2004 Dokeos SPRL
Copyright (c) 2003 Ghent University (UGent)
Copyright (c) 2001 Universite catholique de Louvain (UCL)
Copyright (c) Olivier Brouckaert
Copyright (c) Bart Mollet, Hogeschool Gent
For a full list of contributors, see "credits.txt".
The full license can be read in "license.txt".
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
See the GNU General Public License for more details.
Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium
==============================================================================
==============================================================================
==============================================================================
==============================================================================
==============================================================================
// name of the language file that needs to be included
$language_file = 'admin';
include ('../inc/global.inc.php');
include (api_get_path(LIBRARY_PATH). 'fileManage.lib.php');
require_once (api_get_path(LIBRARY_PATH). 'formvalidator/FormValidator.class.php');
require_once (api_get_path(LIBRARY_PATH). 'course.lib.php');
$course_code = isset ($_GET['course_code']) ? $_GET['course_code'] : $_POST['code'];
$tool_name = get_lang('ModifyCourseInfo');
$interbreadcrumb[] = array ("url" => 'index.php', "name" => get_lang('PlatformAdmin'));
$interbreadcrumb[] = array ("url" => "course_list.php", "name" => get_lang('AdminCourses'));
-----------------------------------------------------------
-----------------------------------------------------------
==============================================================================
==============================================================================
==============================================================================
==============================================================================
// Get all course categories
header('Location: course_list.php');
$sql = "SELECT user.user_id,lastname,firstname FROM $table_user as user,$table_course_user as course_user WHERE course_user.status='1' AND course_user.user_id=user.user_id AND course_user.course_code='". $course_code. "' ORDER BY lastname,firstname";
$course_teachers = array();
$course_teachers[$obj->user_id] = $obj->lastname. ' '. $obj->firstname;
// Get all possible teachers without the course teachers
$sql = "SELECT user_id,lastname,firstname FROM $table_user WHERE status='1' ORDER BY lastname,firstname";
$platform_teachers[0] = '-- '. get_lang('NoManager'). ' --';
$teachers[$obj->user_id] = $obj->lastname. ' '. $obj->firstname;
if($course['tutor_name']== $course_teachers[$obj->user_id]){
$course['tutor_name']= $obj->user_id;
//We add in the array platform teachers
$platform_teachers[$obj->user_id] = $obj->lastname. ' '. $obj->firstname;
//Case where there is no teacher in the course
if(count($course_teachers)== 0){
$sql= 'SELECT tutor_name FROM '. $course_table. ' WHERE code="'. $course_code. '"';
$course['tutor_name']= array_search($tutor_name,$platform_teachers);
$form->addElement('hidden','code',$course_code);
$form->add_textfield('visual_code', get_lang('CourseCode'));
$form->applyFilter('visual_code','strtoupper');
//$form->add_textfield('tutor_name', get_lang('CourseTitular'));
$form->addElement('select', 'tutor_name', get_lang('CourseTitular'), $platform_teachers);
//$form->addElement('select', 'course_teachers', get_lang('CourseTeachers'), $teachers, 'multiple=multiple size="4" style="width: 150px;"');
$group[] = FormValidator::createElement('select', 'platform_teachers', '', $teachers, 'id="platform_teachers" multiple=multiple size="4" style="width: 150px;"');
$group[] = FormValidator::createElement('select', 'course_teachers', '', $course_teachers, 'id="course_teachers" multiple=multiple size="4" style="width: 150px;"');
$element_template = <<<EOT
<!-- BEGIN required --><span class="form_required">*</span> <!-- END required -->{label}
<div class="formw" style="display:inline">
<table cellpadding="0" cellspacing="0">
<!-- BEGIN error --><span class="form_error">{error}</span><br /><!-- END error --> <td>{element}</td>
$renderer = $form->defaultRenderer();
$renderer -> setElementTemplate($element_template, 'group');
$form -> addGroup($group,'group',get_lang('CourseTeachers'),'</td><td width="50" align="center"><input type="button" onclick="moveItem(document.getElementById(\'platform_teachers\'), document.getElementById(\'course_teachers\'))" value=">>"><br><br><input type="button" onclick="moveItem(document.getElementById(\'course_teachers\'), document.getElementById(\'platform_teachers\'))" value="<<"></td><td>');
$form->add_textfield( 'title', get_lang('Title'),true, array ('size' => '60'));
$categories_select = $form->addElement('select', 'category_code', get_lang('CourseFaculty'), $categories);
$form->add_textfield( 'department_name', get_lang('CourseDepartment'), false,array ('size' => '60'));
$form->add_textfield( 'department_url', get_lang('CourseDepartmentURL'),false, array ('size' => '60'));
$form->addElement('select_language', 'course_language', get_lang('CourseLanguage'));
$form->addElement('radio', 'subscribe', get_lang('Subscription'), get_lang('Allowed'), 1);
$form->addElement('radio', 'subscribe', null, get_lang('Denied'), 0);
$form->addElement('radio', 'unsubscribe', get_lang('Unsubscription'), get_lang('AllowedToUnsubscribe'), 1);
$form->addElement('radio', 'unsubscribe', null, get_lang('NotAllowedToUnsubscribe'), 0);
$form->addElement('text','disk_quota',get_lang('CourseQuota'));
$form->addRule('disk_quota', get_lang('ThisFieldIsRequired'),'required');
$form->addRule('disk_quota',get_lang('ThisFieldShouldBeNumeric'),'numeric');
$form->addElement('button', null, get_lang('Ok'), 'onclick="valide()"');
// Set some default values
$course_db_name = $course['db_name'];
$form->setDefaults($course);
$course = $form->getSubmitValues();
$dbName = $_POST['dbName'];
$course_code = $course['code'];
$visual_code = $course['visual_code'];
$tutor_id = $course['tutor_name'];
$tutor_name= $platform_teachers[$tutor_id];
$teachers = $course['group']['course_teachers'];
$title = $course['title'];
$category_code = $course['category_code'];
$department_name = $course['department_name'];
$department_url = $course['department_url'];
$course_language = $course['course_language'];
$disk_quota = $course['disk_quota'];
$visibility = $course['visibility'];
$subscribe = $course['subscribe'];
$unsubscribe = $course['unsubscribe'];
if (!stristr($department_url, 'http://'))
$department_url = 'http://'. $department_url;
$sql= 'DELETE FROM '. $course_user_table. ' WHERE course_code="'. Database::escape_string($course_code). '" AND status="1"';
foreach($teachers as $key){
//We check if the teacher is already subscribed as student in this course
$sql_select_teacher = 'SELECT 1 FROM '. $course_user_table. ' WHERE user_id = "'. $key. '" AND course_code = "'. $course_code. '" AND status<>"1"';
$result = api_sql_query($sql_select_teacher, __FILE__ , __LINE__ );
$sql = 'UPDATE '. $course_user_table. ' SET status = "1" WHERE course_code = "'. $course_code. '" AND user_id = "'. $key. '"';
$sql = "INSERT INTO ". $course_user_table . " SET
$sql = "INSERT IGNORE INTO ". $course_user_table . " SET
user_id = '". $tutor_id . "',
$sql = "UPDATE ". $forum_config_table. " SET default_lang='". Database::escape_string($course_language). "'";
header('Location: course_list.php');
function moveItem(origin , destination){
for(var i = 0 ; i<origin.options.length ; i++) {
if(origin.options[i].selected) {
destination.options[destination.length] = new Option(origin.options[i].text,origin.options[i].value);
destination.selectedIndex = -1;
sortOptions(destination.options);
function sortOptions(options) {
newOptions = new Array();
for (i = 0 ; i<options.length ; i++)
newOptions[i] = options[i];
newOptions = newOptions.sort(mysort);
for(i = 0 ; i < newOptions.length ; i++)
options[i] = newOptions[i];
if(a.text.toLowerCase() > b.text.toLowerCase()){
if(a.text.toLowerCase() < b.text.toLowerCase()){
var options = document.getElementById('course_teachers').options;
for (i = 0 ; i<options.length ; i++)
options[i].selected = true;
document.update_course.submit();
//api_display_tool_title($tool_name);
==============================================================================
==============================================================================
|