1.10.x
Julio Montoya 10 years ago
commit 0213d7609e
  1. 4
      main/admin/ldap_import_students_to_session.php
  2. 10
      main/admin/user_information.php
  3. 4
      main/attendance/attendance_controller.php
  4. 12
      main/inc/ajax/model.ajax.php
  5. 16
      main/inc/lib/auth.lib.php
  6. 12
      main/inc/lib/course.lib.php
  7. 22
      main/inc/lib/display.lib.php
  8. 4
      main/inc/lib/social.lib.php
  9. 14
      main/inc/lib/tracking.lib.php
  10. 44
      main/inc/lib/usermanager.lib.php
  11. 40
      main/inc/lib/userportal.lib.php
  12. 2
      main/lang/english/trad4all.inc.php
  13. 2
      main/lang/french/trad4all.inc.php
  14. 2
      main/lang/spanish/trad4all.inc.php
  15. 16
      main/mySpace/myStudents.php
  16. 12
      main/session/index.php
  17. 2
      main/session/session_category_edit.php
  18. 6
      main/session/session_category_list.php
  19. 18
      main/session/session_export.php
  20. 12
      main/session/session_import.php
  21. 4
      main/session/session_list.php
  22. 8
      main/tracking/userLog.php
  23. 8
      main/tracking/userlogCSV.php
  24. 44
      main/user/resume_session.php
  25. 4
      main/user/session_list.php
  26. 80
      main/webservices/registration.soap.php
  27. 2
      plugin/advanced_subscription/cron/notify_by_mail.php
  28. 2
      plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php
  29. 2
      plugin/advanced_subscription/src/HookAdvancedSubscription.php
  30. 4
      plugin/buycourses/src/buy_course.lib.php
  31. 10
      plugin/buycourses/src/function.php
  32. 4
      plugin/dashboard/block_session/block_session.class.php
  33. 21
      src/Chamilo/CoreBundle/Migrations/Schema/V110/Version20150528103216.php
  34. 49
      tests/main/inc/lib/sessionmanager.lib.test.php
  35. 12
      whoisonlinesession.php

@ -73,7 +73,7 @@ elseif(!empty($annee) && empty($id_session))
echo '<select name="id_session">';
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$sql = "SELECT id,name,nbr_courses,date_start,date_end " .
$sql = "SELECT id,name,nbr_courses,access_start_date,access_end_date " .
" FROM $tbl_session ".
" ORDER BY name";
$result = Database::query($sql);
@ -81,7 +81,7 @@ elseif(!empty($annee) && empty($id_session))
$sessions=Database::store_result($result);
$nbr_results=count($sessions);
foreach($sessions as $row) {
echo '<option value="'.$row['id'].'">'.api_htmlentities($row['name']).' ('.$row['date_start'].' - '.$row['date_end'].')</option>';
echo '<option value="'.$row['id'].'">'.api_htmlentities($row['name']).' ('.$row['access_start_date'].' - '.$row['access_end_date'].')</option>';
}
echo '</select>';
echo '<input type="submit" value="'.get_lang('Submit').'">';

