|
|
|
@ -164,8 +164,9 @@ class SessionManager { |
|
|
|
|
$tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY); |
|
|
|
|
$tbl_user = Database::get_main_table(TABLE_MAIN_USER); |
|
|
|
|
|
|
|
|
|
$where = ''; |
|
|
|
|
$where = 'WHERE 1=1 '; |
|
|
|
|
$user_id = api_get_user_id(); |
|
|
|
|
|
|
|
|
|
if (api_is_session_admin()==true) { |
|
|
|
|
$where.=" WHERE s.session_admin_id = $user_id "; |
|
|
|
|
} |
|
|
|
@ -181,6 +182,8 @@ class SessionManager { |
|
|
|
|
$table_access_url_rel_session= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION); |
|
|
|
|
$access_url_id = api_get_current_access_url_id(); |
|
|
|
|
if ($access_url_id != -1) { |
|
|
|
|
$where.= " AND ar.access_url_id = $access_url_id "; |
|
|
|
|
|
|
|
|
|
$query_rows = "SELECT count(*) as total_rows |
|
|
|
|
FROM $tbl_session s |
|
|
|
|
LEFT JOIN $tbl_session_category sc ON s.session_category_id = sc.id |
|
|
|
@ -199,111 +202,109 @@ class SessionManager { |
|
|
|
|
* Gets the admin session list callback of the admin/session_list.php page |
|
|
|
|
* @param array order and limit keys |
|
|
|
|
*/ |
|
|
|
|
public function get_sessions_admin($options) { |
|
|
|
|
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); |
|
|
|
|
$tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY); |
|
|
|
|
$tbl_user = Database::get_main_table(TABLE_MAIN_USER); |
|
|
|
|
|
|
|
|
|
$where = 'WHERE 1=1 '; |
|
|
|
|
$user_id = api_get_user_id(); |
|
|
|
|
if (api_is_session_admin()==true) { |
|
|
|
|
$where.=" AND s.session_admin_id = $user_id "; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$coach_name = " CONCAT (u.lastname , ' ', u.firstname) as coach_name "; |
|
|
|
|
|
|
|
|
|
if (api_is_western_name_order()) { |
|
|
|
|
$coach_name = " CONCAT (u.firstname, ' ', u.lastname) as coach_name "; |
|
|
|
|
} |
|
|
|
|
public function get_sessions_admin($options) { |
|
|
|
|
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); |
|
|
|
|
$tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY); |
|
|
|
|
$tbl_user = Database::get_main_table(TABLE_MAIN_USER); |
|
|
|
|
|
|
|
|
|
$today = api_get_utc_datetime(); |
|
|
|
|
$today = api_strtotime($today); |
|
|
|
|
|
|
|
|
|
$today = date('Y-m-d', $today); |
|
|
|
|
|
|
|
|
|
$select = "SELECT * FROM (SELECT |
|
|
|
|
IF ( |
|
|
|
|
(s.date_start <= '$today' AND '$today' < s.date_end) OR |
|
|
|
|
(s.date_start = '0000-00-00' AND s.date_end = '0000-00-00' ) OR |
|
|
|
|
(s.date_start <= '$today' AND '0000-00-00' = s.date_end) OR |
|
|
|
|
('$today' < s.date_end AND '0000-00-00' = s.date_start) |
|
|
|
|
, 1, 0) |
|
|
|
|
as session_active, |
|
|
|
|
s.name, nbr_courses, s.date_start, s.date_end, $coach_name, sc.name as category_name, s.visibility, u.user_id, s.id"; |
|
|
|
|
|
|
|
|
|
$query = "$select FROM $tbl_session s |
|
|
|
|
LEFT JOIN $tbl_session_category sc ON s.session_category_id = sc.id |
|
|
|
|
INNER JOIN $tbl_user u ON s.id_coach = u.user_id ". |
|
|
|
|
$where; |
|
|
|
|
|
|
|
|
|
if ($_configuration['multiple_access_urls']) { |
|
|
|
|
$table_access_url_rel_session= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION); |
|
|
|
|
$access_url_id = api_get_current_access_url_id(); |
|
|
|
|
if ($access_url_id != -1) { |
|
|
|
|
$where.= " AND ar.access_url_id = $access_url_id "; |
|
|
|
|
$query = "$select |
|
|
|
|
FROM $tbl_session s |
|
|
|
|
LEFT JOIN $tbl_session_category sc ON s.session_category_id = sc.id |
|
|
|
|
INNER JOIN $tbl_user u ON s.id_coach = u.user_id |
|
|
|
|
INNER JOIN $table_access_url_rel_session ar ON ar.session_id = s.id |
|
|
|
|
$where"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
$query .= ") AS session_table"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!empty($options['where'])) { |
|
|
|
|
$query .= ' WHERE '.$options['where']; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$query .= " ORDER BY ".$options['order']." LIMIT ".$options['limit']; |
|
|
|
|
|
|
|
|
|
// echo $query; |
|
|
|
|
$result = Database::query($query); |
|
|
|
|
$formatted_sessions = array(); |
|
|
|
|
if (Database::num_rows($result)) { |
|
|
|
|
$sessions = Database::store_result($result); |
|
|
|
|
foreach ($sessions as $session) { |
|
|
|
|
$session['name'] = Display::url($session['name'], "resume_session.php?id_session=".$session['id']); |
|
|
|
|
|
|
|
|
|
$session['coach_name'] = Display::url($session['coach_name'], "user_information.php?user_id=".$session['user_id']); |
|
|
|
|
|
|
|
|
|
if ($session['date_start'] == '0000-00-00' && $session['date_end'] == '0000-00-00') { |
|
|
|
|
// $session['session_active'] = 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($session['session_active'] == 1) { |
|
|
|
|
$session['session_active'] = Display::return_icon('accept.png', get_lang('Active'), array(), 22); |
|
|
|
|
} else { |
|
|
|
|
$session['session_active'] = Display::return_icon('error.png', get_lang('Inactive'), array(), 22); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($session['date_start'] == '0000-00-00') { |
|
|
|
|
$session['date_start'] = ''; |
|
|
|
|
} |
|
|
|
|
if ($session['date_end'] == '0000-00-00') { |
|
|
|
|
$session['date_end'] = ''; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch ($session['visibility']) { |
|
|
|
|
case SESSION_VISIBLE_READ_ONLY: //1 |
|
|
|
|
$session['visibility'] = get_lang('ReadOnly'); |
|
|
|
|
break; |
|
|
|
|
case SESSION_VISIBLE: //2 |
|
|
|
|
$session['visibility'] = get_lang('Visible'); |
|
|
|
|
break; |
|
|
|
|
case SESSION_INVISIBLE: //3 |
|
|
|
|
$session['visibility'] = api_ucfirst(get_lang('Invisible')); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
$formatted_sessions[] = $session; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return $formatted_sessions; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$where = 'WHERE 1=1 '; |
|
|
|
|
$user_id = api_get_user_id(); |
|
|
|
|
if (api_is_session_admin()==true) { |
|
|
|
|
$where.=" AND s.session_admin_id = $user_id "; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$coach_name = " CONCAT (u.lastname , ' ', u.firstname) as coach_name "; |
|
|
|
|
|
|
|
|
|
if (api_is_western_name_order()) { |
|
|
|
|
$coach_name = " CONCAT (u.firstname, ' ', u.lastname) as coach_name "; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$today = api_get_utc_datetime(); |
|
|
|
|
$today = api_strtotime($today); |
|
|
|
|
$today = date('Y-m-d', $today); |
|
|
|
|
|
|
|
|
|
$select = "SELECT * FROM (SELECT |
|
|
|
|
IF ( |
|
|
|
|
(s.date_start <= '$today' AND '$today' < s.date_end) OR |
|
|
|
|
(s.date_start = '0000-00-00' AND s.date_end = '0000-00-00' ) OR |
|
|
|
|
(s.date_start <= '$today' AND '0000-00-00' = s.date_end) OR |
|
|
|
|
('$today' < s.date_end AND '0000-00-00' = s.date_start) |
|
|
|
|
, 1, 0) |
|
|
|
|
as session_active, |
|
|
|
|
s.name, nbr_courses, s.date_start, s.date_end, $coach_name, sc.name as category_name, s.visibility, u.user_id, s.id"; |
|
|
|
|
|
|
|
|
|
$query = "$select FROM $tbl_session s |
|
|
|
|
LEFT JOIN $tbl_session_category sc ON s.session_category_id = sc.id |
|
|
|
|
INNER JOIN $tbl_user u ON s.id_coach = u.user_id ". |
|
|
|
|
$where; |
|
|
|
|
global $_configuration; |
|
|
|
|
if ($_configuration['multiple_access_urls']) { |
|
|
|
|
$table_access_url_rel_session= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION); |
|
|
|
|
$access_url_id = api_get_current_access_url_id(); |
|
|
|
|
if ($access_url_id != -1) { |
|
|
|
|
$where.= " AND ar.access_url_id = $access_url_id "; |
|
|
|
|
$query = "$select |
|
|
|
|
FROM $tbl_session s |
|
|
|
|
LEFT JOIN $tbl_session_category sc ON s.session_category_id = sc.id |
|
|
|
|
INNER JOIN $tbl_user u ON s.id_coach = u.user_id |
|
|
|
|
INNER JOIN $table_access_url_rel_session ar ON ar.session_id = s.id |
|
|
|
|
$where"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
$query .= ") AS session_table"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!empty($options['where'])) { |
|
|
|
|
$query .= ' WHERE '.$options['where']; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$query .= " ORDER BY ".$options['order']." LIMIT ".$options['limit']; |
|
|
|
|
|
|
|
|
|
// echo $query; |
|
|
|
|
$result = Database::query($query); |
|
|
|
|
$formatted_sessions = array(); |
|
|
|
|
if (Database::num_rows($result)) { |
|
|
|
|
$sessions = Database::store_result($result); |
|
|
|
|
foreach ($sessions as $session) { |
|
|
|
|
$session['name'] = Display::url($session['name'], "resume_session.php?id_session=".$session['id']); |
|
|
|
|
|
|
|
|
|
$session['coach_name'] = Display::url($session['coach_name'], "user_information.php?user_id=".$session['user_id']); |
|
|
|
|
|
|
|
|
|
if ($session['date_start'] == '0000-00-00' && $session['date_end'] == '0000-00-00') { |
|
|
|
|
// $session['session_active'] = 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($session['session_active'] == 1) { |
|
|
|
|
$session['session_active'] = Display::return_icon('accept.png', get_lang('Active'), array(), 22); |
|
|
|
|
} else { |
|
|
|
|
$session['session_active'] = Display::return_icon('error.png', get_lang('Inactive'), array(), 22); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($session['date_start'] == '0000-00-00') { |
|
|
|
|
$session['date_start'] = ''; |
|
|
|
|
} |
|
|
|
|
if ($session['date_end'] == '0000-00-00') { |
|
|
|
|
$session['date_end'] = ''; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch ($session['visibility']) { |
|
|
|
|
case SESSION_VISIBLE_READ_ONLY: //1 |
|
|
|
|
$session['visibility'] = get_lang('ReadOnly'); |
|
|
|
|
break; |
|
|
|
|
case SESSION_VISIBLE: //2 |
|
|
|
|
$session['visibility'] = get_lang('Visible'); |
|
|
|
|
break; |
|
|
|
|
case SESSION_INVISIBLE: //3 |
|
|
|
|
$session['visibility'] = api_ucfirst(get_lang('Invisible')); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
$formatted_sessions[] = $session; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return $formatted_sessions; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Creates a new course code based in given code |
|
|
|
|