'session_list.php', 'name' => get_lang('SessionList')]; $interbreadcrumb[] = [ 'url' => "resume_session.php?id_session=".$sessionId, "name" => get_lang('SessionOverview'), ]; $form = new FormValidator('edit', 'post', api_get_self().'?session_id='.$sessionId.'&user_id='.$userId); $form->addHeader(get_lang('EditUserSessionDuration')); $userInfo = api_get_user_info($userId); // Show current end date for the session for this user, if any $userAccess = CourseManager::getFirstCourseAccessPerSessionAndUser( $sessionId, $userId ); $extension = 0; if (count($userAccess) == 0) { // User never accessed the session. End date is still open $msg = sprintf(get_lang('UserNeverAccessedSessionDefaultDurationIsX'), $sessionInfo['duration']); } else { // The user already accessed the session. Show a clear detail of the days count. $duration = $sessionInfo['duration']; $days = SessionManager::getDayLeftInSession($sessionInfo, $userId); $userSubscription = SessionManager::getUserSession($userId, $sessionId); $extension = $userSubscription['duration']; $firstAccess = api_strtotime($userAccess['login_course_date'], 'UTC'); $firstAccessString = api_convert_and_format_date($userAccess['login_course_date'], DATE_FORMAT_SHORT, 'UTC'); if ($days > 0) { $userSubscription = SessionManager::getUserSession($userId, $sessionId); $duration = $sessionInfo['duration']; if (!empty($userSubscription['duration'])) { $duration = $duration + $userSubscription['duration']; } $msg = sprintf(get_lang('FirstAccessWasXSessionDurationYEndDateInZDays'), $firstAccessString, $duration, $days); } else { if (!empty($subscription['duration'])) { $duration = $duration + $subscription['duration']; } $endDateInSeconds = $firstAccess + $duration * 24 * 60 * 60; $last = api_convert_and_format_date($endDateInSeconds, DATE_FORMAT_SHORT); $msg = sprintf(get_lang('FirstAccessWasXSessionDurationYEndDateWasZ'), $firstAccessString, $duration, $last); } } $header = '
'; $header .= '
'; $header .= '
'; $header .= Display::img($userInfo['avatar'], $userInfo['complete_name']); $header .= '
'; $header .= '
'; $header .= '
'; $userData = $userInfo['complete_name'] .PHP_EOL .$user_info['mail'] .PHP_EOL .$user_info['official_code']; $header .= '

Usuario: ' . Display::url( $userData, api_get_path(WEB_CODE_PATH).'social/profile.php?u='.$user_info['user_id'] ) .'

'; $header .= '

Sesión: ' . $sessionInfo['name'] . '

'; $header .= '

'; $header .='
'; $header .= '
'; $header .= '
'; $header .= $msg; $header .= '

'.'

'; $header .= '
'; $header .= '
'; $form->addElement('html', $header); $formData = '
'; $formData .= '
'; $form->addElement('html', $formData); $form->addElement('number', 'duration', [get_lang('ExtraDurationForUser'), null, get_lang('Days')]); $form->addButtonSave(get_lang('Save')); $formData = '
'; $formData .= '
'; $form->addElement('html', $formData); $form->setDefaults(['duration' => $extension]); $message = null; if ($form->validate()) { $duration = $form->getSubmitValue('duration'); SessionManager::editUserSessionDuration($duration, $userId, $sessionId); $message = Display::return_message(get_lang('ItemUpdated'), 'confirmation'); $url = $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING']; header("Location: " . $url); exit(); } // display the header Display::display_header(get_lang('Edit')); echo $message; $form->display(); Display::display_footer();