UserPortal: Add new link "latest visited course" B#17589

To redirect to the latest visited course/course-session
pull/3419/head
Julio Montoya 5 years ago
parent 1bbcbb4499
commit ed713e1dbf
  1. 35
      main/course_home/last_course.php
  2. 1
      main/course_home/redirect.php
  3. 10
      main/inc/lib/userportal.lib.php
  4. 87
      main/lang/english/trad4all.inc.php
  5. 88
      main/lang/french/trad4all.inc.php
  6. 89
      main/lang/spanish/trad4all.inc.php

@ -0,0 +1,35 @@
<?php
/* For licensing terms, see /license.txt */
$cidReset = true;
require_once __DIR__.'/../inc/global.inc.php';
api_block_anonymous_users();
$table = Database::get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
$userId = api_get_user_id();
$sql = "SELECT DISTINCT c_id, session_id
FROM $table
WHERE
user_id = $userId
ORDER BY logout_course_date DESC
LIMIT 1 ";
$result = Database::query($sql);
if (Database::num_rows($result )) {
$result = Database::fetch_array($result, 'ASSOC');
$courseId = (int) $result['c_id'];
$sessionId = (int) $result['session_id'];
$courseInfo = api_get_course_info_by_id($courseId);
if (!empty($courseInfo)) {
$url = $courseInfo['course_public_url'].'?id_session='.$sessionId;
api_location($url);
}
}
Display::addFlash(Display::return_message(get_lang('YouDidNotVisitACourseHereTheCourseList')));
api_location(api_get_path(WEB_PATH).'user_portal.php');

