@ -78,17 +78,35 @@ if (!api_is_platform_admin()) {
}
}
function search_courses($needle)
function search_courses($needle,$type )
{
global $tbl_course, $tbl_session_rel_course, $id_session;
$xajax_response = new XajaxResponse();
$return = '';
if(!empty($needle)) {
$return = '';
if(!empty($needle) & & !empty($type) ) {
// xajax send utf8 datas... datas in db can be non-utf8 datas
$charset = api_get_setting('platform_charset');
$needle = mb_convert_encoding($needle, $charset, 'utf-8');
$cond_course_code = '';
if (!empty($id_session)) {
$id_session = Database::escape_string($id_session);
// check course_code from session_rel_course table
$sql = 'SELECT course_code FROM '.$tbl_session_rel_course.' WHERE id_session ="'.(int)$id_session.'"';
$res = api_sql_query($sql,__FILE__,__LINE__);
$course_codes = '';
if (Database::num_rows($res) > 0) {
while ($row = Database::fetch_row($res)) {
$course_codes .= '\''.$row[0].'\',';
}
$course_codes = substr($course_codes,0,(strlen($course_codes)-1));
$cond_course_code = ' AND course.code NOT IN('.$course_codes.') ';
}
}
if ($type=='single') {
// search users where username or firstname or lastname begins likes $needle
$sql = 'SELECT course.code, course.visual_code, course.title, session_rel_course.id_session
FROM '.$tbl_course.' course
@ -97,33 +115,63 @@ function search_courses($needle)
AND session_rel_course.id_session = '.intval($id_session).'
WHERE course.visual_code LIKE "'.$needle.'%"
OR course.title LIKE "'.$needle.'%"';
} else {
$sql = 'SELECT course.code, course.visual_code, course.title
FROM '.$tbl_course.' course
WHERE course.visual_code LIKE "'.$needle.'%" '.$cond_course_code.' ORDER BY course.code ';
}
global $_configuration;
global $_configuration;
if ($_configuration['multiple_access_urls']==true) {
$tbl_course_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){
$sql = 'SELECT course.code, course.visual_code, course.title, session_rel_course.id_session
FROM '.$tbl_course.' course
LEFT JOIN '.$tbl_session_rel_course.' session_rel_course
ON course.code = session_rel_course.course_code
AND session_rel_course.id_session = '.intval($id_session).'
INNER JOIN '.$tbl_course_rel_access_url.' url_course ON (url_course.course_code=course.code)
WHERE access_url_id = '.$access_url_id.' AND (course.visual_code LIKE "'.$needle.'%"
OR course.title LIKE "'.$needle.'%" )';
if ($type=='single') {
$sql = 'SELECT course.code, course.visual_code, course.title, session_rel_course.id_session
FROM '.$tbl_course.' course
LEFT JOIN '.$tbl_session_rel_course.' session_rel_course
ON course.code = session_rel_course.course_code
AND session_rel_course.id_session = '.intval($id_session).'
INNER JOIN '.$tbl_course_rel_access_url.' url_course ON (url_course.course_code=course.code)
WHERE access_url_id = '.$access_url_id.' AND (course.visual_code LIKE "'.$needle.'%"
OR course.title LIKE "'.$needle.'%" )';
} else {
$sql = 'SELECT course.code, course.visual_code, course.title
FROM '.$tbl_course.' course, '.$tbl_course_rel_access_url.' url_course
WHERE url_course.course_code=course.code AND access_url_id = '.$access_url_id.'
AND course.visual_code LIKE "'.$needle.'%" '.$cond_course_code.' ORDER BY course.code ';
}
}
}
$rs = api_sql_query($sql, __FILE__, __LINE__);
$rs = api_sql_query($sql, __FILE__, __LINE__);
$course_list = array();
while($course = Database :: fetch_array($rs)) {
$course_list[] = $course['code'];
$course_title=str_replace("'","\'",$course_title);
$return .= '< a href = "#" onclick = "add_course_to_session(\''.$course['code'].'\',\''.$course_title.' ('.$course['visual_code'].')'.'\')" > '.$course['title'].' ('.$course['visual_code'].')< / a > < br / > ';
if ($type=='single') {
while($course = Database :: fetch_array($rs)) {
$course_list[] = $course['code'];
$course_title=str_replace("'","\'",$course_title);
$return .= '< a href = "#" onclick = "add_course_to_session(\''.$course['code'].'\',\''.$course_title.' ('.$course['visual_code'].')'.'\')" > '.$course['title'].' ('.$course['visual_code'].')< / a > < br / > ';
}
$xajax_response -> addAssign('ajax_list_courses_single','innerHTML',utf8_encode($return));
} else {
$return .= '< select id = "origin" name = "NoSessionCoursesList[]" multiple = "multiple" size = "20" style = "width:300px;" > ';
while($course = Database :: fetch_array($rs)) {
$course_list[] = $course['code'];
$course_title=str_replace("'","\'",$course_title);
$return .= '< option value = "'.$course['code'].'" > '.$course['title'].' ('.$course['visual_code'].')< / option > ';
}
$return .= '< / select > ';
$xajax_response -> addAssign('ajax_list_courses_multiple','innerHTML',utf8_encode($return));
}
}
$_SESSION['course_list'] = $course_list;
$xajax_response -> addAssign('ajax_list_courses','innerHTML',utf8_encode($return));
}
$_SESSION['course_list'] = $course_list;
return $xajax_response;
}
$xajax -> processRequests();
@ -134,7 +182,7 @@ $htmlHeadXtra[] = '
function add_course_to_session (code, content) {
document.getElementById("course_to_add").value = "";
document.getElementById("ajax_list_courses").innerHTML = "";
document.getElementById("ajax_list_courses_single ").innerHTML = "";
destination = document.getElementById("destination");
@ -355,26 +403,43 @@ if(!empty($errorMsg))
< td width = "10%" > < / td >
< td align = "center" width = "45%" >< b > <?php echo get_lang ( 'CourseListInSession' ) ?> :</ b ></ td >
< / tr >
<?php if ( $add_type == 'multiple' ) { ?>
< tr > < td width = "45%" align = "center" >
<?php echo get_lang ( 'FirstLetterCourse' ); ?> :
< select name = "firstLetterCourse" onchange = "xajax_search_courses(this.value,'multiple')" >
< option value = "%" > --< / option >
<?php
echo Display :: get_alphabet_options();
echo Display :: get_numeric_options(0,9,'');
?>
< / select >
< / td >
< td > < / td > < / tr >
<?php } ?>
< tr >
< td width = "45%" align = "center" >
<?php
if($ajax_search){
if(!($add_type == 'multiple') ){
?>
< input type = "text" id = "course_to_add" onkeyup = "xajax_search_courses(this.value)" / >
< div id = "ajax_list_courses" > < / div >
< input type = "text" id = "course_to_add" onkeyup = "xajax_search_courses(this.value,'single' )" / >
< div id = "ajax_list_courses_single " > < / div >
<?php
}
else
{
?> < select id = "origin" name = "NoSessionCoursesList[]" multiple = "multiple" size = "20" style = "width:300px;" > <?php
?>
< div id = "ajax_list_courses_multiple" >
< select id = "origin" name = "NoSessionCoursesList[]" multiple = "multiple" size = "20" style = "width:300px;" > <?php
foreach($nosessionCourses as $enreg)
{
?>
< option value = " <?php echo $enreg [ 'code' ]; ?> " <?php if ( in_array ( $enreg [ 'code' ], $CourseList )) echo 'selected="selected"' ; ?> > <?php echo $enreg [ 'title' ] . ' (' . $enreg [ 'visual_code' ] . ')' ; ?> </ option >
<?php
}
?> </ select > <?php
?> </ select ></ div > <?php
}
unset($nosessionCourses);
?>