Update from 1.11.x

pull/3890/head
Julio Montoya 4 years ago
parent ef8cff5d5c
commit d0ad3303e2
  1. 12
      public/main/blog/blog.php
  2. 1
      public/main/group/group_category.php
  3. 6
      public/main/inc/ajax/agenda.ajax.php
  4. 2
      public/main/inc/ajax/course.ajax.php
  5. 6
      public/main/inc/ajax/exercise.ajax.php
  6. 3
      public/main/inc/lib/agenda.lib.php
  7. 1
      public/main/inc/lib/certificate.lib.php
  8. 2
      public/main/inc/lib/pear/Text/CAPTCHA.php
  9. 60
      public/main/inc/lib/webservices/Rest.php
  10. 5
      public/main/lang/english/trad4all.inc.php
  11. 67
      public/main/lang/french/trad4all.inc.php
  12. 63
      public/main/lang/spanish/trad4all.inc.php
  13. 49
      public/main/webservices/api/v2.php

@ -30,9 +30,6 @@ $MonthsLong = api_get_months_long();
$action = isset($_GET['action']) ? $_GET['action'] : null;
/*
PROCESSING
*/
$safe_post_file_comment = isset($_POST['post_file_comment']) ? Security::remove_XSS($_POST['post_file_comment']) : null;
$safe_comment_text = isset($_POST['comment_text']) ? Security::remove_XSS($_POST['comment_text']) : null;
@ -266,7 +263,6 @@ $searchBlog = isset($_GET['q']) ? Security::remove_XSS($_GET['q']) : '';
$month = isset($_GET['month']) ? (int) $_GET['month'] : (int) date('m');
$year = isset($_GET['year']) ? (int) $_GET['year'] : date('Y');
$calendarBlog = Blog::displayMiniMonthCalendar($month, $year, $blog_id);
//task blogs
$taskBlog = Blog::getPersonalTasksList();
if (isset($flag) && '1' == $flag) {
@ -369,19 +365,19 @@ switch ($action) {
case 'manage_tasks':
if (api_is_allowed('BLOG_'.$blog_id, 'task_management')) {
$task = null;
if (isset($_GET['do']) && 'add' == $_GET['do']) {
if (isset($_GET['do']) && 'add' === $_GET['do']) {
$task .= Blog::displayTaskCreateForm($blog_id);
}
if (isset($_GET['do']) && 'assign' == $_GET['do']) {
if (isset($_GET['do']) && 'assign' === $_GET['do']) {
$task .= Blog::displayTaskAssignmentForm($blog_id);
}
if (isset($_GET['do']) && 'edit' == $_GET['do']) {
if (isset($_GET['do']) && 'edit' === $_GET['do']) {
$task .= Blog::displayTaskEditForm(
$blog_id,
intval($_GET['task_id'])
);
}
if (isset($_GET['do']) && 'edit_assignment' == $_GET['do']) {
if (isset($_GET['do']) && 'edit_assignment' === $_GET['do']) {
$task .= Blog::displayAssignedTaskEditForm(
$blog_id,
intval($_GET['task_id']),

@ -6,7 +6,6 @@ require_once __DIR__.'/../inc/global.inc.php';
$this_section = SECTION_COURSES;
$current_course_tool = TOOL_GROUP;
// Notice for unauthorized people.
api_protect_course_script(true);
$sessionId = api_get_session_id();

@ -157,15 +157,15 @@ switch ($action) {
}
$today = getdate();
$year = (!empty($_GET['year']) ? (int) $_GET['year'] : null);
if (null == $year) {
if (null === $year) {
$year = $today['year'];
}
$month = (!empty($_GET['month']) ? (int) $_GET['month'] : null);
if (null == $month) {
if (null === $month) {
$month = $today['mon'];
}
$day = (!empty($_GET['day']) ? (int) $_GET['day'] : null);
if (null == $day) {
if (null === $day) {
$day = $today['mday'];
}
$monthName = $MonthsLong[$month - 1];

@ -157,7 +157,7 @@ switch ($action) {
$courseList = CourseManager::get_courses_list(
0,
0,
1,
'title',
'ASC',
-1,
$_GET['q'],

@ -448,7 +448,6 @@ switch ($action) {
$learnpath_id = isset($_REQUEST['learnpath_id']) ? (int) $_REQUEST['learnpath_id'] : 0;
$learnpath_item_id = isset($_REQUEST['learnpath_item_id']) ? (int) $_REQUEST['learnpath_item_id'] : 0;
// Attempt id.
if ($debug) {
error_log("exe_id = $exeId");
error_log("type = $type");
@ -458,7 +457,6 @@ switch ($action) {
error_log('--------------------------------');
}
// Exercise information.
/** @var Exercise $objExercise */
$objExercise = Session::read('objExercise');
@ -832,12 +830,12 @@ switch ($action) {
if ($savedAnswersCount !== $questionsCount) {
$savedQuestionsMessage = Display::span(
sprintf(get_lang('XAnswersSavedByUsersFromXTotal'), $savedAnswersCount, $questionsCount),
sprintf(get_lang('%d / %d answers saved.'), $savedAnswersCount, $questionsCount),
['class' => 'text-warning']
);
} else {
$savedQuestionsMessage = Display::span(
sprintf(get_lang('XAnswersSavedByUsersFromXTotal'), $savedAnswersCount, $questionsCount),
sprintf(get_lang('%d / %d answers saved.'), $savedAnswersCount, $questionsCount),
['class' => 'text-success']
);
}

@ -168,8 +168,9 @@ class Agenda
*/
public function setType($type)
{
$type = (string) trim($type);
$typeList = $this->getTypes();
if (in_array($type, $typeList)) {
if (in_array($type, $typeList, true)) {
$this->type = $type;
}
}

@ -513,7 +513,6 @@ class Certificate extends Model
*/
public function generateQRImage($text, $path)
{
// Make sure HTML certificate is generated
if (!empty($text) && !empty($path)) {
$qrCode = new QrCode($text);
//$qrCode->setEncoding('UTF-8');

@ -1,4 +1,5 @@
<?php
/**
* Text_CAPTCHA - creates a CAPTCHA for Turing tests.
* Base class file for using Text_CAPTCHA.
@ -11,7 +12,6 @@
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
* @link http://pear.php.net/package/Text_CAPTCHA
*/
//require_once 'Text/Password.php';
/**
* Text_CAPTCHA - creates a CAPTCHA for Turing tests.

@ -50,6 +50,7 @@ class Rest extends WebService
public const SAVE_USER = 'save_user';
public const SAVE_USER_JSON = 'save_user_json';
public const SUBSCRIBE_USER_TO_COURSE = 'subscribe_user_to_course';
public const UNSUBSCRIBE_USER_FROM_COURSE = 'unsubscribe_user_from_course';
public const EXTRAFIELD_GCM_ID = 'gcm_registration_id';
public const GET_USER_MESSAGES_RECEIVED = 'user_messages_received';
public const GET_USER_MESSAGES_SENT = 'user_messages_sent';
@ -61,6 +62,7 @@ class Rest extends WebService
public const SAVE_SESSION = 'save_session';
public const GET_USERS = 'get_users';
public const GET_COURSES = 'get_courses';
public const GET_COURSES_FROM_EXTRA_FIELD = 'get_courses_from_extra_field';
public const ADD_COURSES_SESSION = 'add_courses_session';
public const ADD_USERS_SESSION = 'add_users_session';
public const CREATE_SESSION_FROM_MODEL = 'create_session_from_model';
@ -70,6 +72,7 @@ class Rest extends WebService
public const USERNAME_EXIST = 'username_exist';
public const GET_COURSE_QUIZ_MDL_COMPAT = 'get_course_quiz_mdl_compat';
public const UPDATE_USER_PAUSE_TRAINING = 'update_user_pause_training';
public const DELETE_COURSE = 'delete_course';
/**
* @var Session
@ -290,16 +293,14 @@ class Rest extends WebService
/**
* Get the user courses.
*
* @throws \Doctrine\ORM\TransactionRequiredException
* @throws \Doctrine\ORM\ORMException
* @throws \Doctrine\ORM\OptimisticLockException
*
* @return array
*/
public function getUserCourses()
public function getUserCourses($userId = 0): array
{
$courses = CourseManager::get_courses_list_by_user_id($this->user->getId());
if (empty($userId)) {
$userId = $this->user->getId();
}
$courses = CourseManager::get_courses_list_by_user_id($userId);
$data = [];
foreach ($courses as $courseInfo) {
@ -1145,7 +1146,7 @@ class Rest extends WebService
{
$idCampus = $params['id_campus'];
$courseList = CourseManager::get_courses_list(
return CourseManager::get_courses_list(
0, //offset
0, //howMany
1, //$orderby = 1
@ -1156,7 +1157,6 @@ class Rest extends WebService
true //AlsoSearchCode
);
return $courseList;
}
/**
@ -1211,17 +1211,14 @@ class Rest extends WebService
return $out;
}
/**
* @return array
*/
public function addCourse(array $courseParam)
public function addCourse(array $courseParam): array
{
$results = [];
$idCampus = isset($courseParam['id_campus']) ? $courseParam['id_campus'] : 1;
$title = isset($courseParam['title']) ? $courseParam['title'] : '';
$wantedCode = isset($courseParam['wanted_code']) ? $courseParam['wanted_code'] : null;
$diskQuota = isset($courseParam['disk_quota']) ? $courseParam['disk_quota'] : '100';
$visibility = isset($courseParam['visibility']) ? (int) $courseParam['visibility'] : null;
$removeCampusId = $courseParam['remove_campus_id_from_wanted_code'] ?? 0;
if (isset($courseParam['visibility'])) {
if ($courseParam['visibility'] &&
@ -1235,12 +1232,16 @@ class Rest extends WebService
$params = [];
$params['title'] = $title;
$params['wanted_code'] = 'CAMPUS_'.$idCampus.'_'.$wantedCode;
if (1 === (int) $removeCampusId) {
$params['wanted_code'] = $wantedCode;
}
$params['user_id'] = $this->user->getId();
$params['visibility'] = $visibility;
$params['disk_quota'] = $diskQuota;
$courseInfo = CourseManager::create_course($params, $params['user_id'], $idCampus);
$results = [];
if (!empty($courseInfo)) {
$results['status'] = true;
$results['code_course'] = $courseInfo['code'];
@ -1274,11 +1275,10 @@ class Rest extends WebService
$language = '';
$phone = '';
$picture_uri = '';
$auth_source = PLATFORM_AUTH_SOURCE;
$auth_source = $userParam['auth_source'] ?? PLATFORM_AUTH_SOURCE;
$expiration_date = '';
$active = 1;
$hr_dept_id = 0;
$extra = null;
$original_user_id_name = $userParam['original_user_id_name'];
$original_user_id_value = $userParam['original_user_id_value'];
@ -1388,19 +1388,39 @@ class Rest extends WebService
$course_id = $params['course_id'];
$course_code = $params['course_code'];
$user_id = $params['user_id'];
$status = $params['status'] ?? STUDENT;
if (!$course_id && !$course_code) {
return [false];
}
if (!$course_code) {
$course_code = CourseManager::get_course_code_from_course_id($course_id);
}
if (CourseManager::subscribeUser($user_id, $course_code)) {
if (CourseManager::subscribeUser($user_id, $course_code, $status)) {
return [true];
} else {
}
return [false];
}
public function unSubscribeUserToCourse(array $params): array
{
$courseId = $params['course_id'];
$courseCode = $params['course_code'];
$userId = $params['user_id'];
if (!$courseId && !$courseCode) {
return [false];
}
return [true];
if (!$courseCode) {
$courseCode = CourseManager::get_course_code_from_course_id($courseId);
}
if (CourseManager::unsubscribe_user($userId, $courseCode)) {
return [true];
}
return [false];
}
public function deleteUserMessage($messageId, $messageType)

@ -8703,7 +8703,7 @@ $ToInvoice = "To invoice";
$LearningPathItemByAuthor = "LP item by author";
$DeleteExerciseAttempts = "Delete also the exercise attempts. If not check then the exercise results will still be available in the exercise tool.";
$ExerciseCategoriesRadarMode = "Only show a radar of scores by category, instead of a table of categories. Do not show individual scores or feedback.";
$ExerciseBlockBecausePercentageX = "All attemps blocked because you did not reach the minimum score of %s % at one of your attemps.";
$ExerciseBlockBecausePercentageX = "All attempts blocked because you did not reach the minimum score of %s %% at one of your attemps.";
$RegisteredAuthors = "Authors that have been registered :";
$Price = "Price";
$PriceUpdated = "Price updated";
@ -8767,4 +8767,7 @@ $ExportMyPortfolioDataZip = "Export my portfolio data in a ZIP file";
$PortfolioCategoryFieldHelp = "Categories are for organization only in personal portfolio.";
$ExportMytPortfolioDataPdf = "Export my portfolio data to a PDF file";
$ExportMytPortfolioDataZip = "Export my portfolio data to a ZIP file";
$NewLearningPathSubject = "New learning path available";
$NewLearningPathBody = "There is a new learning path called %s that has been added to your %s course. Go to this learning path here : %s";
$XPercentCompleted = "%s %% Completed";
?>

@ -607,7 +607,7 @@ $Stats = "Suivi";
$UplPage = "Déposer page et lier à l'accueil";
$LinkSite = "Ajouter un lien sur la page d'accueil";
$HasDel = "a été supprimé";
$ByDel = "En supprimant ce cours, vous supprimerez tous les documents qu'il contient et désinscrirez tous les membres qui y sont inscrits. <p>Voulez-vous réellement supprimer ce cours ?";
$ByDel = "En supprimant ce cours, vous supprimerez tous les documents qu'il contient et désinscrirez tous les membres qui y sont inscrits.";
$Y = "OUI";
$N = "NON";
$DepartmentUrl = "URL du département";
@ -6662,7 +6662,7 @@ $NewExercises = "Nouveaux exercices";
$MyAverage = "Ma moyenne";
$AllAttempts = "Toutes les tentatives";
$QuestionsToReview = "Questions à revoir";
$QuestionWithNoAnswer = "Questions sans réponses";
$QuestionWithNoAnswer = "Questions sans réponses surlignées en rouge ci-dessous";
$ValidateAnswers = "Finaliser l'exercice";
$ReviewQuestions = "Revoir les questions sélectionnées";
$YouTriedToResolveThisExerciseEarlier = "Vous avez essayé de résoudre cet exercice plus tôt";
@ -6768,7 +6768,7 @@ $CourseCalendar = "Calendrier de cours";
$Reports = "Rapports";
$ResultsNotRevised = "Résultats non-révisés";
$ResultNotRevised = "Résultat non révisé";
$dateFormatShortNumber = "%d%m%Y";
$dateFormatShortNumber = "%d/%m/%Y";
$dateTimeFormatLong24H = "le %d %B %Y à %H:%M";
$ActivateLegal = "Activer les termes légaux";
$ShowALegalNoticeWhenEnteringTheCourse = "Montrer un avis légal lors de l'entrée dans le cours";
@ -6929,7 +6929,7 @@ $DatabaseXWillBeCreated = "La base de donnée %s va être créée";
$ADatabaseWithTheSameNameAlreadyExists = "Une base de donnée du même nom existe déjà. Si vous utilisez cette base, son contenu actuel sera écrasé.";
$UserXCantHaveAccessInTheDatabaseX = "L'utilisateur %s n'a pas accès à la base de donnée %s";
$DatabaseXCantBeCreatedUserXDoestHaveEnoughPermissions = "La base de donnée %s ne peut pas être crée, l'utilisateur %s n'a pas suffisamment de permissions.";
$CopyOnlySessionItems = "Copier seulement les élémenents de la session";
$CopyOnlySessionItems = "Copier seulement les éléments de la session";
$FirstLetterCourseTitle = "Première lettre (title)";
$NumberOfPublishedExercises = "# d'exerices publiés";
$NumberOfPublishedLps = "# de parcours publiés";
@ -7462,7 +7462,7 @@ $FieldTypeLettersSpaces = "Texte lettres et espaces";
$CronRemindCourseFinishedActivateTitle = "Envoyer un avis de fin de cours";
$FieldTypeAlphanumericSpaces = "Texte alphanumérique et espaces";
$CronRemindCourseFinishedActivateComment = "Envoyer un courriel aux étudiants lorsque leur cours (au sein de la session) se termine. Cette fonctionnalité exige la configuration d'une tâche cron sur le serveur (voir répertoire main/cron/)";
$ThanksForRegisteringToSite = "Merci de vous êtes inscrit à %s.";
$ThanksForRegisteringToSite = "Merci de vous être inscrit à %s.";
$AllowCoachFeedbackExercisesTitle = "Permettre aux tuteurs de commenter les réponses aux exercices";
$AllowCoachFeedbackExercisesComment = "Permettre aux tuteurs d'éditer les commentaires lors de la révision des exercices";
$PreventMultipleSimultaneousLoginTitle = "Empêcher les logins simultanés";
@ -7524,7 +7524,7 @@ $Convert = "Convertir";
$PortalLimitType = "Type de limite du portail";
$PortalName = "Nom du portail";
$BestScore = "Meilleur score";
$AreYouSureToDeleteJS = "Êtes-vous certain de vouloir supprimer";
$AreYouSureToDeleteJS = "Êtes-vous certain de vouloir supprimer ?";
$ConversionToSameFileFormat = "Conversion au format original bloquée. Veuillez choisir un autre format.";
$FileFormatNotSupported = "Format de fichier non supporté.";
$FileConvertedFromXToY = "Fichier converti de %s à %s";
@ -8635,7 +8635,7 @@ $ToInvoice = "À facturer";
$LearningPathItemByAuthor = "Éléménts de parcours par auteur";
$DeleteExerciseAttempts = "Supprimer également les tentatives des exercices concernés";
$ExerciseCategoriesRadarMode = "Afficher uniquement un radar des scores par catégorie, au lieu d'un tableau de catégories. Ne montre pas les scores ou les commentaires individuels.";
$ExerciseBlockBecausePercentageX = "Toutes les tentatives ont été bloquées car vous n’avez pas atteint le score minimum de %s % à l’une de vos tentatives.";
$ExerciseBlockBecausePercentageX = "Toutes les tentatives ont été bloquées car vous n’avez pas atteint le score minimum de %s %% à l’une de vos tentatives.";
$RegisteredAuthors = "Auteurs qui ont été enregistrés :";
$Price = "Prix";
$PriceUpdated = "Prix mis à jour";
@ -8646,6 +8646,59 @@ $XQuestionsSelectedWithTotalScoreY = "Seules %d questions seront sélectionnées
$QuestionAlsoUsedInTheFollowingTests = "Question utilisée également dans les exercices suivants";
$LinkToTestEdition = "Lien vers l'édition de l'exercice";
$MoveUsersFromCourseToSession = "Déplacer les résultats utilisateurs de tout un cours dans/vers une session";
$IfYourQuizHaveHotspotQuestionsIncludedYouShouldSelectTheImagesFromTheDocuments = "Si votre quiz contient des questions de type zones sur image, vous devez sélectionner les images associées dans les documents.";
$BackToAttemptList = "Retour à la liste des tentatives";
$ShowScoreEveryAttemptShowAnswersLastAttemptNoFeedback = "Montrer le score, le choix de l'apprenant et son feedback à chaque tentative, ajouter la réponse correcte et son feedback lorsque la limite choisie de tentatives est atteinte.";
$AddGradebookComment = "Commentaire";
$LatestLoginInAnyCourse = "Dernier accès à un cours";
$The = "Le";
$MultiplicateQuestionsByClass = "Multiplier les questions par classe";
$MultiplicateQuestionsByUser = "Multiplier les questions par utilisateur";
$QuestionForNextUser = "Questions concernant l'apprenant suivant";
$CourseCodeToEnteredCapitalLettersToConfirmDeletionX = "Code du cours à saisir en majuscules pour confirmer la suppression : %s";
$BadgeXTitle = "Badge : %s";
$PortfolioCommentFromXUser = "Commenté par %s";
$PortfolioItemFromXUser = "Item de Portfolio de %s";
$CopyToMyPortfolio = "Copier dans mon portfolio";
$CopyToStudentPortfolio = "Copier dans le portfolio de l'étudiant";
$OriginallyPublishedAsXTitleByYUser = "Publier à l'origine comme %s par %s";
$OriginallyCommentedByXUserInYItem = "Commenté à l'origine par %s dans %s";
$PortfolioItemAddedToStudents = "Item rajouter dans le portfolio de l'apprenant";
$MarkCommentAsImportant = "Marquer le commentaire comme important";
$UnmarkCommentAsImportant = "Enlever la marque d'importance sur le commentaire";
$CommentMarkedAsImportant = "Item de portfolio marqué comme important";
$SelectLearnerPortfolio = "Choisir le portfolio d'un apprenant";
$SeeMyPortfolio = "Voir mon portfolio dans ce cours";
$PortfolioDetails = "Détails du portfolio";
$PortfolioItemTitle = "Titre de l'item";
$CreationDateXDate = "Date de création : %s";
$UpdateDateXDate = "Date de mise à jour : %s";
$CategoryXName = "Catégorie : %s";
$DateXDate = "Date : %s";
$PortfolioItemTitleXName = "Titre de l'item : %s";
$NoItemsInYourPortfolio = "Aucun item dans votre portfolio";
$YouHaveNotCommented = "Vous n'avez pas commenté";
$PortfolioItems = "Items de portfolio";
$PortfolioComments = "Commentaires de portfolio";
$PortfolioCommentsMade = "Commentaires réalisés";
$QualifyThisPortfolioItem = "Noter cet item";
$PortfolioItemGraded = "L'item de portfolio a été noté";
$ContextForCommentToBeGrade = "Context pour le commentaire à noter";
$QualifyThisPortfolioComment = "Noter ce commentaire";
$PortfolioCommentGraded = "Le commentaire du portfolio a été noté";
$QualifyPortfolioItems = "Noter les items";
$QualifyPortfolioComments = "Évaluer les commentaires";
$HideCorrectAnsweredQuestions = "Cacher les questions qui ont eu une réponse correcte";
$TheSettingXWillChangeToX = "Le paramètre \"%s\" sera modifié avec \"%s\"";
$VerificationOfAnsweredQuestions = "Vérification des réponses aux questions";
$StudentPublicationToCorrect = "Travaux d'étudiant à corriger";
$StudentPublicationCorrectionWarning = "Vous trouverez ci-dessous tous les travaux qui ont été soumis par des étudiants dans l'un de vos cours (cela peut être dans le cours de base ou dans un cours en session). Vous pouvez filtrer la liste en sélectionnant un cours spécifique ou un statut de travail.";
$BackToMainPortfolio = "Retour au portfolio principal du cours";
$ExportMyPortfolioDataPdf = "Exporter mon portfolio au format PDF";
$ExportMyPortfolioDataZip = "Exporter mon portfolio au format ZIP";
$PortfolioCategoryFieldHelp = "Les catégories sont pour l'organisation du portfolio personnel uniquement.";
$ExportMytPortfolioDataPdf = "Exporter mon portfolio au format PDF";
$ExportMytPortfolioDataZip = "Exporter mon portfolio au format ZIP";
$NewLearningPathSubject = "Nouveau parcours disponible";
$NewLearningPathBody = "Un nouveau parcours nommé %s a été ajouté à votre cours %s. Consulter ce parcours ici : %s";
?>

@ -619,7 +619,7 @@ $Stats = "Estadísticas";
$UplPage = "Enviar una página y enlazarla a la principal";
$LinkSite = "Añadir un enlace web en la página principal";
$HasDel = "ha sido suprimido";
$ByDel = "Si suprime el sitio web de este curso, suprimirá todos los documentos que contiene y todos sus miembros dejarán de estar inscritos en el mismo. <p>¿ Está seguro de querer suprimir este curso ?";
$ByDel = "Si suprime el sitio web de este curso, suprimirá todos los documentos que contiene y todos sus miembros dejarán de estar inscritos en el mismo.";
$Y = "SI";
$N = "NO";
$DepartmentUrl = "URL del departamento";
@ -6679,7 +6679,7 @@ $NewExercises = "Nuevo ejercicio";
$MyAverage = "Mi promedio";
$AllAttempts = "Todos los intentos";
$QuestionsToReview = "Preguntas que desea comprobar";
$QuestionWithNoAnswer = "Preguntas sin responder";
$QuestionWithNoAnswer = "Preguntas sin respuesta resaltadas en rojo a continuación";
$ValidateAnswers = "Validar respuestas";
$ReviewQuestions = "Revisar las preguntas seleccionadas";
$YouTriedToResolveThisExerciseEarlier = "Ya intentó resolver este ejercicio anteriormente";
@ -7607,7 +7607,7 @@ $Convert = "Convertir";
$PortalLimitType = "Tipo de límite del portal";
$PortalName = "Nombre del portal";
$BestScore = "Mejor calificación";
$AreYouSureToDeleteJS = "Está seguro de eliminar";
$AreYouSureToDeleteJS = "¿Está seguro de eliminar?";
$ConversionToSameFileFormat = "Conversión al mismo formato de archivo. Por favor, selecciones otro.";
$FileFormatNotSupported = "Formato de archivo no soportado.";
$FileConvertedFromXToY = "Archivo convertido de %s a %s";
@ -8731,7 +8731,7 @@ $ToInvoice = "Por facturar";
$LearningPathItemByAuthor = "Item de lección, por autor";
$DeleteExerciseAttempts = "También eliminar el resultado de los ejercicios, de lo contrario los resultados seguirán existiendo desconectados de la lección.";
$ExerciseCategoriesRadarMode = "Muestra solo un radar de puntuaciones por categoría, en lugar de una tabla de categorías. No muestra puntuaciones o comentarios individuales.";
$ExerciseBlockBecausePercentageX = "Todos los intentos bloqueados porque no alcanzó la puntuación mínima de %s % en uno de sus intentos.";
$ExerciseBlockBecausePercentageX = "Todos los intentos bloqueados porque no alcanzó la puntuación mínima de %s %% en uno de sus intentos.";
$RegisteredAuthors = "Autores que han sido registrados:";
$Price = "Precio";
$PriceUpdated = "Precio actualizado";
@ -8745,4 +8745,57 @@ $MoveUsersFromCourseToSession = "Mover resultados de usuarios del curso base a u
$IfYourQuizHaveHotspotQuestionsIncludedYouShouldSelectTheImagesFromTheDocuments = "Si su ejercicio tiene preguntas del tipo Zona interactiva, debería seleccionar las imágenes relacionadas desde los documentos.";
$BackToAttemptList = "Regresar a la lista de intentos";
$ShowScoreEveryAttemptShowAnswersLastAttemptNoFeedback = "Mostrar el resultado al alumno: mostrar la puntuación, la elección del alumno y sus comentarios en cada intento, agrega la respuesta correcta y sus comentarios cuando se alcance el límite de intentos elegido.";
?>
$AddGradebookComment = "Comentario";
$LatestLoginInAnyCourse = "Último acceso en un curso";
$The = "El";
$MultiplicateQuestionsByClass = "Multiplicar las preguntas por clase";
$MultiplicateQuestionsByUser = "Multiplicar las preguntas por usuario";
$QuestionForNextUser = "Preguntas sobre el usuario siguiente";
$CourseCodeToEnteredCapitalLettersToConfirmDeletionX = "El código del curso que debe ingresar en mayúsculas para confirmar la eliminación: %s";
$BadgeXTitle = "Insignia: %s";
$PortfolioCommentFromXUser = "Comentario de %s";
$PortfolioItemFromXUser = "Artículo del portafolio de %s";
$CopyToMyPortfolio = "Copiar a mi portafolio";
$CopyToStudentPortfolio = "Copiar al portafolio del estudiante";
$OriginallyPublishedAsXTitleByYUser = "Originalmente publicado como \"%s\" por %s";
$OriginallyCommentedByXUserInYItem = "Originalmente comentado por %s en \"%s\"";
$PortfolioItemAddedToStudents = "Artículo agregado al portafolio de los estudiantes";
$MarkCommentAsImportant = "Marcar comentario como importante";
$UnmarkCommentAsImportant = "Desmarcar comentario como importante";
$CommentMarkedAsImportant = "Cometario marcado como importante";
$SelectLearnerPortfolio = "Seleccionar un portafolio de estudiante";
$SeeMyPortfolio = "Ver mi portafolio en este curso";
$PortfolioDetails = "Detalles del portafolio";
$PortfolioItemTitle = "Título del artículo";
$CreationDateXDate = "Fecha de creación: %s";
$UpdateDateXDate = "Fecha de actualización: %s";
$CategoryXName = "Categoría: %s";
$DateXDate = "Fecha: %s";
$PortfolioItemTitleXName = "Título del artículo: %s";
$NoItemsInYourPortfolio = "No hay artículos en su portafolio";
$YouHaveNotCommented = "Usted no ha comentado";
$PortfolioItems = "Artículos del portafolio";
$PortfolioComments = "Comentarios en portafolio";
$PortfolioCommentsMade = "Comentarios hechos";
$QualifyThisPortfolioItem = "Calificar este artículo";
$PortfolioItemGraded = "El artículo del portafolio fue calificado";
$ContextForCommentToBeGrade = "Contexto para el comentario a ser calificado";
$QualifyThisPortfolioComment = "Calificar este comentario";
$PortfolioCommentGraded = "El comentario en el portafolio fue calificado";
$QualifyPortfolioItems = "Calificar artículos";
$QualifyPortfolioComments = "Calificar comentarios";
$HideCorrectAnsweredQuestions = "Esconder las preguntas con respuestas correctas";
$TheSettingXWillChangeToX = "La opción \"%s\" será modificada con el valor \"%s\"";
$VerificationOfAnsweredQuestions = "Verificación de preguntas respondidas";
$StudentPublicationToCorrect = "Tareas de estudiante para ser corregidas";
$StudentPublicationCorrectionWarning = "A continuación encontrará todos los trabajos que han enviado los alumnos en uno de sus cursos (puede ser en el curso base o en un curso en una sesión). Puede filtrar la lista seleccionando un curso específico o un estado de tarea.";
$BackToMainPortfolio = "Regresar al portafolio principal del curso";
$ExportMyPortfolioDataPdf = "Exportar los datos de mi portafolio en un archivo PDF";
$ExportMyPortfolioDataZip = "Exportar los datos de mi portafolio en un archivo ZIP";
$PortfolioCategoryFieldHelp = "Las categorías son sólo para organización en el portafolio personal";
$ExportMytPortfolioDataPdf = "Exportar los datos de mi portafolio a un archivo PDF";
$ExportMytPortfolioDataZip = "Exportar los datos de mi portafolio a un archivo ZIP";
$NewLearningPathSubject = "Nueva lección publicada";
$NewLearningPathBody = "Hay una nueva leccion llamada %s que ha sido agregada al curso %s. Acceder a la lección aqui: %s";
$XPercentCompleted = "%s %% Completado";
?>

@ -98,7 +98,8 @@ try {
$restResponse->setData($data);
break;
case Rest::GET_USER_COURSES:
$courses = $restApi->getUserCourses();
$userId = isset($_REQUEST['user_id']) ? (int) $_REQUEST['user_id'] : 0;
$courses = $restApi->getUserCourses($userId);
$restResponse->setData($courses);
break;
case Rest::GET_COURSE_INFO:
@ -184,6 +185,10 @@ try {
$data = $restApi->subscribeUserToCourse($_POST);
$restResponse->setData($data);
break;
case Rest::UNSUBSCRIBE_USER_FROM_COURSE:
$data = $restApi->unSubscribeUserToCourse($_POST);
$restResponse->setData($data);
break;
case Rest::CREATE_CAMPUS:
$data = $restApi->createCampusURL($_POST);
$restResponse->setData($data);
@ -208,6 +213,48 @@ try {
$data = $restApi->getCoursesCampus($_POST);
$restResponse->setData($data);
break;
case Rest::GET_COURSES_FROM_EXTRA_FIELD:
$variable = $_REQUEST['extra_field_variable'] ?? '';
$urlId = $_REQUEST['id_campus'] ?? '';
$extraField = new ExtraField('course');
$extraFieldInfo = $extraField->get_handler_field_info_by_field_variable($variable);
if (empty($extraFieldInfo)) {
throw new Exception("$variable not found");
}
$extraFieldValue = new ExtraFieldValue('course');
$items = $extraFieldValue->getValuesByFieldId($extraFieldInfo['id']);
$courseList = [];
foreach ($items as $item) {
$courseId = $item['item_id'];
if (UrlManager::relation_url_course_exist($courseId, $urlId)) {
$courseList[] = api_get_course_info($courseId);
}
}
$restResponse->setData($courseList);
break;
case Rest::DELETE_COURSE:
$courseCode = $_REQUEST['course_code'] ?? '';
$courseId = $_REQUEST['course_id'] ?? 0;
$course = [];
if (!empty($courseCode)) {
$course = api_get_course_info($courseCode);
}
if (empty($course) && !empty($courseId)) {
$course = api_get_course_info_by_id($courseId);
}
if (empty($course)) {
throw new Exception("Course doesn't exists");
}
$result = CourseManager::delete_course($course['code']);
$restResponse->setData(['status' => $result]);
break;
case Rest::ADD_COURSES_SESSION:
$data = $restApi->addCoursesSession($_POST);
$restResponse->setData($data);

Loading…
Cancel
Save