$sql = 'SELECT name FROM '.$tbl_session_category.' WHERE id = "'.intval($session['session_category_id']).'"';
$sql = 'SELECT name FROM '.$tbl_session_category.' WHERE id = "'.intval($session['session_category_id']).'"';
$rs = api_sql_query($sql, __FILE__, __LINE__);
$rs = Database::query($sql, __FILE__, __LINE__);
$session_category = '';
$session_category = '';
if(mysql_num_rows($rs)>0) {
if(mysql_num_rows($rs)>0) {
$rows_session_category = api_store_result($rs);
$rows_session_category = api_store_result($rs);
@ -213,30 +213,30 @@ else {
$courses=Database::store_result($result);
$courses=Database::store_result($result);
foreach($courses as $course){
foreach($courses as $course){
//select the number of users
//select the number of users
$sql = " SELECT count(*) FROM $tbl_session_rel_user sru, $tbl_session_rel_course_rel_user srcru
$sql = " SELECT count(*) FROM $tbl_session_rel_user sru, $tbl_session_rel_course_rel_user srcru
WHERE srcru.id_user = sru.id_user AND srcru.course_code = '".Database::escape_string($course['code'])."'
WHERE srcru.id_user = sru.id_user AND srcru.course_code = '".Database::escape_string($course['code'])."'
AND srcru.id_session = '".intval($id_session)."'";
AND srcru.id_session = '".intval($id_session)."'";
$rs = api_sql_query($sql, __FILE__, __LINE__);
$rs = Database::query($sql, __FILE__, __LINE__);
$course['nbr_users'] = mysql_result($rs,0,0);
$course['nbr_users'] = mysql_result($rs,0,0);
// Get coachs of the courses in session
// Get coachs of the courses in session
$sql = "SELECT user.lastname,user.firstname,user.username FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user
$sql = "SELECT user.lastname,user.firstname,user.username FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user
WHERE session_rcru.id_user = user.user_id AND session_rcru.id_session = '".intval($id_session)."' AND session_rcru.course_code ='".Database::escape_string($course['code'])."' AND session_rcru.status=2";
WHERE session_rcru.id_user = user.user_id AND session_rcru.id_session = '".intval($id_session)."' AND session_rcru.course_code ='".Database::escape_string($course['code'])."' AND session_rcru.status=2";
$result = Database::query("SELECT * FROM $course_tool_table WHERE visibility = '1' AND (category = 'authoring' OR category = 'interaction') $condition_session ORDER BY id",__FILE__,__LINE__);
$result = Database::query("SELECT * FROM $course_tool_table WHERE visibility = '1' AND (category = 'authoring' OR category = 'interaction') $condition_session ORDER BY id",__FILE__,__LINE__);
$colLink ="##003399";
$colLink ="##003399";
@ -219,11 +219,11 @@ function show_tools_category($course_tool_category)
$lnk = '';
$lnk = '';
foreach($all_tools_list as $toolsRow)
foreach($all_tools_list as $toolsRow)
{
{
if (api_get_session_id()!=0 && in_array($toolsRow['name'],array('course_maintenance','course_setting'))) {
if (api_get_session_id()!=0 && in_array($toolsRow['name'],array('course_maintenance','course_setting'))) {
continue;
continue;
}
}
if(!($i%2))
if(!($i%2))
{echo "<trvalign=\"top\">\n";}
{echo "<trvalign=\"top\">\n";}
@ -255,7 +255,7 @@ function show_tools_category($course_tool_category)
}
}
}
}
// Both checks are necessary as is_platform_admin doesn't take student view into account
// Both checks are necessary as is_platform_admin doesn't take student view into account
if( $is_platform_admin && $is_allowed_to_edit)
if( $is_platform_admin && $is_allowed_to_edit)
{
{
@ -348,10 +348,10 @@ function show_tools_category($course_tool_category)
if (!empty($this->course->type) && $this->course->type=='partial') {
if (!empty($this->course->type) && $this->course->type=='partial') {
$sql = 'SELECT * FROM '.$table_doc.' d, '.$table_prop.' p WHERE tool = \''.TOOL_DOCUMENT.'\' AND p.ref = d.id AND p.visibility != 2 AND path NOT LIKE \'/images/gallery%\' AND session_id = '.$session_id.' ORDER BY path';
$sql = 'SELECT * FROM '.$table_doc.' d, '.$table_prop.' p WHERE tool = \''.TOOL_DOCUMENT.'\' AND p.ref = d.id AND p.visibility != 2 AND path NOT LIKE \'/images/gallery%\' AND session_id = '.$session_id.' ORDER BY path';
} else {
} else {
$sql = 'SELECT * FROM '.$table_doc.' d, '.$table_prop.' p WHERE tool = \''.TOOL_DOCUMENT.'\' AND p.ref = d.id AND p.visibility != 2 AND session_id = '.$session_id.' ORDER BY path';
$sql = 'SELECT * FROM '.$table_doc.' d, '.$table_prop.' p WHERE tool = \''.TOOL_DOCUMENT.'\' AND p.ref = d.id AND p.visibility != 2 AND session_id = '.$session_id.' ORDER BY path';
if (!empty($this->course->type) && $this->course->type=='partial')
if (!empty($this->course->type) && $this->course->type=='partial')
$sql = 'SELECT * FROM '.$table_doc.' d, '.$table_prop.' p WHERE tool = \''.TOOL_DOCUMENT.'\' AND p.ref = d.id AND p.visibility != 2 AND path NOT LIKE \'/images/gallery%\' ORDER BY path';
$sql = 'SELECT * FROM '.$table_doc.' d, '.$table_prop.' p WHERE tool = \''.TOOL_DOCUMENT.'\' AND p.ref = d.id AND p.visibility != 2 AND path NOT LIKE \'/images/gallery%\' ORDER BY path';
else
else
$sql = 'SELECT * FROM '.$table_doc.' d, '.$table_prop.' p WHERE tool = \''.TOOL_DOCUMENT.'\' AND p.ref = d.id AND p.visibility != 2 ORDER BY path';
$sql = 'SELECT * FROM '.$table_doc.' d, '.$table_prop.' p WHERE tool = \''.TOOL_DOCUMENT.'\' AND p.ref = d.id AND p.visibility != 2 ORDER BY path';
$sql = "SELECT * FROM $table l, $table_prop p WHERE p.ref=l.id AND p.tool = '".TOOL_LINK."' AND p.visibility != 2 AND session_id = '$session_id' ORDER BY l.display_order";
$sql = "SELECT * FROM $table l, $table_prop p WHERE p.ref=l.id AND p.tool = '".TOOL_LINK."' AND p.visibility != 2 AND session_id = '$session_id' ORDER BY l.display_order";
$sql = 'SELECT * FROM '.$table_qui.' WHERE active >=0 AND session_id = '.$session_id; //select only quizzes with active = 0 or 1 (not -1 which is for deleted quizzes)
$sql = 'SELECT * FROM '.$table_qui.' WHERE active >=0 AND session_id = '.$session_id; //select only quizzes with active = 0 or 1 (not -1 which is for deleted quizzes)
$sql = "INSERT INTO ".$table_glossary." SET name = '".Database::escape_string($glossary->name)."', description = '".Database::escape_string($glossary->description)."', display_order='".Database::escape_string($glossary->display_order)."' $condition_session ";
$sql = "INSERT INTO ".$table_glossary." SET name = '".Database::escape_string($glossary->name)."', description = '".Database::escape_string($glossary->description)."', display_order='".Database::escape_string($glossary->display_order)."' $condition_session ";
$condition_date_end = " AND (CURDATE() > (SELECT adddate(date_end,nb_days_access_after_end) FROM $tbl_session WHERE id = $session_id) AND date_end != '0000-00-00') ";
$condition_date_end = " AND (CURDATE() > (SELECT adddate(date_end,nb_days_access_after_end) FROM $tbl_session WHERE id = $session_id) AND date_end != '0000-00-00') ";
} else {
} else {
@ -1455,9 +1455,9 @@ function api_get_session_visibility($session_id) {
}
}
$sql = "SELECT visibility FROM $tbl_session
$sql = "SELECT visibility FROM $tbl_session
WHERE id = $session_id $condition_date_end "; // session is old and is not unlimited
WHERE id = $session_id $condition_date_end "; // session is old and is not unlimited
$sql = "select 1 FROM $tbl_session WHERE $session_id IN (SELECT s.id FROM $tbl_session s, $tbl_session_category sc WHERE s.session_category_id = sc.id AND sc.name LIKE '%$category_name' )";
$sql = "select 1 FROM $tbl_session WHERE $session_id IN (SELECT s.id FROM $tbl_session s, $tbl_session_category sc WHERE s.session_category_id = sc.id AND sc.name LIKE '%$category_name' )";
$rs = Database::query($sql,__FILE__,__LINE__);
$rs = Database::query($sql,__FILE__,__LINE__);
if (Database::num_rows($rs) > 0) {
if (Database::num_rows($rs) > 0) {
return true;
return true;
} else {
} else {
@ -1912,9 +1912,9 @@ function api_display_debug_info($debug_info) {
*/
*/
function api_is_allowed_to_edit($tutor=false,$coach=false,$session_coach = false) {
function api_is_allowed_to_edit($tutor=false,$coach=false,$session_coach = false) {
public static function create_session ($sname,$syear_start,$smonth_start,$sday_start,$syear_end,$smonth_end,$sday_end,$snb_days_acess_before,$snb_days_acess_after,$nolimit,$coach_username, $id_session_category,$id_visibility) {
public static function create_session ($sname,$syear_start,$smonth_start,$sday_start,$syear_end,$smonth_end,$sday_end,$snb_days_acess_before,$snb_days_acess_after,$nolimit,$coach_username, $id_session_category,$id_visibility) {
$sql = "SELECT id_user FROM $tbl_session_rel_user WHERE id_session = '$session_id' AND id_user = '$user_id'";
$sql = "SELECT id_user FROM $tbl_session_rel_user WHERE id_session = '$session_id' AND id_user = '$user_id'";
$res = Database::query($sql,__FILE__,__LINE__);
$res = Database::query($sql,__FILE__,__LINE__);
if (Database::num_rows($res) > 0) {
if (Database::num_rows($res) > 0) {
// The user don't be a coach now
// The user don't be a coach now
$sql = "UPDATE $tbl_session_rel_course_rel_user SET status = 0 WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id' ";
$sql = "UPDATE $tbl_session_rel_course_rel_user SET status = 0 WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id' ";
// First check if the user is registered in the course
// First check if the user is registered in the course
$sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id'";
$sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id'";
$sql = "UPDATE $tbl_session_rel_course_rel_user SET status = 2 WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id' ";
$sql = "UPDATE $tbl_session_rel_course_rel_user SET status = 2 WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id' ";
// this query is very similar to the above query, but it will check the session_rel_course_user table if there are courses registered to our user or not
// this query is very similar to the above query, but it will check the session_rel_course_user table if there are courses registered to our user or not
FROM $tbl_session_course_user as session_course_user INNER JOIN $tbl_course AS course
FROM $tbl_session_course_user as session_course_user INNER JOIN $tbl_course AS course
ON course.code = session_course_user.course_code AND session_course_user.id_session = $id_session INNER JOIN $tbl_session as session ON session_course_user.id_session = session.id
ON course.code = session_course_user.course_code AND session_course_user.id_session = $id_session INNER JOIN $tbl_session as session ON session_course_user.id_session = session.id
INNER JOIN $tbl_session_course as session_course
INNER JOIN $tbl_session_course as session_course
LEFT JOIN $tbl_user as user ON user.user_id = session_course.id_coach
LEFT JOIN $tbl_user as user ON user.user_id = session_course.id_coach
WHERE session_course_user.id_user = $user_id ORDER BY i";
WHERE session_course_user.id_user = $user_id ORDER BY i";
$join_access_url= "LEFT JOIN $tbl_url_course url_rel_course ON url_rel_course.course_code= course.code";
$join_access_url= "LEFT JOIN $tbl_url_course url_rel_course ON url_rel_course.course_code= course.code";
$where_access_url=" AND access_url_id = $access_url_id ";
$where_access_url=" AND access_url_id = $access_url_id ";
}
}
}
}
// variable initialisation
// variable initialisation
$personal_course_list_sql = '';
$personal_course_list_sql = '';
$personal_course_list = array();
$personal_course_list = array();
$courses = array();
$courses = array();
// this query is very similar to the above query, but it will check the session_rel_course_user table if there are courses registered to our user or not
// this query is very similar to the above query, but it will check the session_rel_course_user table if there are courses registered to our user or not
$personal_course_list_sql = "SELECT distinct scu.course_code as code
$personal_course_list_sql = "SELECT distinct scu.course_code as code
$sql = " SELECT session.id_coach, session_admin_id FROM $tbl_session session,$tbl_session_course_user session_rcru
$sql = " SELECT session.id_coach, session_admin_id FROM $tbl_session session,$tbl_session_course_user session_rcru
WHERE session_rcru.id_session = session.id AND session_rcru.course_code = '$_cid' AND session_rcru.id_user='{$_user['user_id']}' AND session_rcru.status = 2";
WHERE session_rcru.id_session = session.id AND session_rcru.course_code = '$_cid' AND session_rcru.id_user='{$_user['user_id']}' AND session_rcru.status = 2";
$form = new FormValidator('search_simple','get',api_get_path(WEB_CODE_PATH).'tracking/courseLog.php?'.api_get_cidreq().'&studentlist=resources','','width=200px',false);
$form = new FormValidator('search_simple','get',api_get_path(WEB_CODE_PATH).'tracking/courseLog.php?'.api_get_cidreq().'&studentlist=resources','','width=200px',false);
$renderer =& $form->defaultRenderer();
$renderer =& $form->defaultRenderer();
@ -801,16 +801,16 @@ if ($_GET['studentlist'] == 'false') {
echo '<divclass="actions">';
echo '<divclass="actions">';
$form->display();
$form->display();
echo '</div>';
echo '</div>';
$table = new SortableTable('resources', 'count_item_resources', 'get_item_resources_data', 5, 20, 'DESC');
$table = new SortableTable('resources', 'count_item_resources', 'get_item_resources_data', 5, 20, 'DESC');
$sql='UPDATE '.$tbl_wiki.' SET visibility="'.Database::escape_string($status_visibility).'" WHERE reflink="'.html_entity_decode(Database::escape_string(stripslashes(urldecode($page)))).'" AND '.$groupfilter;
$sql='UPDATE '.$tbl_wiki.' SET visibility="'.Database::escape_string($status_visibility).'" WHERE reflink="'.html_entity_decode(Database::escape_string(stripslashes(urldecode($page)))).'" AND '.$groupfilter;
@ -1195,21 +1187,14 @@ function check_visibility_page()
}
}
//show status
//show status
if ($row['visibility']=="1" || ($row['content']=='' AND $row['title']=='' AND $page=='index'))
return $row['visibility'];
{
return false;
}
else
{
return true;
}
}
}
/**
/**
* Visibility discussion
* Visibility discussion
* @author Juan Carlos Raña <herodoto@telefonica.net>
* @author Juan Carlos Raña <herodoto@telefonica.net>
* return current database status of discuss visibility and change it if get action page
*/
*/
function check_visibility_discuss()
function check_visibility_discuss()
{
{
@ -1225,18 +1210,17 @@ function check_visibility_discuss()
$row=Database::fetch_array($result);
$row=Database::fetch_array($result);
$status_visibility_disc=$row['visibility_disc'];
$status_visibility_disc=$row['visibility_disc'];
$id=$row['id']; //need ? check. TODO
//change status
//change status
if ($_GET['actionpage']=='visibility_disc' && (api_is_allowed_to_edit(false,true) || api_is_platform_admin()))
if (api_is_allowed_to_edit(false,true) || api_is_platform_admin())
{
{
if ($row['visibility_disc']==1)
if ($_GET['actionpage']=='showdisc' && $status_visibility_disc==0)
{
$status_visibility_disc=0;
}
else
{
{
$status_visibility_disc=1;
$status_visibility_disc=1;
}
if ($_GET['actionpage']=='hidedisc' && $status_visibility_disc==1)
{
$status_visibility_disc=0;
}
}
$sql='UPDATE '.$tbl_wiki.' SET visibility_disc="'.Database::escape_string($status_visibility_disc).'" WHERE reflink="'.html_entity_decode(Database::escape_string(stripslashes(urldecode($page)))).'" AND '.$groupfilter;
$sql='UPDATE '.$tbl_wiki.' SET visibility_disc="'.Database::escape_string($status_visibility_disc).'" WHERE reflink="'.html_entity_decode(Database::escape_string(stripslashes(urldecode($page)))).'" AND '.$groupfilter;
@ -1250,22 +1234,14 @@ function check_visibility_discuss()
}
}
//show status
//show status
return $row['visibility_disc'];
if ($row['visibility_disc']==1 || ($row['content']=='' AND $row['title']=='' AND $page=='index'))
{
return false;
}
else
{
return true;
}
}
}
/**
/**
* Lock add discussion
* Lock add discussion
* @author Juan Carlos Raña <herodoto@telefonica.net>
* @author Juan Carlos Raña <herodoto@telefonica.net>
* return current database status of lock dicuss and change if get action
*/
*/
function check_addlock_discuss()
function check_addlock_discuss()
{
{
@ -1280,18 +1256,18 @@ function check_addlock_discuss()
$row=Database::fetch_array($result);
$row=Database::fetch_array($result);
$status_addlock_disc=$row['addlock_disc'];
$status_addlock_disc=$row['addlock_disc'];
$id=$row['id']; //need ? check. TODO
//change status
//change status
if ($_GET['actionpage']=='addlock_disc' && (api_is_allowed_to_edit(null,true) || api_is_platform_admin()))
if (api_is_allowed_to_edit() || api_is_platform_admin())
{
{
if ($row['addlock_disc']==1)
{
if ($_GET['actionpage']=='lockdisc' && $status_addlock_disc==0)
$status_addlock_disc=0;
{
}
$status_addlock_disc=1;
else
}
if ($_GET['actionpage']=='unlockdisc' && $status_addlock_disc==1)
{
{
$status_addlock_disc=1;
$status_addlock_disc=0;
}
}
$sql='UPDATE '.$tbl_wiki.' SET addlock_disc="'.Database::escape_string($status_addlock_disc).'" WHERE reflink="'.html_entity_decode(Database::escape_string(stripslashes(urldecode($page)))).'" AND '.$groupfilter;
$sql='UPDATE '.$tbl_wiki.' SET addlock_disc="'.Database::escape_string($status_addlock_disc).'" WHERE reflink="'.html_entity_decode(Database::escape_string(stripslashes(urldecode($page)))).'" AND '.$groupfilter;
@ -1305,22 +1281,14 @@ function check_addlock_discuss()
}
}
//show status
//show status
return $row['addlock_disc'];
if ($row['addlock_disc']==1 || ($row['content']=='' AND $row['title']=='' AND $page=='index'))
{
return false;
}
else
{
return true;
}
}
}
/**
/**
* Lock rating discussion
* Lock rating discussion
* @author Juan Carlos Raña <herodoto@telefonica.net>
* @author Juan Carlos Raña <herodoto@telefonica.net>
* Return current database status of rating discuss and change it if get action
*/
*/
function check_ratinglock_discuss()
function check_ratinglock_discuss()
{
{
@ -1336,19 +1304,19 @@ function check_ratinglock_discuss()
$row=Database::fetch_array($result);
$row=Database::fetch_array($result);
$status_ratinglock_disc=$row['ratinglock_disc'];
$status_ratinglock_disc=$row['ratinglock_disc'];
$id=$row['id']; //need ? check. TODO
//change status
//change status
if ($_GET['actionpage']=='ratinglock_disc' && (api_is_allowed_to_edit(false,true) || api_is_platform_admin()))
if (api_is_allowed_to_edit(false,true) || api_is_platform_admin())
{
{
if ($row['ratinglock_disc']==1)
if ($_GET['actionpage']=='lockrating' && $status_ratinglock_disc==0)
{
$status_ratinglock_disc=0;
}
else
{
{
$status_ratinglock_disc=1;
$status_ratinglock_disc=1;
}
}
if ($_GET['actionpage']=='unlockrating' && $status_ratinglock_disc==1)
{
$status_ratinglock_disc=0;
}
$sql='UPDATE '.$tbl_wiki.' SET ratinglock_disc="'.Database::escape_string($status_ratinglock_disc).'" WHERE reflink="'.html_entity_decode(Database::escape_string(stripslashes(urldecode($page)))).'" AND '.$groupfilter; //Visibility. Value to all,not only for the first
$sql='UPDATE '.$tbl_wiki.' SET ratinglock_disc="'.Database::escape_string($status_ratinglock_disc).'" WHERE reflink="'.html_entity_decode(Database::escape_string(stripslashes(urldecode($page)))).'" AND '.$groupfilter; //Visibility. Value to all,not only for the first
Database::query($sql,__FILE__,__LINE__);
Database::query($sql,__FILE__,__LINE__);
@ -1361,21 +1329,15 @@ function check_ratinglock_discuss()
}
}
//show status
//show status
if ($row['ratinglock_disc']==1 || ($row['content']=='' AND $row['title']=='' AND $page=='index'))
{
return false;
}
else
{
return true;
}
return $row['ratinglock_disc'];
}
}
/**
/**
* Notify page changes
* Notify page changes
* @author Juan Carlos Raña <herodoto@telefonica.net>
* @author Juan Carlos Raña <herodoto@telefonica.net>