Fix session dates see BT#11666

pull/2487/head
jmontoyaa 9 years ago
parent 660e5b2ad4
commit e61d42f55e
  1. 46
      main/inc/lib/display.lib.php
  2. 32
      main/inc/lib/sessionmanager.lib.php
  3. 7
      main/inc/lib/userportal.lib.php
  4. 3
      main/template/default/user_portal/classic_session.tpl

@ -1531,12 +1531,11 @@ class Display
if (!$nosession) {
global $now, $date_start, $date_end;
}
$output = array();
$active = false;
if (!$nosession) {
$main_user_table = Database :: get_main_table(TABLE_MAIN_USER);
$tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
$active = false;
// Request for the name of the general coach
$sql ='SELECT tu.lastname, tu.firstname, ts.*
FROM '.$tbl_session.' ts
@ -1554,31 +1553,21 @@ class Display
$session['coach'] = '';
$session['dates'] = '';
if (
(
$session_info['access_end_date'] == '0000-00-00 00:00:00' &&
$session_info['access_start_date'] == '0000-00-00 00:00:00'
) ||
(
$session_info['access_end_date'] == '0000-00-00' &&
$session_info['access_start_date'] == '0000-00-00'
) ||
(
empty($session_info['access_end_date']) && empty($session_info['access_start_date'])
)
if (($session_info['access_end_date'] == '0000-00-00 00:00:00' && $session_info['access_start_date'] == '0000-00-00 00:00:00') ||
($session_info['access_end_date'] == '0000-00-00 00:00:00' && $session_info['access_start_date'] == '0000-00-00 00:00:00') ||
(empty($session_info['access_end_date']) && empty($session_info['access_start_date']))
) {
if (api_get_setting('show_session_coach') === 'true') {
$session['coach'] = get_lang('GeneralCoach').': '.api_get_person_name($session_info['firstname'], $session_info['lastname']);
}
if (isset($session_info['duration']) && !empty($session_info['duration'])) {
$userDurationData = SessionManager::getUserSession(
api_get_user_id(),
$session_id
);
$userDuration = 0;
if (isset($userDurationData['duration'])) {
$userDuration = intval($userDurationData['duration']);
}
$userDuration = isset($userDurationData['duration']) ? (int) $userDurationData['duration'] : 0;
$totalDuration = $session_info['duration'] + $userDuration;
$daysLeft = SessionManager::getDayLeftInSession(
@ -1590,16 +1579,16 @@ class Display
}
$active = true;
} else {
$start = $stop = false;
/*$start = $stop = false;
$start_buffer = $stop_buffer = '';
if ($session_info['access_start_date'] == '0000-00-00 00:00:00' || empty($session_info['access_start_date'])) {
if ($session_info['access_start_date'] === '0000-00-00 00:00:00' || empty($session_info['access_start_date'])) {
$session_info['access_start_date'] = '';
} else {
$start = true;
$start_buffer = $session_info['access_start_date'];
$session_info['access_start_date'] = $session_info['access_start_date'];
}
if ($session_info['access_end_date'] == '0000-00-00 00:00:00' || empty($session_info['access_end_date'])) {
if ($session_info['access_end_date'] === '0000-00-00 00:00:00' || empty($session_info['access_end_date'])) {
$session_info['access_end_date'] = '';
} else {
$stop = true;
@ -1614,7 +1603,6 @@ class Display
);
} else {
$start_buffer = $stop_buffer = null;
if (!empty($session_info['access_start_date'])) {
$start_buffer = sprintf(
get_lang('FromDateX'),
@ -1627,17 +1615,21 @@ class Display
get_lang('UntilDateX'),
api_format_date(api_get_local_time($session_info['access_end_date']))
);
}
$session['dates'] = $start_buffer . ' ' . $stop_buffer;
}
}*/
$dates = SessionManager::parseSessionDates($session_info, true);
//$session['dates'] = $start_buffer . ' ' . $stop_buffer.'- julio '.$dates['access'];
$session['dates'] = $dates['access'];
if ( api_get_setting('show_session_coach') === 'true' ) {
if (api_get_setting('show_session_coach') === 'true' ) {
$session['coach'] = api_get_person_name(
$session_info['firstname'],
$session_info['lastname']
);
}
$active = ($date_start <= $now && $date_end >= $now);
$active = $date_start <= $now && $date_end >= $now;
}
$session['active'] = $active;
$session['session_category_id'] = $session_info['session_category_id'];

@ -6759,29 +6759,31 @@ class SessionManager
* Converts "start date" and "end date" to "From start date to end date" string
* @param string $startDate
* @param string $endDate
* @param bool $showTime
* @param bool $dateHuman
*
* @return string
*/
private static function convertSessionDateToString($startDate, $endDate, $showTime, $dateHuman)
{
$startDateToLocal = '';
$endDateToLocal = '';
// This will clean the variables if 0000-00-00 00:00:00 the variable will be empty
if (isset($startDateToLocal)) {
// api_get_local_time returns empty if date is invalid like 0000-00-00 00:00:00
$startDateToLocal = api_get_local_time($startDate, null, null, true, $showTime, $dateHuman);
}
if (isset($endDateToLocal)) {
$endDateToLocal = api_get_local_time($endDate, null, null, true, $showTime, $dateHuman);
}
$result = '';
if (!empty($startDateToLocal) && !empty($endDateToLocal)) {
$result = sprintf(get_lang('FromDateXToDateY'), $startDateToLocal, $endDateToLocal);
//$result = sprintf(get_lang('FromDateXToDateY'), $startDateToLocal, $endDateToLocal);
$result = sprintf(
get_lang('FromDateXToDateY'),
api_format_date($startDateToLocal, DATE_TIME_FORMAT_LONG_24H),
api_format_date($endDateToLocal, DATE_TIME_FORMAT_LONG_24H)
);
} else {
if (!empty($startDateToLocal)) {
$result = get_lang('From').' '.$startDateToLocal;
$result = get_lang('From').' '.api_format_date($startDateToLocal, DATE_TIME_FORMAT_LONG_24H);
}
if (!empty($endDateToLocal)) {
$result = get_lang('Until').' '.$endDateToLocal;
$result = get_lang('Until').' '.api_format_date($endDateToLocal, DATE_TIME_FORMAT_LONG_24H);
}
}
if (empty($result)) {
@ -6794,32 +6796,32 @@ class SessionManager
* @params array $sessionInfo An array with all the session dates
* @return string
*/
public static function parseSessionDates($sessionInfo)
public static function parseSessionDates($sessionInfo, $showTime = false)
{
$displayDates = self::convertSessionDateToString(
$sessionInfo['display_start_date'],
$sessionInfo['display_end_date'],
false,
$showTime,
true
);
$accessDates = self::convertSessionDateToString(
$sessionInfo['access_start_date'],
$sessionInfo['access_end_date'],
false,
$showTime,
true
);
$coachDates = self::convertSessionDateToString(
$sessionInfo['coach_access_start_date'],
$sessionInfo['coach_access_end_date'],
false,
$showTime,
true
);
$result = [
'access' => $accessDates,
'display' => $displayDates,
'coach' => $coachDates,
'coach' => $coachDates
];
return $result;

@ -1173,7 +1173,6 @@ class IndexManager
// Declared listSession variable
$listSession = [];
if (is_array($session_categories)) {
foreach ($session_categories as $session_category) {
$session_category_id = $session_category['session_category']['id'];
@ -1271,11 +1270,10 @@ class IndexManager
$params['category_id'] = $session_box['category_id'];
$params['title'] = $session_box['title'];
//$params['subtitle'] = $extra_info;
$params['id_coach'] = $coachId;
$params['coach_url'] = api_get_path(WEB_AJAX_PATH) . 'user_manager.ajax.php?a=get_user_popup&user_id=' . $coachId;
$params['coach_name'] = !empty($session_box['coach']) ? $session_box['coach'] : null;
$params['coach_avatar'] =UserManager::getUserPicture($coachId, USER_IMAGE_SIZE_SMALL);
$params['coach_avatar'] = UserManager::getUserPicture($coachId, USER_IMAGE_SIZE_SMALL);
$params['date'] = $session_box['dates'];
$params['image'] = isset($imageField['value']) ? $imageField['value'] : null;
$params['duration'] = isset($session_box['duration']) ? ' ' . $session_box['duration'] : null;
@ -1373,10 +1371,9 @@ class IndexManager
$sessionParams = [];
// Category
if ($count > 0) {
$session_box = Display:: get_session_title_box($session_id);
$session_box = Display::get_session_title_box($session_id);
$sessionParams[0]['id'] = $session_id;
$sessionParams[0]['date'] = $session_box['dates'];
//$sessionParams['show_link_to_session'] = !api_is_drh() && $sessionTitleLink;
$sessionParams[0]['course_list_session_style'] = $coursesListSessionStyle;
$sessionParams[0]['title'] = $session_box['title'];
$sessionParams[0]['subtitle'] = (!empty($session_box['coach']) ? $session_box['coach'] . ' | ': '') . $session_box['dates'];

@ -82,7 +82,8 @@
{{ row.coach_name }}
</span>
{% endif %}
<span><i class="fa fa-calendar" aria-hidden="true"></i>
<span>
<i class="fa fa-calendar" aria-hidden="true"></i>
{{ row.date }}
</span>
</div>

Loading…
Cancel
Save