@ -204,16 +204,16 @@ if (count($sessions) > 0) {
}
}
if ($session_item['date_start'] == '0000-00-00') {
$session_item['date_start'] = null;
if ($session_item['access_start_date'] == '0000-00-00') {
$session_item['access_start_date'] = null;
}
if ($session_item['date_end'] == '0000-00-00') {
$session_item['date_end'] = null;
if ($session_item['access_end_date'] == '0000-00-00') {
$session_item['access_end_date'] = null;
}
$dates = array_filter(
array($session_item['date_start'], $session_item['date_end'])
array($session_item['access_start_date'], $session_item['access_end_date'])
);
$sessionInformation .= Display::page_subheader(

@ -627,8 +627,8 @@ class AttendanceController
} else {
if (!empty($sessionId)) {
$sessionInfo = api_get_session_info($sessionId);
$startDate = $sessionInfo['date_start'];
$endDate = $sessionInfo['date_end'];
$startDate = $sessionInfo['access_start_date'];
$endDate = $sessionInfo['access_end_date'];
}
}

@ -902,12 +902,12 @@ switch ($action) {
$count_users_in_session = count(SessionManager::get_users_by_session($session['id'], 0));
$session_date = array();
if (!empty($session['date_start']) && $session['date_start'] != '0000-00-00') {
$session_date[] = get_lang('From').' '.api_format_date($session['date_start'], DATE_FORMAT_SHORT);
if (!empty($session['access_start_date']) && $session['access_start_date'] != '0000-00-00') {
$session_date[] = get_lang('From').' '.api_format_date($session['access_start_date'], DATE_FORMAT_SHORT);
}
if (!empty($session['date_end']) && $session['date_end'] != '0000-00-00') {
$session_date[] = get_lang('Until').' '.api_format_date($session['date_end'], DATE_FORMAT_SHORT);
if (!empty($session['access_end_date']) && $session['access_end_date'] != '0000-00-00') {
$session_date[] = get_lang('Until').' '.api_format_date($session['access_end_date'], DATE_FORMAT_SHORT);
}
if (empty($session_date)) {
@ -958,8 +958,8 @@ switch ($action) {
'nbr_courses',
'nbr_users',
'category_name',
'date_start',
'date_end',
'access_start_date',
'access_end_date',
'coach_name',
'session_active',
'visibility'

@ -552,7 +552,7 @@ class Auth
$userId = api_get_user_id();
$limitFilter = getLimitFilterFromArray($limit);
$sql = "SELECT s.id, s.name, s.nbr_courses, s.nbr_users, s.date_start, s.date_end, u.lastname, u.firstname, u.username, description, show_description "
$sql = "SELECT s.id, s.name, s.nbr_courses, s.nbr_users, s.access_start_date, s.access_end_date, u.lastname, u.firstname, u.username, description, show_description "
. "FROM $sessionTable AS s "
. "INNER JOIN $userTable AS u "
. "ON s.id_coach = u.user_id "
@ -561,9 +561,9 @@ class Auth
if (!is_null($date)) {
$date = Database::escape_string($date);
$sql .= "AND ('$date' BETWEEN s.date_start AND s.date_end) "
. "OR (s.date_end = '0000-00-00') "
. "OR (s.date_start = '0000-00-00' AND s.date_end != '0000-00-00' AND s.date_end > '$date')";
$sql .= "AND ('$date' BETWEEN s.access_start_date AND s.access_end_date) "
. "OR (s.access_end_date = '0000-00-00') "
. "OR (s.access_start_date = '0000-00-00' AND s.access_end_date != '0000-00-00' AND s.access_end_date > '$date')";
}
// Add limit filter to do pagination
@ -598,10 +598,10 @@ class Auth
$date = Database::escape_string($date);
$dateFilter = '';
if (!empty($date)) {
$dateFilter = ' AND ("' . $date . '" BETWEEN s.date_start AND s.date_end) ' .
'OR (s.date_end = "0000-00-00") ' .
'OR (s.date_start = "0000-00-00" AND ' .
's.date_end != "0000-00-00" AND s.date_end > "' . $date . '") ';
$dateFilter = ' AND ("' . $date . '" BETWEEN s.access_start_date AND s.access_end_date) ' .
'OR (s.access_end_date = "0000-00-00") ' .
'OR (s.access_start_date = "0000-00-00" AND ' .
's.access_end_date != "0000-00-00" AND s.access_end_date > "' . $date . '") ';
}
$sql = "SELECT COUNT(*) FROM $sessionTable s WHERE 1 = 1 $dateFilter";
$res = Database::query($sql);

@ -1809,7 +1809,7 @@ class CourseManager
if (!empty($date_from) && !empty($date_to)) {
$date_from = Database::escape_string($date_from);
$date_to = Database::escape_string($date_to);
$sql_query .= " AND s.date_start >= '$date_from' AND s.date_end <= '$date_to'";
$sql_query .= " AND s.access_start_date >= '$date_from' AND s.access_end_date <= '$date_to'";
}
if ($session_id != 0) {
@ -3878,8 +3878,8 @@ class CourseManager
),
)
);
$date_start = $sess[$course_info['id_session']]['date_start'];
$date_end = $sess[$course_info['id_session']]['date_end'];
$date_start = $sess[$course_info['id_session']]['access_start_date'];
$date_end = $sess[$course_info['id_session']]['access_end_date'];
}
if (empty($now)) {
// maybe use api_get_utcdate() here?
@ -4044,7 +4044,7 @@ class CourseManager
$session['title'] = $course_info['session_name'];
$session_category_id = CourseManager::get_session_category_id_by_session_id($course_info['id_session']);
$session['category'] = $sessioncoach['name'];
if ($course_info['date_start'] == '0000-00-00') {
if ($course_info['access_start_date'] == '0000-00-00') {
//$session['dates'] = get_lang('WithoutTimeLimits');
$session['dates'] = '';
if (api_get_setting('show_session_coach') === 'true') {
@ -4053,7 +4053,7 @@ class CourseManager
}
$active = true;
} else {
$session ['dates'] = ' - ' . get_lang('From') . ' ' . $course_info['date_start'] . ' ' . get_lang('To') . ' ' . $course_info['date_end'];
$session ['dates'] = ' - ' . get_lang('From') . ' ' . $course_info['access_start_date'] . ' ' . get_lang('To') . ' ' . $course_info['access_end_date'];
if (api_get_setting('show_session_coach') === 'true') {
$session['coach'] = get_lang('GeneralCoach') . ': ' . api_get_person_name($sessioncoach['firstname'],
$sessioncoach['lastname']);
@ -5515,7 +5515,7 @@ class CourseManager
{
$dateConditional = ($startDate && $endDate) ?
" WHERE session_id IN (SELECT id FROM " . Database::get_main_table(TABLE_MAIN_SESSION) .
" WHERE date_start = '$startDate' AND date_end = '$endDate')" :
" WHERE access_start_date = '$startDate' AND access_end_date = '$endDate')" :
null;
$visibility = ($includeClosed ? '' : 'visibility NOT IN (0, 4) AND ');

@ -1508,8 +1508,8 @@ class Display
$session['coach'] = '';
$session['dates'] = '';
if ($session_info['date_end'] == '0000-00-00' &&
$session_info['date_start'] == '0000-00-00'
if ($session_info['access_end_date'] == '0000-00-00' &&
$session_info['access_start_date'] == '0000-00-00'
) {
if (api_get_setting('show_session_coach') === 'true') {
$session['coach'] = get_lang('GeneralCoach').': '.api_get_person_name($session_info['firstname'], $session_info['lastname']);
@ -1536,24 +1536,24 @@ class Display
} else {
$start = $stop = false;
$start_buffer = $stop_buffer = '';
if ($session_info['date_start'] == '0000-00-00') {
$session_info['date_start'] = '';
if ($session_info['access_start_date'] == '0000-00-00') {
$session_info['access_start_date'] = '';
} else {
$start = true;
$start_buffer = $session_info['date_start'];
$session_info['date_start'] = get_lang('From').' '.$session_info['date_start'];
$start_buffer = $session_info['access_start_date'];
$session_info['access_start_date'] = get_lang('From').' '.$session_info['access_start_date'];
}
if ($session_info['date_end'] == '0000-00-00') {
$session_info['date_end'] = '';
if ($session_info['access_end_date'] == '0000-00-00') {
$session_info['access_end_date'] = '';
} else {
$stop = true;
$stop_buffer = $session_info['date_end'];
$session_info['date_end'] = get_lang('Until').' '.$session_info['date_end'];
$stop_buffer = $session_info['access_end_date'];
$session_info['access_end_date'] = get_lang('Until').' '.$session_info['access_end_date'];
}
if ($start && $stop) {
$session['dates'] = Display::tag('i', sprintf(get_lang('FromDateXToDateY'), $start_buffer, $stop_buffer));
} else {
$session['dates'] = Display::tag('i', $session_info['date_start'].' '.$session_info['date_end']);
$session['dates'] = Display::tag('i', $session_info['access_start_date'].' '.$session_info['access_end_date']);
}
if ( api_get_setting('show_session_coach') === 'true' ) {

@ -537,14 +537,14 @@ class SocialManager extends UserManager
$session = array();
$session['title'] = $my_course['session_name'];
if ($my_course['date_start'] == '0000-00-00') {
if ($my_course['access_start_date'] == '0000-00-00') {
$session['dates'] = get_lang('WithoutTimeLimits');
if (api_get_setting('show_session_coach') === 'true') {
$session['coach'] = get_lang('GeneralCoach').': '.api_get_person_name($sessioncoach['firstname'], $sessioncoach['lastname']);
}
$active = true;
} else {
$session ['dates'] = ' - '.get_lang('From').' '.$my_course['date_start'].' '.get_lang('To').' '.$my_course['date_end'];
$session ['dates'] = ' - '.get_lang('From').' '.$my_course['access_start_date'].' '.get_lang('To').' '.$my_course['access_end_date'];
if (api_get_setting('show_session_coach') === 'true') {
$session['coach'] = get_lang('GeneralCoach').': '.api_get_person_name($sessioncoach['firstname'], $sessioncoach['lastname']);
}

@ -2998,8 +2998,8 @@ class Tracking
SELECT DISTINCT
id,
name,
date_start,
date_end
access_start_date,
access_end_date
FROM $tbl_session session INNER JOIN $tbl_session_rel_access_url session_rel_url
ON (session.id = session_rel_url.session_id)
WHERE
@ -3010,8 +3010,8 @@ class Tracking
SELECT DISTINCT
session.id,
session.name,
session.date_start,
session.date_end
session.access_start_date,
session.access_end_date
FROM $tbl_session as session
INNER JOIN $tbl_session_course_user as session_course_user
ON session.id = session_course_user.session_id AND
@ -3038,13 +3038,13 @@ class Tracking
if (!empty($sessions)) {
foreach ($sessions as & $session) {
if ($session['date_start'] == '0000-00-00') {
if ($session['access_start_date'] == '0000-00-00') {
$session['status'] = get_lang('SessionActive');
}
else {
$date_start = explode('-', $session['date_start']);
$date_start = explode('-', $session['access_start_date']);
$time_start = mktime(0, 0, 0, $date_start[1], $date_start[2], $date_start[0]);
$date_end = explode('-', $session['date_end']);
$date_end = explode('-', $session['access_end_date']);
$time_end = mktime(0, 0, 0, $date_end[1], $date_end[2], $date_end[0]);
if ($time_start < time() && time() < $time_end) {
$session['status'] = get_lang('SessionActive');

@ -2272,7 +2272,7 @@ class UserManager
*/
public static function get_sessions_by_category(
$user_id,
$is_time_over = false,
$is_time_over = true,
$ignore_visibility_for_admins = false
) {
// Database Table Definitions
@ -2290,14 +2290,14 @@ class UserManager
$sql = "SELECT DISTINCT
session.id,
session.name,
session.date_start,
session.date_end,
session.access_start_date,
session.access_end_date,
session_category_id,
session_category.name as session_category_name,
session_category.date_start session_category_date_start,
session_category.date_end session_category_date_end,
nb_days_access_before_beginning,
nb_days_access_after_end
coach_access_start_date,
coach_access_end_date
FROM $tbl_session as session
LEFT JOIN $tbl_session_category session_category
@ -2319,13 +2319,13 @@ class UserManager
// User portal filters:
if ($is_time_over) {
// History
if (isset($row['date_end']) && $row['date_end'] != '0000-00-00') {
if ($row['date_end'].' 23:59:59' > $now) {
if (isset($row['access_end_date']) && $row['access_end_date'] != '0000-00-00 00:00:00') {
if ($row['access_end_date'] > $now) {
continue;
}
}
if ($row['date_end'] == '0000-00-00') {
if ($row['access_end_date'] == '0000-00-00 00:00:00') {
continue;
}
} else {
@ -2333,8 +2333,8 @@ class UserManager
if (api_is_allowed_to_create_course()) {
// Teachers can access the session depending in the access_coach date
} else {
if (isset($row['date_end']) && $row['date_end'] != '0000-00-00') {
if ($row['date_end'].' 23:59:59' <= $now) {
if (isset($row['access_end_date']) && $row['access_end_date'] != '0000-00-00 00:00:00') {
if ($row['access_end_date'] <= $now) {
continue;
}
}
@ -2401,10 +2401,10 @@ class UserManager
$categories[$row['session_category_id']]['sessions'][$row['id']] = array(
'session_name' => $row['name'],
'session_id' => $row['id'],
'date_start' => $row['date_start'],
'date_end' => $row['date_end'],
'nb_days_access_before_beginning' => $row['nb_days_access_before_beginning'],
'nb_days_access_after_end' => $row['nb_days_access_after_end'],
'access_start_date' => $row['access_start_date'],
'access_end_date' => $row['access_end_date'],
'coach_access_start_date' => $row['coach_access_start_date'],
'coach_access_end_date' => $row['coach_access_end_date'],
'courses' => $courseList
);
}
@ -2500,7 +2500,7 @@ class UserManager
// Get the list of sessions where the user is subscribed
// This is divided into two different queries
$sessions = array();
$sql = "SELECT DISTINCT s.id, name, date_start, date_end
$sql = "SELECT DISTINCT s.id, name, access_start_date, access_end_date
FROM $tbl_session_user, $tbl_session s
WHERE (
session_id = s.id AND
@ -2508,7 +2508,7 @@ class UserManager
relation_type <> ".SESSION_RELATION_TYPE_RRHH."
)
$coachCourseConditions
ORDER BY date_start, date_end, name";
ORDER BY access_start_date, access_end_date, name";
$result = Database::query($sql);
if (Database::num_rows($result)>0) {
@ -2517,13 +2517,13 @@ class UserManager
}
}
$sql = "SELECT DISTINCT id, name, date_start, date_end
$sql = "SELECT DISTINCT id, name, access_start_date, access_end_date
FROM $tbl_session
WHERE (
id_coach = $user_id
)
$coachCourseConditions
ORDER BY date_start, date_end, name";
ORDER BY access_start_date, access_end_date, name";
$result = Database::query($sql);
if (Database::num_rows($result)>0) {
@ -2553,8 +2553,8 @@ class UserManager
email, course.course_language l,
1 sort,
category_code user_course_cat,
date_start,
date_end,
access_start_date,
access_end_date,
session.id as session_id,
session.name as session_name
FROM $tbl_session_course_user as session_course_user
@ -2596,8 +2596,8 @@ class UserManager
course.course_language l,
1 sort,
category_code user_course_cat,
date_start,
date_end,
access_start_date,
access_end_date,
session.id as session_id,
session.name as session_name,
IF((session_course_user.user_id = 3 AND session_course_user.status=2),'2', '5')

@ -1158,10 +1158,10 @@ class IndexManager
}
// Courses inside the current session.
$date_session_start = $session['date_start'];
$date_session_end = $session['date_end'];
$days_access_before_beginning = $session['nb_days_access_before_beginning'];
$days_access_after_end = $session['nb_days_access_after_end'];
$date_session_start = $session['access_start_date'];
$date_session_end = $session['access_end_date'];
$coachAccessStartDate = $session['coach_access_start_date'];
$coachAccessEndDate = $session['coach_access_end_date'];
$session_now = time();
$count_courses_session = 0;
@ -1174,15 +1174,15 @@ class IndexManager
$is_coach_course = api_is_coach($session_id, $course['real_id']);
$allowed_time = 0;
$dif_time_after = 0;
if ($date_session_start != '0000-00-00') {
if ($date_session_start != '0000-00-00 00:00:00') {
if ($is_coach_course) {
$allowed_time = api_strtotime($date_session_start.' 00:00:00') - ($days_access_before_beginning * 86400);
$allowed_time = api_strtotime($coachAccessStartDate);
} else {
$allowed_time = api_strtotime($date_session_start.' 00:00:00');
$allowed_time = api_strtotime($date_session_start);
}
if (!isset($_GET['history'])) {
if ($date_session_end != '0000-00-00') {
$endSessionToTms = api_strtotime($date_session_end.' 23:59:59');
if ($date_session_end != '0000-00-00 00:00:00') {
$endSessionToTms = api_strtotime($date_session_end);
if ($session_now > $endSessionToTms) {
$dif_time_after = $session_now - $endSessionToTms;
$dif_time_after = round($dif_time_after/86400);
@ -1192,7 +1192,7 @@ class IndexManager
}
if ($session_now > $allowed_time &&
$days_access_after_end > $dif_time_after - 1
$coachAccessEndDate > $dif_time_after - 1
) {
// Read only and accessible.
$atLeastOneCourseIsVisible = true;
@ -1294,10 +1294,10 @@ class IndexManager
continue;
}
$date_session_start = $session['date_start'];
$date_session_end = $session['date_end'];
$days_access_before_beginning = $session['nb_days_access_before_beginning'];
$days_access_after_end = $session['nb_days_access_after_end'];
$date_session_start = $session['access_start_date'];
$date_session_end = $session['access_end_date'];
$coachAccessStartDate = $session['coach_access_start_date'];
$coachAccessEndDate = $session['coach_access_end_date'];
$session_now = time();
$html_courses_session = '';
@ -1313,13 +1313,13 @@ class IndexManager
$allowed_time = 0;
if ($is_coach_course) {
// 24 hours = 86400
if ($date_session_start != '0000-00-00') {
$allowed_time = api_strtotime($date_session_start . ' 00:00:00') - ($days_access_before_beginning * 86400);
if ($date_session_start != '0000-00-00 00:00:00') {
$allowed_time = api_strtotime($coachAccessStartDate);
}
if (!isset($_GET['history'])) {
if ($date_session_end != '0000-00-00') {
if ($date_session_end != '0000-00-00 00:00:00') {
$endSessionToTms = api_strtotime(
$date_session_end . ' 23:59:59'
$date_session_end
);
if ($session_now > $endSessionToTms) {
$dif_time_after = $session_now - $endSessionToTms;
@ -1331,12 +1331,12 @@ class IndexManager
}
} else {
$allowed_time = api_strtotime(
$date_session_start . ' 00:00:00'
$date_session_start
);
}
if ($session_now > $allowed_time &&
$days_access_after_end > $dif_time_after - 1
$coachAccessEndDate > $dif_time_after - 1
) {
if (api_get_setting('hide_courses_in_sessions') == 'false') {
$c = CourseManager:: get_logged_user_course_html(

@ -7355,4 +7355,6 @@ $GamificationModeTitle = "Gamification mode";
$GamificationModeComment = "Activate the stars achievement in learning paths";
$LevelX = "Level %s";
$SeeCourse = "View course";
$XPoints = "%s points";
$FromXUntilY = "From %s until %s";
?>

@ -7234,4 +7234,6 @@ $Readable = "Lisible";
$NotReadable = "Non accessible en lecture";
$DefaultInstallAdminFirstname = "Jean";
$DefaultInstallAdminLastname = "Dupont";
$AttendanceUpdated = "Présences mises à jour";
$FromXUntilY = "Du %s au %s";
?>

@ -7384,4 +7384,6 @@ $GamificationModeTitle = "Modo ludificación";
$GamificationModeComment = "Activar el logro de estrellas en las lecciones";
$LevelX = "Nivel %s";
$SeeCourse = "Ver curso";
$XPoints = "%s puntos";
$FromXUntilY = "De %s a %s";
?>

@ -614,19 +614,19 @@ if (!empty($student_id)) {
if ($session_info) {
$session_name = $session_info['name'];
}
$date_start = '';
$access_start_date = '';
if (!empty($session_info['date_start']) && $session_info['date_start'] != '0000-00-00') {
$date_start = api_format_date($session_info['date_start'], DATE_FORMAT_SHORT);
if (!empty($session_info['access_start_date']) && $session_info['access_start_date'] != '0000-00-00') {
$access_start_date = api_format_date($session_info['access_start_date'], DATE_FORMAT_SHORT);
}
$date_end = '';
if (!empty($session_info['date_end']) && $session_info['date_end'] != '0000-00-00') {
$date_end = api_format_date($session_info['date_end'], DATE_FORMAT_SHORT);
$access_end_date = '';
if (!empty($session_info['access_end_date']) && $session_info['access_end_date'] != '0000-00-00') {
$access_end_date = api_format_date($session_info['access_end_date'], DATE_FORMAT_SHORT);
}
$date_session = '';
if (!empty($date_start) && !empty($date_end)) {
$date_session = get_lang('From') . ' ' . $date_start . ' ' . get_lang('Until') . ' ' . $date_end;
if (!empty($access_start_date) && !empty($access_end_date)) {
$date_session = get_lang('From') . ' ' . $access_start_date . ' ' . get_lang('Until') . ' ' . $access_end_date;
}
$title = '';
if (empty($sessionId)) {

@ -363,13 +363,13 @@ if (!empty($new_exercises)) {
$start = $end = $start_only = $end_only ='';
if (!empty($session_info['date_start']) && $session_info['date_start'] != '0000-00-00') {
$start = api_convert_and_format_date($session_info['date_start'], DATE_FORMAT_SHORT);
$start_only = get_lang('From').' '.$session_info['date_start'];
if (!empty($session_info['access_start_date']) && $session_info['access_start_date'] != '0000-00-00') {
$start = api_convert_and_format_date($session_info['access_start_date'], DATE_FORMAT_SHORT);
$start_only = get_lang('From').' '.$session_info['access_start_date'];
}
if (!empty($session_info['date_start']) && $session_info['date_end'] != '0000-00-00') {
$end = api_convert_and_format_date($session_info['date_end'], DATE_FORMAT_SHORT);
$end_only = get_lang('Until').' '.$session_info['date_end'];
if (!empty($session_info['access_start_date']) && $session_info['access_end_date'] != '0000-00-00') {
$end = api_convert_and_format_date($session_info['access_end_date'], DATE_FORMAT_SHORT);
$end_only = get_lang('Until').' '.$session_info['access_end_date'];
}
if (!empty($start) && !empty($end)) {

@ -89,7 +89,7 @@ if (!empty($return)) {
</tr>
<td colspan="2">
<a href="javascript://" onclick="if(document.getElementById('options').style.display == 'none'){document.getElementById('options').style.display = 'block';}else{document.getElementById('options').style.display = 'none';}"><?php echo get_lang('EditTimeLimit') ?></a>
<div style="display: <?php if($formSent && ($nb_days_acess_before!=0 || $nb_days_acess_after!=0)) echo 'block'; else echo 'none'; ?>;" id="options">
<div style="display: <?php if($formSent && ($coachAccessStartDate!='0000-00-00 00:00:00' || $coachAccessEndDate!='0000-00-00 00:00:00')) echo 'block'; else echo 'none'; ?>;" id="options">
<br>
<div>
<table border="0" cellpadding="5" cellspacing="0" width="100%">

@ -186,9 +186,9 @@ if (isset($_GET['search']) && $_GET['search'] == 'advanced') {
<tr class="<?php echo $i ? 'row_odd' : 'row_even'; ?>">
<td><input type="checkbox" id="idChecked_<?php echo $x; ?>" name="idChecked[]" value="<?php echo $enreg['id']; ?>"></td>
<td><?php echo api_htmlentities($enreg['name'], ENT_QUOTES, $charset); ?></td>
<td><?php echo "<a href=\"session_list.php?id_category=".$enreg['id']."\">".$nb_courses." Sesion(es) </a>"; ?></td>
<td><?php echo api_htmlentities($enreg['date_start'], ENT_QUOTES, $charset); ?></td>
<td><?php echo api_htmlentities($enreg['date_end'], ENT_QUOTES, $charset); ?></td>
<td><?php echo "<a href=\"session_list.php?id_category=".$enreg['id']."\">".$nb_courses." Session(s) </a>"; ?></td>
<td><?php echo api_htmlentities($enreg['access_start_date'], ENT_QUOTES, $charset); ?></td>
<td><?php echo api_htmlentities($enreg['access_end_date'], ENT_QUOTES, $charset); ?></td>
<td>
<a href="session_category_edit.php?&id=<?php echo $enreg['id']; ?>">
<?php Display::display_icon('edit.png', get_lang('Edit'), array(), ICON_SIZE_SMALL); ?>

@ -49,8 +49,8 @@ if (isset($_POST['formSent'])) {
name,
id_coach,
username,
date_start,
date_end,
access_start_date,
access_end_date,
visibility,
session_category_id
FROM $tbl_session s
@ -62,7 +62,7 @@ if (isset($_POST['formSent'])) {
$tbl_session_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){
$sql = "SELECT s.id, name,id_coach,username,date_start,date_end,visibility,session_category_id
$sql = "SELECT s.id, name,id_coach,username,access_start_date,access_end_date,visibility,session_category_id
FROM $tbl_session s
INNER JOIN $tbl_session_rel_access_url as session_rel_url
ON (s.id= session_rel_url.session_id)
@ -74,7 +74,7 @@ if (isset($_POST['formSent'])) {
$result = Database::query($sql);
} else {
$sql = "SELECT s.id,name,username,date_start,date_end,visibility,session_category_id
$sql = "SELECT s.id,name,username,access_start_date,access_end_date,visibility,session_category_id
FROM $tbl_session s
INNER JOIN $tbl_user
ON $tbl_user.user_id = s.id_coach
@ -113,18 +113,18 @@ if (isset($_POST['formSent'])) {
$add = '';
$row['name'] = str_replace(';',',',$row['name']);
$row['username'] = str_replace(';',',',$row['username']);
$row['date_start'] = str_replace(';',',',$row['date_start']);
$row['date_end'] = str_replace(';',',',$row['date_end']);
$row['access_start_date'] = str_replace(';',',',$row['access_start_date']);
$row['access_end_date'] = str_replace(';',',',$row['access_end_date']);
$row['visibility'] = str_replace(';',',',$row['visibility']);
$row['session_category'] = str_replace(';',',',$row['session_category_id']);
if ($cvs) {
$add.= $row['name'].';'.$row['username'].';'.$row['date_start'].';'.$row['date_end'].';'.$row['visibility'].';'.$row['session_category'].';';
$add.= $row['name'].';'.$row['username'].';'.$row['access_start_date'].';'.$row['access_end_date'].';'.$row['visibility'].';'.$row['session_category'].';';
} else {
$add = "\t<Session>\n"
."\t\t<SessionName>$row[name]</SessionName>\n"
."\t\t<Coach>$row[username]</Coach>\n"
."\t\t<DateStart>$row[date_start]</DateStart>\n"
."\t\t<DateEnd>$row[date_end]</DateEnd>\n"
."\t\t<DateStart>$row[access_start_date]</DateStart>\n"
."\t\t<DateEnd>$row[access_end_date]</DateEnd>\n"
."\t\t<Visibility>$row[visibility]</Visibility>\n"
."\t\t<SessionCategory>$row[session_category]</SessionCategory>\n";
}

@ -261,8 +261,8 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
$sql_session = "INSERT IGNORE INTO $tbl_session SET
name = '".Database::escape_string($session_name)."',
id_coach = '$coach_id',
date_start = '$date_start',
date_end = '$date_end',
access_start_date = '$date_start',
access_end_date = '$date_end',
visibility = '$visibility',
session_category_id = '$session_category_id',
session_admin_id=".intval($_user['user_id']);
@ -278,8 +278,8 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
$sql_session = "INSERT IGNORE INTO $tbl_session SET
name = '".Database::escape_string($session_name)."',
id_coach = '$coach_id',
date_start = '$date_start',
date_end = '$date_end',
access_start_date = '$date_start',
access_end_date = '$date_end',
visibility = '$visibility',
session_category_id = '$session_category_id',
session_admin_id=".intval($_user['user_id']);
@ -290,8 +290,8 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
// if the session already exists - update it.
$sql_session = "UPDATE $tbl_session SET
id_coach = '$coach_id',
date_start = '$date_start',
date_end = '$date_end',
access_start_date = '$date_start',
access_end_date = '$date_end',
visibility = '$visibility',
session_category_id = '$session_category_id'
WHERE name = '$session_name'";

@ -112,8 +112,8 @@ $column_model = array(
array('name'=>'nbr_courses', 'index'=>'nbr_courses', 'width'=>'30', 'align'=>'left', 'search' => 'true'),
array('name'=>'nbr_users', 'index'=>'nbr_users', 'width'=>'30', 'align'=>'left', 'search' => 'true'),
array('name'=>'category_name', 'index'=>'sc.name', 'width'=>'70', 'align'=>'left', 'search' => 'true'),
array('name'=>'date_start', 'index'=>'s.date_start', 'width'=>'40', 'align'=>'left', 'search' => 'true'),
array('name'=>'date_end', 'index'=>'s.date_end', 'width'=>'40', 'align'=>'left', 'search' => 'true'),
array('name'=>'access_start_date', 'index'=>'s.access_start_date', 'width'=>'40', 'align'=>'left', 'search' => 'true'),
array('name'=>'access_end_date', 'index'=>'s.access_end_date', 'width'=>'40', 'align'=>'left', 'search' => 'true'),
array('name'=>'coach_name', 'index'=>'coach_name', 'width'=>'80', 'align'=>'left', 'search' => 'false'),
array('name'=>'status', 'index'=>'session_active','width'=>'50', 'align'=>'left', 'search' => 'true', 'stype'=>'select',
//for the bottom bar

@ -73,10 +73,10 @@ $sql = "SELECT 1
FROM $tbl_session_course_user AS session_course_user
INNER JOIN $tbl_session AS session
ON session_course_user.session_id = session.id
AND ((date_start <= '$now'
AND date_end >= '$now')
OR (date_start='0000-00-00' AND date_end='0000-00-00'))
WHERE session_id='".api_get_session_id()."' AND course_code='$_cid'";
AND ((access_start_date <= '$now'
AND access_end_date >= '$now')
OR (access_start_date='0000-00-00' AND access_end_date='0000-00-00'))
WHERE session_id='".api_get_session_id()."' AND c_id = $courseId";
//echo $sql;
$result=Database::query($sql);
if(!Database::num_rows($result)){

@ -68,10 +68,10 @@ $sql = "SELECT 1
FROM $tbl_session_course_user AS session_course_user
INNER JOIN $tbl_session AS session
ON session_course_user.session_id = session.id
AND ((date_start <= '$now'
AND date_end >= '$now')
OR (date_start='0000-00-00' AND date_end='0000-00-00'))
WHERE session_id='" . $_SESSION['id_session'] . "' AND course_code='$_cid'";
AND ((access_start_date <= '$now'
AND access_end_date >= '$now')
OR (access_start_date='0000-00-00' AND access_end_date='0000-00-00'))
WHERE session_id='" . $_SESSION['id_session'] . "' AND c_id = $courseId";
//echo $sql;
$result = Database::query($sql);
if (!Database::num_rows($result)) {

@ -32,7 +32,21 @@ if($allowTutors == 'true') {
$table_access_url_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$sql = 'SELECT name, nbr_courses, nbr_users, nbr_classes, DATE_FORMAT(date_start,"%d-%m-%Y") as date_start, DATE_FORMAT(date_end,"%d-%m-%Y") as date_end, lastname, firstname, username, session_admin_id, nb_days_access_before_beginning, nb_days_access_after_end, session_category_id, visibility
$sql = 'SELECT
name,
nbr_courses,
nbr_users,
nbr_classes,
DATE_FORMAT(access_start_date,"%d-%m-%Y") as access_start_date,
DATE_FORMAT(access_end_date,"%d-%m-%Y") as access_end_date,
lastname,
firstname,
username,
session_admin_id,
coach_access_start_date,
coach_access_end_date,
session_category_id,
visibility
FROM '.$tbl_session.' LEFT JOIN '.$tbl_user.' ON id_coach = user_id
WHERE '.$tbl_session.'.id='.$id_session;
@ -40,7 +54,9 @@ if($allowTutors == 'true') {
$session = Database::store_result($rs);
$session = $session[0];
$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 = Database::query($sql);
$session_category = '';
@ -135,22 +151,22 @@ if($allowTutors == 'true') {
<td><?php echo get_lang('Date'); ?> :</td>
<td>
<?php
if ($session['date_start'] == '00-00-0000' && $session['date_end']== '00-00-0000' ) {
if ($session['access_start_date'] == '00-00-0000' && $session['access_end_date']== '00-00-0000' ) {
echo get_lang('NoTimeLimits');
}
else {
if ($session['date_start'] != '00-00-0000') {
if ($session['access_start_date'] != '00-00-0000') {
//$session['date_start'] = Display::tag('i', get_lang('NoTimeLimits'));
$session['date_start'] = get_lang('From').' '.$session['date_start'];
$session['access_start_date'] = get_lang('From').' '.$session['access_start_date'];
} else {
$session['date_start'] = '';
$session['access_start_date'] = '';
}
if ($session['date_end'] == '00-00-0000') {
$session['date_end'] ='';
if ($session['access_end_date'] == '00-00-0000') {
$session['access_end_date'] ='';
} else {
$session['date_end'] = get_lang('Until').' '.$session['date_end'];
$session['access_end_date'] = get_lang('Until').' '.$session['access_end_date'];
}
echo $session['date_start'].' '.$session['date_end'];
echo $session['access_start_date'].' '.$session['access_end_date'];
}
?>
</td>
@ -158,18 +174,18 @@ if($allowTutors == 'true') {
<!-- show nb_days_before and nb_days_after only if they are different from 0 -->
<tr>
<td>
<?php echo api_ucfirst(get_lang('DaysBefore')) ?> :
<?php echo api_ucfirst(get_lang('CoachSessionAccessStartDate')) ?> :
</td>
<td>
<?php echo intval($session['nb_days_access_before_beginning']) ?>
<?php echo intval($session['coach_access_start_date']) ?>
</td>
</tr>
<tr>
<td>
<?php echo api_ucfirst(get_lang('DaysAfter')) ?> :
<?php echo api_ucfirst(get_lang('CoachSessionAccessEndDate')) ?> :
</td>
<td>
<?php echo intval($session['nb_days_access_after_end']) ?>
<?php echo intval($session['coach_session_access_end_date']) ?>
</td>
</tr>
<tr>

@ -53,8 +53,8 @@ if($allowTutors == 'true') {
array('name'=>'nbr_courses', 'index'=>'nbr_courses', 'width'=>'30', 'align'=>'left', 'search' => 'true'),
array('name'=>'nbr_users', 'index'=>'nbr_users', 'width'=>'30', 'align'=>'left', 'search' => 'true'),
array('name'=>'category_name', 'index'=>'category_name', 'width'=>'70', 'align'=>'left', 'search' => 'true'),
array('name'=>'date_start', 'index'=>'date_start', 'width'=>'40', 'align'=>'left', 'search' => 'true'),
array('name'=>'date_end', 'index'=>'date_end', 'width'=>'40', 'align'=>'left', 'search' => 'true'),
array('name'=>'access_start_date', 'index'=>'access_start_date', 'width'=>'40', 'align'=>'left', 'search' => 'true'),
array('name'=>'access_end_date', 'index'=>'access_end_date', 'width'=>'40', 'align'=>'left', 'search' => 'true'),
array('name'=>'coach_name', 'index'=>'coach_name', 'width'=>'80', 'align'=>'left', 'search' => 'false'),
array('name'=>'status', 'index'=>'session_active','width'=>'40', 'align'=>'left', 'search' => 'true', 'stype'=>'select',
//for the bottom bar

@ -2666,7 +2666,8 @@ function WSCreateCourse($params)
CourseManager::create_course_extra_field(
$original_course_id_name,
1,
$original_course_id_name
$original_course_id_name,
''
);
// Save the external system's id into user_field_value table.
@ -2684,7 +2685,8 @@ function WSCreateCourse($params)
CourseManager::create_course_extra_field(
$extra_field_name,
1,
$extra_field_name
$extra_field_name,
''
);
// Save the external system's id into course_field_value table.
CourseManager::update_course_extra_field_value(
@ -2888,7 +2890,8 @@ function WSCreateCourseByTitle($params)
CourseManager::create_course_extra_field(
$original_course_id_name,
1,
$original_course_id_name
$original_course_id_name,
''
);
// Save the external system's id into user_field_value table.
@ -2906,7 +2909,8 @@ function WSCreateCourseByTitle($params)
CourseManager::create_course_extra_field(
$extra_field_name,
1,
$extra_field_name
$extra_field_name,
''
);
// Save the external system's id into course_field_value table.
CourseManager::update_course_extra_field_value(
@ -3652,8 +3656,8 @@ function WSCreateSession($params)
$year_end = intval($session_param['year_end']);
$month_end = intval($session_param['month_end']);
$day_end = intval($session_param['day_end']);
$nb_days_acess_before = intval($session_param['nb_days_access_before']);
$nb_days_acess_after = intval($session_param['nb_days_access_after']);
$nb_days_access_before = intval($session_param['nb_days_access_before']);
$nb_days_access_after = intval($session_param['nb_days_access_after']);
$id_coach = $session_param['user_id'];
$nolimit = $session_param['nolimit'];
$original_session_id_name = $session_param['original_session_id_name'];
@ -3672,11 +3676,11 @@ function WSCreateSession($params)
}
if (empty($nolimit)){
$date_start = "$year_start-".(($month_start < 10)?"0$month_start":$month_start)."-".(($day_start < 10)?"0$day_start":$day_start);
$date_end = "$year_end-".(($month_end < 10)?"0$month_end":$month_end)."-".(($day_end < 10)?"0$day_end":$day_end);
$date_start = "$year_start-".(($month_start < 10)?"0$month_start":$month_start)."-".(($day_start < 10)?"0$day_start":$day_start) . ' 00:00:00';
$date_end = "$year_end-".(($month_end < 10)?"0$month_end":$month_end)."-".(($day_end < 10)?"0$day_end":$day_end) . ' 23:59:59';
} else {
$date_start = "000-00-00";
$date_end = "000-00-00";
$date_start = "000-00-00 00:00:00";
$date_end = "000-00-00 00:00:00";
}
if (empty($name)) {
@ -3697,8 +3701,32 @@ function WSCreateSession($params)
$results[] = 0;
continue;
} else {
Database::query("INSERT INTO $tbl_session(name,date_start,date_end,id_coach,session_admin_id, nb_days_access_before_beginning, nb_days_access_after_end)
VALUES('".addslashes($name)."','$date_start','$date_end','$id_coach',".intval($_user['user_id']).",".$nb_days_acess_before.", ".$nb_days_acess_after.")");
$startDate = new DateTime($date_start);
$endDate = new DateTime($date_end);
$diffStart = new DateInterval($nb_days_access_before);
$diffEnd = new DateInterval($nb_days_access_after);
$coachStartDate = $startDate->sub($diffStart);
$coachEndDate = $endDate->add($diffEnd);
Database::query(
"INSERT INTO $tbl_session(
name,
access_start_date,
access_end_date,
id_coach,
session_admin_id,
coach_access_start_date,
coach_access_end_date
)
VALUES(
'".addslashes($name)."',
'$date_start',
'$date_end',
'$id_coach',
".intval($_user['user_id']).",
'".$coachStartDate->format('Y-m-d H:i:s')."',
'".$coachEndDate->format('Y-m-d H:i:s')."'
)"
);
$id_session = Database::insert_id();
// Save new fieldlabel into course_field table.
@ -3861,8 +3889,8 @@ function WSEditSession($params)
$year_end = intval($session_param['year_end']);
$month_end = intval($session_param['month_end']);
$day_end = intval($session_param['day_end']);
$nb_days_acess_before = intval($session_param['nb_days_access_before']);
$nb_days_acess_after = intval($session_param['nb_days_access_after']);
$nb_days_access_before = intval($session_param['nb_days_access_before']);
$nb_days_access_after = intval($session_param['nb_days_access_after']);
$original_session_id_value = $session_param['original_session_id_value'];
$original_session_id_name = $session_param['original_session_id_name'];
$orig_session_id_value[] = $original_session_id_value;
@ -3901,14 +3929,20 @@ function WSEditSession($params)
$results[] = 0; //StartDateShouldBeBeforeEndDate
continue;
} else {
$startDate = new DateTime($date_start);
$endDate = new DateTime($date_end);
$diffStart = new DateInterval($nb_days_access_before);
$diffEnd = new DateInterval($nb_days_access_after);
$coachStartDate = $startDate->sub($diffStart);
$coachEndDate = $endDate->add($diffEnd);
$sql = "UPDATE $tbl_session SET " .
"name = '".addslashes($name)."', " .
"date_start = '".$date_start."', " .
"date_end = '".$date_end."', " .
"id_coach = '". $id_coach."', " .
"session_admin_id = '". intval($_user['user_id'])."', " .
"nb_days_access_before_beginning='". $nb_days_acess_before."', " .
"nb_days_access_after_end='". $nb_days_acess_after."'" .
"coach_access_start_date = '". $coachStartDate->format('Y-m-d H:i:s') . "', " .
"coach_access_end_date = '". $coachEndDate->format('Y-m-d H:i:s') . "'" .
" WHERE id = '".$id."'";
Database::query($sql);
@ -4780,7 +4814,7 @@ function WSSuscribeUsersToSession($params)
list($nbr_users) = Database::fetch_array($rs);
// update the session-course relation to add the users total
$update_sql = "UPDATE $tbl_session_rel_course SET nbr_users=$nbr_users
WHERE session_id='$id_session' AND c_id='$enreg_course'";
WHERE session_id='$sessionId' AND c_id='$enreg_course'";
Database::query($update_sql);
}
@ -5290,7 +5324,7 @@ function WSSuscribeCoursesToSession($params) {
$courseId = $courseInfo['real_id'];
$courseInfo = CourseManager::getCourseInfoFromOriginalId(
$original_course_id_value,
$course_code,
$original_course_id_name
);
@ -5796,10 +5830,10 @@ function WSListSessions($params) {
$sql_params = array();
// Dates should be provided in YYYY-MM-DD format, UTC
if (!empty($params['date_start'])) {
$sql_params['s.date_start'] = array('operator' => '>=', 'value' => $params['date_start']);
$sql_params['s.access_start_date'] = array('operator' => '>=', 'value' => $params['date_start']);
}
if (!empty($params['date_end'])) {
$sql_params['s.date_end'] = array('operator' => '<=', 'value' => $params['date_end']);
$sql_params['s.access_end_date'] = array('operator' => '<=', 'value' => $params['date_end']);
}
$sessions_list = SessionManager::get_sessions_list($sql_params);
$return_list = array();
@ -5808,8 +5842,8 @@ function WSListSessions($params) {
'id' => $session['id'],
'title' => $session['name'],
'url' => api_get_path(WEB_CODE_PATH).'session/index.php?session_id='.$session['id'], // something like http://my.chamilo.net/main/session/index.php?session_id=5
'date_start' => $session['date_start'],
'date_end' => $session['date_end'],
'date_start' => $session['access_start_date'],
'date_end' => $session['access_end_date'],
);
}
@ -6191,7 +6225,7 @@ function WSCreateGroup($params)
$userGroup = new UserGroup();
$params = [
'name' => $params['name']
]
];
return $userGroup->save($params);
//return GroupPortalManager::add($params['name'], null, null, 1);
}

@ -25,7 +25,7 @@ $joinTables = Database::get_main_table(TABLE_MAIN_SESSION) . ' s INNER JOIN ' .
$columns = 's.id AS session_id, uu.friend_user_id AS superior_id, uu.user_id AS student_id, asq.id AS queue_id, asq.status AS status';
$conditions = array(
'where' => array(
's.date_start >= ? AND uu.relation_type = ? AND asq.updated_at <= ?' => array(
's.access_start_date >= ? AND uu.relation_type = ? AND asq.updated_at <= ?' => array(
$now,
USER_RELATION_TYPE_BOSS,
$weekAgo,

@ -216,7 +216,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$extra = new ExtraFieldValue('session');
$joinSessionTable = Database::get_main_table(TABLE_MAIN_SESSION_USER) . ' su INNER JOIN ' .
Database::get_main_table(TABLE_MAIN_SESSION) . ' s ON s.id = su.session_id';
$whereSessionParams = 'su.relation_type = ? AND s.date_start >= ? AND su.user_id = ?';
$whereSessionParams = 'su.relation_type = ? AND s.access_start_date >= ? AND su.user_id = ?';
$whereSessionParamsValues = array(
0,
$newYearDate->format('Y-m-d'),

@ -549,7 +549,7 @@ class HookAdvancedSubscription extends HookObserver implements
/**
* Get a list of sessions (id, coach_id, name, courses_num, users_num, classes_num,
* date_start, date_end, access_days_before_num, session_admin_id, visibility,
* access_start_date, access_end_date, access_days_before_num, session_admin_id, visibility,
* session_category_id, promotion_id,
* validated_user_num, waiting_user_num,
* extra, course) the validated_usernum and waiting_user_num are

@ -77,7 +77,7 @@ function sync()
$sql = "UPDATE $tableBuySession SET sync = 0";
Database::query($sql);
$sql = "SELECT id, name, date_start, date_end FROM $tableSession";
$sql = "SELECT id, name, access_start_date, access_end_date FROM $tableSession";
$res = Database::query($sql);
while ($row = Database::fetch_assoc($res)) {
$sql = "SELECT 1 FROM $tableBuySession WHERE session_id='" . $row['id'] . "';";
@ -88,7 +88,7 @@ function sync()
} else {
$sql = "INSERT INTO $tableBuySession (session_id, name, date_start, date_end, visible, sync)
VALUES ('" . $row['id'] . "', '" . $row['name'] . "', '" .
$row['date_start'] . "', '" . $row['date_end'] . "', 0, 1);";
$row['access_start_date'] . "', '" . $row['access_end_date'] . "', 0, 1);";
Database::query($sql);
}
}

@ -35,12 +35,12 @@ if ($_REQUEST['tab'] == 'sync') {
$aux_code .= $row['code'];
$aux_title .= $row['title'];
}
$sql = "SELECT name, date_start, date_end FROM $tableSession;";
$sql = "SELECT name, access_start_date, access_end_date FROM $tableSession;";
$res = Database::query($sql);
while ($row = Database::fetch_assoc($res)) {
$aux_name .= $row['name'];
$aux_date_start .= $row['date_start'];
$aux_date_end .= $row['date_end'];
$aux_date_start .= $row['access_start_date'];
$aux_date_end .= $row['access_end_date'];
}
echo json_encode(array("status" => "true", "content" => $content));
}
@ -160,8 +160,8 @@ if ($_REQUEST['tab'] == 'sessions_filter') {
<div class="span4 ">
<div class="categories-course-description">
<h3>'.$session['name'].'</h3>
<h5>'.get_lang('From').' '.$session['date_start'].
' '.get_lang('Until').' '.$session['date_end'].'</h5>';
<h5>'.get_lang('From').' '.$session['access_start_date'].
' '.get_lang('Until').' '.$session['access_end_date'].'</h5>';
if ($session['enrolled'] == "YES") {
$content .= '<span class="label label-info">'.$plugin->get_lang('TheUserIsAlreadyRegisteredInTheSession').'</span>';
}

@ -108,8 +108,8 @@ class BlockSession extends Block
$session_id = intval($session['id']);
$title = $session['name'];
if ($session['date_start'] != '0000-00-00' && $session['date_end'] != '0000-00-00') {
$date = get_lang('From').' '.api_convert_and_format_date($session['date_start'], DATE_FORMAT_SHORT, date_default_timezone_get()).' '.get_lang('To').' '.api_convert_and_format_date($session['date_end'], DATE_FORMAT_SHORT, date_default_timezone_get());
if ($session['access_start_date'] != '0000-00-00 00:00:00' && $session['access_end_date'] != '0000-00-00 00:00:00') {
$date = get_lang('From').' '.api_convert_and_format_date($session['access_start_date'], DATE_FORMAT_SHORT, date_default_timezone_get()).' '.get_lang('To').' '.api_convert_and_format_date($session['access_end_date'], DATE_FORMAT_SHORT, date_default_timezone_get());
} else {
$date = ' - ';
}

@ -16,6 +16,14 @@ class Version20150528103216 extends AbstractMigrationChamilo
*/
public function up(Schema $schema)
{
$this->addSql('ALTER TABLE session ADD COLUMN access_start_date datetime');
$this->addSql('ALTER TABLE session ADD COLUMN access_end_date datetime');
$this->addSql('ALTER TABLE session ADD COLUMN coach_access_start_date datetime);
$this->addSql('ALTER TABLE session ADD COLUMN coach_access_end_date datetime');
$this->addSql('ALTER TABLE session ADD COLUMN display_start_date datetime');
$this->addSql('ALTER TABLE session ADD COLUMN display_end_date datetime');
$this->addSql('UPDATE session SET access_start_date = date_start');
$this->addSql("UPDATE session SET access_end_date = CONVERT(CONCAT(date_end, ' 23:59:59'), DATETIME)");
@ -45,6 +53,19 @@ class Version20150528103216 extends AbstractMigrationChamilo
*/
public function down(Schema $schema)
{
$this->addSql('ALTER TABLE session CREATE date_start date NOT NULL');
$this->addSql('ALTER TABLE session CREATE date_end date NOT NULL');
$this->addSql('ALTER TABLE session CREATE nb_days_access_before_beginning TINYINT');
$this->addSql('ALTER TABLE session CREATE nb_days_access_after_end TINYINT');
$this->addSql('UPDATE session SET date_start = access_start_date');
$this->addSql('UPDATE session SET date_end = access_end_date');
$this->addSql('UPDATE session SET nb_days_access_before_beginning = DATEDIFF(access_start_date, coach_access_start_date) WHERE access_start_date != coach_access_start_date AND coach_access_start_date IS NOT NULL');
$this->addSql('UPDATE session SET nb_days_access_after_end = DATEDIFF(coach_access_end_date, coach_access_end_date) WHERE access_end_date != coach_access_end_date AND coach_access_end_date IS NOT NULL');
$this->addSql('UPDATE session SET nb_days_access_before_beginning = 0 WHERE access_start_date = coach_access_start_date OR coach_access_start_date IS NULL');
$this->addSql('UPDATE session SET nb_days_access_after_end = 0 WHERE access_end_date = coach_access_end_date OR coach_access_end_date IS NULL');
$this->addSql('ALTER TABLE session DROP access_start_date');
$this->addSql('ALTER TABLE session DROP access_end_date');
$this->addSql('ALTER TABLE session DROP coach_access_start_date');

@ -24,21 +24,27 @@ class TestSessionManager extends UnitTestCase {
function testcreate_session() {
global $_user;
$sname='';
$syear_start='';
$smonth_start='';
$sday_start='';
$syear_end='';
$smonth_end='';
$sday_end='';
$snb_days_acess_before='';
$snb_days_acess_after='';
$start='';
$end='';
$coachStart='';
$coachEnd='';
$nolimit='';
$coach_username='';
$id_session_category='';
$id_visibility='';
$id_session=Database::insert_id();
ob_start();
$res=SessionManager::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);
$res=SessionManager::create_session(
$sname,
$start,
$end,
$coachStart,
$coachEnd,
$nolimit,
$coach_username,
$id_session_category,
$id_visibility
);
$this->assertTrue(is_numeric($id_session));
$this->assertTrue(is_string($res));
ob_end_clean();
@ -75,19 +81,26 @@ class TestSessionManager extends UnitTestCase {
global $_user;
$id=1;
$name='';
$year_start='';
$month_start='';
$day_start='';
$year_end='';
$month_end='';
$day_end='';
$nb_days_acess_before='';
$nb_days_acess_after='';
$start='';
$end='';
$coachStart='';
$coachEnd='';
$nolimit='';
$id_coach='';
$id_session_category='';
$id_visibility='';
$res=SessionManager::edit_session($id,$name,$year_start,$month_start,$day_start,$year_end,$month_end,$day_end,$nb_days_acess_before,$nb_days_acess_after,$nolimit,$id_coach, $id_session_category, $id_visibility);
$res=SessionManager::edit_session(
$id,
$name,
$start,
$end,
$coachStart,
$coachEnd,
$nolimit,
$id_coach,
$id_session_category,
$id_visibility
);
$this->assertTrue(is_numeric($id));
$this->assertTrue(is_string($res));
//var_dump($id);

@ -46,13 +46,13 @@ Display::display_header(get_lang('UserOnlineListSession'));
$_user['user_id'] = intval($_user['user_id']);
$sql = "SELECT DISTINCT session.id,
name,
date_start,
date_end
access_start_date,
access_end_date
FROM $tbl_session as session
INNER JOIN $tbl_session_course_user as srcru
ON srcru.user_id = ".$_user['user_id']." AND srcru.status=2
AND session.id = srcru.session_id
ORDER BY date_start, date_end, name";
ORDER BY access_start_date, access_end_date, name";
$result = Database::query($sql);
while ($session = Database:: fetch_array($result)) {
@ -61,11 +61,11 @@ Display::display_header(get_lang('UserOnlineListSession'));
$sql = "SELECT DISTINCT session.id,
name,
date_start,
date_end
access_start_date,
access_end_date
FROM $tbl_session as session
WHERE session.id_coach = ".$_user['user_id']."
ORDER BY date_start, date_end, name";
ORDER BY access_start_date, access_end_date, name";
$result = Database::query($sql);
while ($session = Database:: fetch_array($result)) {
$session_is_coach[$session['id']] = $session;

Loading…
Cancel
Save