@ -1,4 +1,5 @@
<?php
/* For licensing terms, see /license.txt */
/**

@ -1031,7 +1031,7 @@ class IndexManager
// My account section
if ($show_create_link) {
if (api_get_setting('course_validation') == 'true' && !api_is_platform_admin()) {
if (api_get_setting('course_validation') === 'true' && !api_is_platform_admin()) {
$items[] = [
'class' => 'add-course',
'icon' => Display::return_icon('new-course.png', get_lang('CreateCourseRequest')),
@ -1108,6 +1108,14 @@ class IndexManager
}
}
if (!api_is_anonymous()) {
$items[] = [
'icon' => Display::return_icon('clock.png', get_lang('LastVisitedCourse')),
'link' => api_get_path(WEB_CODE_PATH).'course_home/last_course.php',
'title' => get_lang('LastVisitedCourse'),
];
}
return $items;
}

@ -8501,7 +8501,7 @@ $CourseInSession = "Courses in sessions";
$UserStats = "Users statistics";
$TotalNumberOfStudents = "Total number of students";
$UsersCreatedInTheSelectedPeriod = "Users created in the selected period";
$UserByLanguage = "Users per language";
$UsersByLanguage = "Users per language";
$Count = "Count";
$SortKeys = "Sort by";
$SubscriptionCount = "Subscription count";
@ -8579,4 +8579,89 @@ $SimpleCourseList = "Standard List";
$AdminCourseList = "Management List";
$AnonymizeUserSessions = "Anonymize user's sessions";
$ContinueLastImport = "Continue last import";
$Notifications = "Notifications";
$Justification = "Justification";
$PeriodicExport = "Periodic export";
$Dates = "Dates";
$ErrorPluginFilesExtensionsInsideZip = "Error: Some of the files inside the zip package have unauthorized extensions.";
$UsersByStatus = "Users by status";
$SessionsPerStatus = "Sessions per status";
$UsersByTargetLanguage = "Users by target language";
$UsersByCareer = "Users by career";
$UsersByContract = "Users by contract";
$UsersByCertificate = "Users by certificate";
$UsersByAge = "Users by age";
$ContinueImport = "Continue the import";
$LDAPConnectFailed = "LDAP connect operation failed.";
$LDAPBindFailed = "ldap_bind() failed.";
$LDAPSearchFailed = "ldap_search() failed.";
$LDAPFirstEntryFailed = "ldap_first_entry() failed.";
$LDAPGetValuesFailed = "ldap_get_values() failed.";
$MoreThanOneAttributeValueFound = "More than one attribute value was found.";
$MoreThanOneUserMatched = "More than one user matched.";
$CourseCodeConfirmation = "Course code confirmation";
$UnsupportedQtiVersion = "Unsupported IMS/QTI version.";
$ExportAllCertificatesToZIP = "Export all certificates to ZIP";
$CurrentScore = "Current score";
$AddAttempt = "Add attempt";
$SurveysWordInASCII = "survey";
$PrivateBetweenUsers = "Private between users";
$Nothing = "Nothing";
$CompilatioAnalysisInProgress = "Compilatio analysis in progress";
$AccountExpiration = "Account expiration";
$JustificationExpiration = "Justification expiration";
$JustificationType = "Justification type";
$Persistent = "Persistent";
$LogoutWithYourAccountFromX = "Logout from your %s account";
$DaysDifference = "Days difference";
$Graduated = "Graduated";
$Absent = "Absent";
$InternalDatabaseError = "Internal database error";
$WrongNumberOfDays = "Wrong number of days";
$SubscriptionNotAllowed = "Subscription not allowed";
$YouPassedTheLimitOfXMinutesToSeeTheResults = "You have passed the %s minutes limit to see the results.";
$LastUpdated = "Last updated";
$Age = "Age";
$ExportToXls = "Export to XLS";
$CourseLearningPathsGenericStats = "Learning paths generic stats";
$FailedToCreateExtraFieldCasUser = "Failed to create extra field cas_user.";
$FailedUserCreation = "Failed to create user.";
$NoSuchUserInLDAP = "No such user in LDAP.";
$NoSuchUserInInternalDatabase = "No such user in the internal database.";
$CouldNotUpdateUser = "The user could not be updated.";
$ModelSessionDoesNotExist = "The template session does not exist.";
$SessionNotRegistered = "Session not registered.";
$CoursesNotAddedToSession = "Courses not added to session.";
$SessionNotFound = "Session not found.";
$UserNotFound = "User not found.";
$UserNotSubscribed = "User not subscribed.";
$NoSessionMatched = "No session matched.";
$MoreThanOneSessionMatched = "More than one session matched.";
$CouldNotLoadUser = "Could not load user.";
$LanguageUnavailable = "Language unavailable.";
$CouldNotUpdateExtraFieldValue = "Could not update extra field value.";
$UnsupportedUpdate = "Unsupported update.";
$NoUserMatched = "No user matched.";
$Resume = "Resume";
$AttendanceFromXToY = "Attendance from %s to %s";
$AddTime = "Add time";
$AddUser = "Add user";
$TimeSpentOnAssignment = "Time spent on assignment";
$UserXSignedTheAgreementTheDateY = "User %s signed the agreement on %s";
$Available = "Available";
$SurveyMultipleChoiceWithOther = "Multiple choice with 'other' option";
$CompilatioDescription = "Compilatio anti-plagiarism module";
$CompilatioQuota = "Quotas";
$CompilatioCreditXOnY = "Credits: %s on %s";
$CompilatioConnectionTestSoap = "SOAP connection test...";
$CompilatioServerConnection = "Connection to Compilatio's SOAP server";
$CompilatioConnectionSuccessful = "Connection successful.";
$CompilatioSendTextToServer = "Sending text to the Compilatio server";
$CompilatioTextSendingTestKeyX = "This is a text sending test to the Compilatio server via its API.\nCompilatio key used: %s";
$CompilatioSuccessfulTransfer = "Transfer successful.";
$CompilatioFailedTransfer = "Transfer failed.";
$CompilatioNoConnection = "Could not connect to Compilatio's SOAP server.";
$CompilatioParamVerification = "Check your key, your server ports and possibly your proxy settings.";
$LastVisitedCourse = "Last visited course";
$YouDidNotVisitACourseHereTheCourseList = "You haven't visited any courses yet, here is the list of your courses.";
?>

@ -8433,7 +8433,7 @@ $CourseInSession = "Cours dans les sessions";
$UserStats = "Statistiques utilisateurs";
$TotalNumberOfStudents = "Nombre total d'étudiants";
$UsersCreatedInTheSelectedPeriod = "Utilisateurs créés durant la période sélectionnée";
$UserByLanguage = "Utilisateurs par langue";
$UsersByLanguage = "Utilisateurs par langue";
$Count = "Nombre";
$SortKeys = "Trier par";
$SubscriptionCount = "Nombre d'inscrits";
@ -8510,4 +8510,90 @@ $RequiredCourses = "Cours requis";
$SimpleCourseList = "Liste standard";
$AdminCourseList = "Gestion administrative";
$AnonymizeUserSessions = "Anonymiser les sessions de l'utilisateur";
$ContinueLastImport = "Poursuivre le dernier import";
$Notifications = "Notifications";
$Justification = "Justification";
$PeriodicExport = "Export périodique";
$Dates = "Dates";
$ErrorPluginFilesExtensionsInsideZip = "Erreur: Certains fichiers au sein du paquet ZIP portent des extensions non autorisées.";
$UsersByStatus = "Utilisateurs par statut";
$SessionsPerStatus = "Sessions par statut";
$UsersByTargetLanguage = "Utilisateurs par langue d'objectif";
$UsersByCareer = "Utilisateurs par carrière";
$UsersByContract = "Utilisateurs par contrat";
$UsersByCertificate = "Utilisateurs par certificat";
$UsersByAge = "Utilisateurs par âge";
$ContinueImport = "Poursuivre l'import";
$LDAPConnectFailed = "L'opération LDAP connect a échoué.";
$LDAPBindFailed = "ldap_bind() a échoué.";
$LDAPSearchFailed = "ldap_search() a échoué.";
$LDAPFirstEntryFailed = "ldap_first_entry() a échoué.";
$LDAPGetValuesFailed = "ldap_get_values() a échoué.";
$MoreThanOneAttributeValueFound = "Plus d'une valeur d'attribut a été trouvée.";
$MoreThanOneUserMatched = "Plus d'un utilisateur correspond.";
$CourseCodeConfirmation = "Confirmation du code de cours";
$UnsupportedQtiVersion = "Version d'IMS/QTI non supportée.";
$ExportAllCertificatesToZIP = "Exporter tous les certificats en ZIP";
$CurrentScore = "Score actuel";
$AddAttempt = "Ajouter tentative";
$SurveysWordInASCII = "enquete";
$PrivateBetweenUsers = "Privé entre utilisateurs";
$Nothing = "Rien";
$CompilatioAnalysisInProgress = "Analyse Compilatio en cours";
$AccountExpiration = "Expiration du compte";
$JustificationExpiration = "Expiration du justificatif";
$JustificationType = "Type de justificatif";
$Persistent = "Persistant";
$LogoutWithYourAccountFromX = "Me déconnecter de mon compte %s";
$DaysDifference = "Différence de jours";
$Graduated = "Gradué";
$Absent = "Absent";
$InternalDatabaseError = "Erreur interne de base de données";
$WrongNumberOfDays = "Nombre de jours erroné";
$SubscriptionNotAllowed = "Souscription non autorisée";
$YouPassedTheLimitOfXMinutesToSeeTheResults = "Vous avez dépassé la limite de %s minutes pour la visualisation des résultats.";
$LastUpdated = "Dernière mise à jour";
$Age = "Âge";
$ExportToXls = "Exporter en XLS";
$CourseLearningPathsGenericStats = "Statistiques génériques des parcours";
$FailedToCreateExtraFieldCasUser = "Erreur à la création du champ de profil cas_user.";
$FailedUserCreation = "Erreur à la création de l'utilisateur.";
$NoSuchUserInLDAP = "Aucun utilisateur LDAP ne correspond.";
$NoSuchUserInInternalDatabase = "Aucun utilisateur ne correspond dans la base de données locale.";
$CouldNotUpdateUser = "L'utilisateur n'a pas pu être mis à jour.";
$ModelSessionDoesNotExist = "La session modèle n'existe pas.";
$SessionNotRegistered = "La session n'a pas été enregistrée.";
$CoursesNotAddedToSession = "Cours non ajoutés à la session.";
$SessionNotFound = "Session introuvable.";
$UserNotFound = "Utilisateur introuvable.";
$UserNotSubscribed = "Utilisateur non inscrit.";
$NoSessionMatched = "Aucune session ne correspond.";
$MoreThanOneSessionMatched = "Plus d'une session correspond.";
$CouldNotLoadUser = "Impossible de charger l'utilisateur.";
$LanguageUnavailable = "Langue indisponible.";
$CouldNotUpdateExtraFieldValue = "Impossible de mettre à jour la valeur du champ de profil.";
$UnsupportedUpdate = "Mise à jour non supportée.";
$NoUserMatched = "Aucun utilisateur ne correspond.";
$Resume = "Résumé";
$AttendanceFromXToY = "Assistance du %s au %s";
$AddTime = "Ajouter du temps";
$AddUser = "Ajouter utilisateur";
$TimeSpentOnAssignment = "Temps passé sur le travail";
$UserXSignedTheAgreementTheDateY = "L'utilisateur %s a signé l'accord le %s";
$Available = "Disponible";
$SurveyMultipleChoiceWithOther = "Choix multiple avec option 'autre'";
$CompilatioDescription = "Module Anti-plagiat Compilatio";
$CompilatioQuota = "Quotas";
$CompilatioCreditXOnY = "Crédits: %s sur %s";
$CompilatioConnectionTestSoap = "Test de connexion SOAP...";
$CompilatioServerConnection = "Connection au serveur SOAP Compilatio";
$CompilatioConnectionSuccessful = "Connection effectuée.";
$CompilatioSendTextToServer = "Envoi d'un texte vers le serveur Compilatio";
$CompilatioTextSendingTestKeyX = "Ceci est un test d'envoi de texte vers le serveur Compilatio via son API\nClé Compilatio utilisée: %s";
$CompilatioSuccessfulTransfer = "Transfert réussi.";
$CompilatioFailedTransfer = "Le transfert a échoué.";
$CompilatioNoConnection = "Impossible d'effectuer la connection au serveur SOAP Compilatio";
$CompilatioParamVerification = "érifiez votre clé, l'ouverture des ports de votre serveur et éventuellement vos paramétres de proxy.";
$LastVisitedCourse = "Dernier cours visité";
$YouDidNotVisitACourseHereTheCourseList = "Vous n'avez encore visité aucun cours, voici la liste de vos cours.";
?>

@ -5470,7 +5470,7 @@ $ToContinueUseMenu = "Para continuar esta lección, por favor use el menú later
$RandomAnswers = "Barajar respuestas";
$NotMarkActivity = "No es posible calificar este elemento";
$YouHaveToCreateAtLeastOneAnswer = "Tienes que crear al menos una respuesta";
$ExerciseAttempted = "Un estudiante ha contestado una pregunta";
$ExerciseAttempted = "Un estudiante ha contestado una prueba";
$MultipleSelectCombination = "Combinación exacta";
$MultipleAnswerCombination = "Combinación exacta";
$ExerciseExpiredTimeMessage = "El tiempo de la evaluación ha terminado. Sin embargo las preguntas que ya respondió, serán consideradas en la evaluación del ejercicio.";
@ -8529,7 +8529,7 @@ $CourseInSession = "Cursos en sesiones";
$UserStats = "Estadísticas usuarios";
$TotalNumberOfStudents = "Número total de estudiantes";
$UsersCreatedInTheSelectedPeriod = "Usuarios creados en el periodo seleccionado";
$UserByLanguage = "Usuarios por idioma";
$UsersByLanguage = "Usuarios por idioma";
$Count = "Número";
$SortKeys = "Ordenar por";
$SubscriptionCount = "Numero de suscripción";
@ -8607,4 +8607,89 @@ $SimpleCourseList = "lista estándar";
$AdminCourseList = "Gestión administrativa";
$AnonymizeUserSessions = "Anonimizar las sesiones del usuario";
$ContinueLastImport = "Continuar con el último importe";
$Notifications = "Notificaciones";
$Justification = "Justificación";
$PeriodicExport = "Exporte periódico";
$Dates = "Fechas";
$ErrorPluginFilesExtensionsInsideZip = "Error: Algunos de los archivos dentro del paquete ZIP tienen extensiones no autorizadas.";
$UsersByStatus = "Usuarios por status";
$SessionsPerStatus = "Sesiones por status";
$UsersByTargetLanguage = "Usuarios por idioma objetivo";
$UsersByCareer = "Usuarios por carrera";
$UsersByContract = "Usuarios por contrato";
$UsersByCertificate = "Usuarios por certificado";
$UsersByAge = "Usuarios por edad";
$ContinueImport = "Seguir con la importación";
$LDAPConnectFailed = "La operación LDAP_connect falló.";
$LDAPBindFailed = "ldap_bind() falló.";
$LDAPSearchFailed = "ldap_search() falló.";
$LDAPFirstEntryFailed = "ldap_first_entry() falló.";
$LDAPGetValuesFailed = "ldap_get_values() falló.";
$MoreThanOneAttributeValueFound = "Más de un valor de atributo ha sido encontrado.";
$MoreThanOneUserMatched = "Más de un usuario corresponde.";
$CourseCodeConfirmation = "Confirmación de código de curso";
$UnsupportedQtiVersion = "Versión IMS/QTI no soportada.";
$ExportAllCertificatesToZIP = "Exportar todos los certificados a ZIP";
$CurrentScore = "Score actual";
$AddAttempt = "Añadir intento";
$SurveysWordInASCII = "encuesta";
$PrivateBetweenUsers = "Privado entre usuarios";
$Nothing = "Nada";
$CompilatioAnalysisInProgress = "Análisis de Compilatio en progreso";
$AccountExpiration = "Expiración de cuenta";
$JustificationExpiration = "Expiración de justificativo";
$JustificationType = "Tipo de justificativo";
$Persistent = "Persistente";
$LogoutWithYourAccountFromX = "Desconectarse de la cuenta %s";
$DaysDifference = "Días de diferencia";
$Graduated = "Graduado";
$Absent = "Ausente";
$InternalDatabaseError = "Error interno de base de datos";
$WrongNumberOfDays = "Número de días erróneo";
$SubscriptionNotAllowed = "Suscripción no autorizada";
$YouPassedTheLimitOfXMinutesToSeeTheResults = "Ha pasado el límite de %s minutos para ver los resultados.";
$LastUpdated = "Última actualización";
$Age = "Edad";
$ExportToXls = "Exportar a XLS";
$CourseLearningPathsGenericStats = "Estadísticas genéricas de lecciones";
$FailedToCreateExtraFieldCasUser = "Falló la creación del campo de perfil cas_user.";
$FailedUserCreation = "Falló la creación del usuario.";
$NoSuchUserInLDAP = "No corresponde ningún usuario en LDAP.";
$NoSuchUserInInternalDatabase = "No corresponde ningún usuario en la base de datos local.";
$CouldNotUpdateUser = "El usuario no ha podido ser actualizado.";
$ModelSessionDoesNotExist = "La sesión plantilla no existe.";
$SessionNotRegistered = "Sesión no registrada.";
$CoursesNotAddedToSession = "Cursos no añadidos a la sesión.";
$SessionNotFound = "Sesión no encontrada.";
$UserNotFound = "Usuario no encontrado.";
$UserNotSubscribed = "Usuario no inscrito.";
$NoSessionMatched = "Ninguna sesión corresponde.";
$MoreThanOneSessionMatched = "Más de una sesión corresponde.";
$CouldNotLoadUser = "Imposible de cargar el usuario.";
$LanguageUnavailable = "Idioma no disponible.";
$CouldNotUpdateExtraFieldValue = "Imposible actualizar el campo de perfil.";
$UnsupportedUpdate = "Actualización no soportada.";
$NoUserMatched = "Ningún usuario corresponde.";
$Resume = "Resumen";
$AttendanceFromXToY = "Asistencia del %s al %s";
$AddTime = "Añadir tiempo";
$AddUser = "Añadir usuario";
$TimeSpentOnAssignment = "Tiempo dedicado a la tarea";
$UserXSignedTheAgreementTheDateY = "El usuario %s firmó el acuerdo el %s";
$Available = "Disponible";
$SurveyMultipleChoiceWithOther = "Elección múltiple con opción 'otro'";
$CompilatioDescription = "Módulo anti-plagio de Compilatio";
$CompilatioQuota = "Quotas";
$CompilatioCreditXOnY = "Créditos: %s sobre %s";
$CompilatioConnectionTestSoap = "Prueba de conexión SOAP...";
$CompilatioServerConnection = "Conexión al servidor SOAP de Compilatio";
$CompilatioConnectionSuccessful = "Conexión exitosa.";
$CompilatioSendTextToServer = "Envío de texto al servidor de Compilatio";
$CompilatioTextSendingTestKeyX = "Esta es una prueba de envío de texto al servidor de Compilatio a través de su API.\nLlave Compilatio usada: %s";
$CompilatioSuccessfulTransfer = "Transferencia exitosa.";
$CompilatioFailedTransfer = "La transferencia falló.";
$CompilatioNoConnection = "Imposible conectarse al servidor SOAP de Compilatio.";
$CompilatioParamVerification = "Verifique su clave, los puertos de sus servidores y posiblemente sus parámetros de proxy.";
$LastVisitedCourse = "Último curso visitado";
$YouDidNotVisitACourseHereTheCourseList = "Aún no ha visitado ningún curso, aquí está la lista de sus cursos.";
?>
Loading…
Cancel
Save