diff --git a/main/admin/course_edit.php b/main/admin/course_edit.php index 5fa13d0cb5..65fe8010a7 100644 --- a/main/admin/course_edit.php +++ b/main/admin/course_edit.php @@ -1,6 +1,6 @@ 'index.php', "name" => get_lang('PlatformAdmin')); $interbreadcrumb[] = array ("url" => "course_list.php", "name" => get_lang('AdminCourses')); + /* ----------------------------------------------------------- Libraries @@ -67,7 +69,9 @@ $interbreadcrumb[] = array ("url" => "course_list.php", "name" => get_lang('Admi ============================================================================== */ // Get all course categories +$table_user = Database :: get_main_table(TABLE_MAIN_USER); $table_course_category = Database :: get_main_table(TABLE_MAIN_CATEGORY); + $sql = "SELECT code,name FROM ".$table_course_category." WHERE auth_course_child ='TRUE' ORDER BY tree_pos"; $res = api_sql_query($sql, __FILE__, __LINE__); while ($cat = mysql_fetch_array($res)) @@ -75,12 +79,84 @@ while ($cat = mysql_fetch_array($res)) $categories[$cat['code']] = '('.$cat['code'].') '.$cat['name']; } +//Get the course infos +$sql = "SELECT * FROM $course_table WHERE code='".mysql_real_escape_string($course_code)."'"; +$result = api_sql_query($sql, __FILE__, __LINE__); +if (mysql_num_rows($result) != 1) +{ + header('Location: course_list.php'); + exit (); +} +$course = mysql_fetch_array($result,MYSQL_ASSOC); + +// Get course teachers +$table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); +$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"; +$res = api_sql_query($sql,__FILE__,__LINE__); +$course_teachers = array(); +while($obj = mysql_fetch_object($res)) +{ + $course_teachers[$obj->user_id] = $obj->firstname.' '.$obj->lastname; +} + +// Get all possible teachers without the course teachers +$sql = "SELECT user_id,lastname,firstname FROM $table_user WHERE status='1' ORDER BY lastname,firstname"; +$res = api_sql_query($sql,__FILE__,__LINE__); +$teachers = array(); +while($obj = mysql_fetch_object($res)) +{ + if(!array_key_exists($obj->user_id,$course_teachers)){ + $teachers[$obj->user_id] = $obj->firstname.' '.$obj->lastname; + } + + + 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->firstname.' '.$obj->lastname; +} + +//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.'"'; + $res = api_sql_query($sql,__FILE__,__LINE__); + $tutor_name=mysql_result($res,0,0); + $course['tutor_name']=array_search($tutor_name,$platform_teachers); +} + // Build the form $form = new FormValidator('update_course'); $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->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=array(); +$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 = << +
+ * {label} +
+
+ + + {error}
+ +
{element}
+
+ +EOT; + +$renderer = $form->defaultRenderer(); +$renderer -> setElementTemplate($element_template, 'group'); +$form -> addGroup($group,'group',get_lang('CourseTeachers'),'

'); + $form->add_textfield( 'title', get_lang('Title'),true, array ('size' => '60')); $form->addElement('select', 'category_code', get_lang('CourseFaculty'), $categories); $form->add_textfield( 'department_name', get_lang('CourseDepartment'), false,array ('size' => '60')); @@ -97,26 +173,24 @@ $form->addElement('radio', 'unsubscribe', null, get_lang('NotAllowedToUnsubscrib $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('submit', null, get_lang('Ok')); +$form->addElement('button', null, get_lang('Ok'), 'onclick="valide()"'); // Set some default values -$sql = "SELECT * FROM $course_table WHERE code='".mysql_real_escape_string($course_code)."'"; -$result = api_sql_query($sql, __FILE__, __LINE__); -if (mysql_num_rows($result) != 1) -{ - header('Location: course_list.php'); - exit (); -} -$course = mysql_fetch_array($result,MYSQL_ASSOC); + $course_db_name = $course['db_name']; $form->setDefaults($course); // Validate form if( $form->validate()) { - $course = $form->exportValues(); + $course = $form->getSubmitValues(); $dbName = $_POST['dbName']; $course_code = $course['code']; $visual_code = $course['visual_code']; - $tutor_name = $course['tutor_name']; + + $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']; @@ -143,12 +217,76 @@ if( $form->validate()) unsubscribe='".mysql_real_escape_string($unsubscribe)."' WHERE code='".mysql_real_escape_string($course_code)."'"; api_sql_query($sql, __FILE__, __LINE__); + + $sql='DELETE FROM '.$course_user_table.' WHERE course_code="'.mysql_real_escape_string($course_code).'" AND status="1"'; + api_sql_query($sql, __FILE__, __LINE__); + + if(count($teachers)>0){ + foreach($teachers as $key){ + $sql = "INSERT INTO ".$course_user_table . " SET + course_code = '".mysql_real_escape_string($course_code). "', + user_id = '".$key . "', + status = '1', + role = '', + tutor_id='1', + sort='0', + user_course_cat='0'"; + api_sql_query($sql, __FILE__, __LINE__); + } + } + $forum_config_table = Database::get_course_table(TOOL_FORUM_CONFIG_TABLE,$course_db_name); $sql = "UPDATE ".$forum_config_table." SET default_lang='".mysql_real_escape_string($course_language)."'"; header('Location: course_list.php'); exit (); } Display::display_header($tool_name); + +echo ""; //api_display_tool_title($tool_name); // Display the form $form->display();