{"id":5436,"date":"2026-06-28T08:15:27","date_gmt":"2026-06-28T06:15:27","guid":{"rendered":"https:\/\/dgtlms.fr\/?page_id=5436"},"modified":"2026-06-28T08:59:57","modified_gmt":"2026-06-28T06:59:57","slug":"dgtlms-changelog","status":"publish","type":"page","link":"https:\/\/dgtlms.fr\/en\/dgtlms-changelog\/","title":{"rendered":"Changelog"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><div class=\"vc_row wpb_row vc_row-fluid\" style=\"border-radius:15px;\"><div class=\"wpb_column vc_column_container vc_col-sm-12\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\n\t<div class=\"wpb_text_column wpb_content_element\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p data-sourcepos=\"9:1-9:412;73-484\">\t\t<div class=\"dgtlms-cl\">\n\t\t\t\t\t\t<div class=\"dgtlms-cl-toolbar\">\n\t\t\t\t<a class=\"dgtlms-cl-rss\" href=\"https:\/\/dgtconcept.dgtlms.fr\/api\/changelog.php?format=rss\" target=\"_blank\" rel=\"noopener nofollow\" title=\"S'abonner aux nouveaut\u00e9s (flux RSS)\">\n\t\t\t\t\t<svg width=\"14\" height=\"14\" viewbox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M6.18 17.82A2.18 2.18 0 1 1 4 15.64a2.18 2.18 0 0 1 2.18 2.18zM4 4.44v3.1A12.46 12.46 0 0 1 16.46 20h3.1A15.56 15.56 0 0 0 4 4.44zm0 5.66v3.04A6.81 6.81 0 0 1 10.86 20h3.04A9.85 9.85 0 0 0 4 10.1z\"\/><\/svg>\n\t\t\t\t\tS'abonner au flux RSS\n\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<section class=\"dgtlms-cl-release\">\n\t\t\t\t<h3 class=\"dgtlms-cl-version\">\n\t\t\t\t\tDerni\u00e8res \u00e9volutions\t\t\t\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\t\t\t<div class=\"dgtlms-cl-group\">\n\t\t\t\t\t<span class=\"dgtlms-cl-type\" style=\"background:#16a34a1a;color:#16a34a;\">Ajout\u00e9<\/span>\n\t\t\t\t\t<ul class=\"dgtlms-cl-list\">\n\t\t\t\t\t\t\t\t\t\t\t\t<li>\u00c9diteur de formation : l&#039;onglet Parcours en \u00e9tapes<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Conditions entre formations d&#039;une session, r\u00e9gl\u00e9es depuis le chemin de formation<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Option \u00ab Les formateurs voient tous les apprenants de la plateforme (y compris des sessions termin\u00e9es) \u00bb<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>\u00c9cran Formations : sessions en vignettes et chemin de formation<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Mes formations (apprenant) : sessions en vignettes et chemin de progression<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Le portugais livr\u00e9 m\u00e9langeait deux variantes ; il est d\u00e9sormais coh\u00e9rent<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Les six langues prioritaires sont compl\u00e8tes<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Dette de traduction : cinq langues remises \u00e0 niveau<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Seize variables de rapport n&#039;existaient pas, et sept barres empil\u00e9es sortaient fausses en silence<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Le certificat de r\u00e9alisation sortait avec ses mentions \u00e0 trous<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"dgtlms-cl-group\">\n\t\t\t\t\t<span class=\"dgtlms-cl-type\" style=\"background:#2563eb1a;color:#2563eb;\">Modifi\u00e9<\/span>\n\t\t\t\t\t<ul class=\"dgtlms-cl-list\">\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Gap m\u00e9tier, Dashboard RH comp\u00e9tences et Habilitations \u00e0 renouveler passent dans l&#039;Analyser<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Logo et image de connexion par d\u00e9faut : LMSDISPATCHER<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Couleur principale par d\u00e9faut : #5869fd<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Page de connexion : image de fond bord \u00e0 bord et logo du mode sombre<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>D\u00e9pendances : Guzzle 6 \u2192 7<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Plus aucune image de graphique dans les mod\u00e8les de rapport fournis<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Un envoi de tracking en \u00e9chec ne s\u00e9questre plus l&#039;apprenant dans le contenu<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>\u00c9chec d&#039;import \u2014 l&#039;erreur est enfin lisible et offre une issue<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Quiz natif \u2014 cmi.suspend_data reprend son r\u00f4le, et le LMS cesse de l&#039;effacer<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>\u00c9diteur de parcours \u2014 les colonnes de r\u00e9glage sont nomm\u00e9es<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"dgtlms-cl-group\">\n\t\t\t\t\t<span class=\"dgtlms-cl-type\" style=\"background:#d977061a;color:#d97706;\">Corrig\u00e9<\/span>\n\t\t\t\t\t<ul class=\"dgtlms-cl-list\">\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Validation manuelle, note, \u00e9margement et \u00ab valider d&#039;office \u00bb en \u00e9chec en mode SQL strict<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Libell\u00e9s rest\u00e9s en fran\u00e7ais sur une instance dans une autre langue<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Nom de rubrique affich\u00e9 dans la mauvaise langue<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>S\u00e9curit\u00e9 \u2014 XSS dans le panneau de notifications<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Donn\u00e9es de d\u00e9monstration : l&#039;\u00ab \u00c9valuation finale \u00bb de chaque formation s&#039;ouvrait sur \u00ab 403 Acc\u00e8s refus\u00e9 \u00bb<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>\u00c9cran Formations : bascule liste \/ vignettes perdue, et plus d&#039;infobulles sur les vignettes de session<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Envoi d&#039;e-mails et PDF avec image : fonctions supprim\u00e9es en PHP 8<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Fausse alerte \u00ab La connexion a \u00e9t\u00e9 interrompue \u00bb \u00e0 la fermeture d&#039;une activit\u00e9<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Sentry : incidents parasites \u00e0 chaque erreur signal\u00e9e<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Page d&#039;erreur en rouvrant une \u00e9dition de formation expir\u00e9e<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"dgtlms-cl-group\">\n\t\t\t\t\t<span class=\"dgtlms-cl-type\" style=\"background:#dc26261a;color:#dc2626;\">S\u00e9curit\u00e9<\/span>\n\t\t\t\t\t<ul class=\"dgtlms-cl-list\">\n\t\t\t\t\t\t\t\t\t\t\t\t<li>install \u2014 le refus ne renseigne plus le visiteur<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Protection des fichiers sensibles port\u00e9e par le d\u00e9p\u00f4t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>ai ping \u2014 contr\u00f4le align\u00e9 sur l&#039;architecture proxy<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>\u00c9cran Cr\u00e9dits IA \u2014 consigne d&#039;activation corrig\u00e9e<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>download file \u2014 un apprenant pouvait t\u00e9l\u00e9charger le d\u00e9p\u00f4t d&#039;un autre<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Erreur 500 apr\u00e8s un upload r\u00e9ussi, quand Sentry est activ\u00e9<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>UA \u00ab remise + anti-plagiat Compilatio \u00bb : \u00e9nonc\u00e9 perdu \u00e0 la r\u00e9ouverture<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Import de paquets \u2014 le bouton \u00ab Valider \u00bb ne r\u00e9agissait plus sans fichier coch\u00e9<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Parcours \u2014 \u00ab Masquer \/ Afficher \u00bb sur un parcours en cours de modification : page blanche<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>ai ping plantait en erreur fatale<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"dgtlms-cl-group\">\n\t\t\t\t\t<span class=\"dgtlms-cl-type\" style=\"background:#7c3aed1a;color:#7c3aed;\">Accessibility<\/span>\n\t\t\t\t\t<ul class=\"dgtlms-cl-list\">\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Tableau de bord (widgets) \u2014 langue et titre du document<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Communaut\u00e9 (fil + post) \u2014 noms accessibles des contr\u00f4les<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Langue du document dynamique + support RTL<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Lien d&#039;\u00e9vitement \u00ab Aller au contenu \u00bb<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Dashboard apprenant + 10 widgets \u2014 passe RGAA \/ WCAG 2.1 AA (Phase 4)<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Page R\u00e9sultats \u2014 passe RGAA \/ navigation clavier compl\u00e8te<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Barre de navigation des modules \u2014 passe RGAA \/ WCAG 2.1 AA<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Liste des parcours apprenant \u2014 passe RGAA \/ WCAG 2.1 AA<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Modale a11y elle-m\u00eame \u2014 bouton fermeture avec focus visible<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Page publique d&#039;accessibilit\u00e9 + lien syst\u00e9matique en pied de page (ouverture en modale)<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"dgtlms-cl-group\">\n\t\t\t\t\t<span class=\"dgtlms-cl-type\" style=\"background:#6b72801a;color:#6b7280;\">Supprim\u00e9<\/span>\n\t\t\t\t\t<ul class=\"dgtlms-cl-list\">\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Retrait des pages d&#039;export \/ restauration \/ r\u00e9initialisation de la base<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Retrait de web services d&#039;un ancien connecteur tiers<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Feature flag SSO_OAUTH2_ENABLED retir\u00e9<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li>Variables Classes virtuelles retir\u00e9es du dropdown des mod\u00e8les de mail<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/section>\n\t\t\t\t\t\t\t\t\t<p class=\"dgtlms-cl-foot\">DGTLMS \u2014 version 26.31.8<\/p>\n\t\t\t\t\t<\/div>\n\n\t\t<style>\n\t\t.dgtlms-cl { max-width:820px; font-size:15px; line-height:1.5; }\n\t\t\/* --- Vue \"nouveaut\u00e9s par mois\" (highlights) --- *\/\n\t\t.dgtlms-cl-filters { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px; }\n\t\t.dgtlms-cl-pill { cursor:pointer; border:1px solid #e2e8f0; background:#fff; color:#475569; font-size:13px; font-weight:600; padding:6px 14px; border-radius:999px; line-height:1.2; transition:all .15s; }\n\t\t.dgtlms-cl-pill:hover { border-color:var(--c,#94a3b8); color:var(--c,#334155); }\n\t\t.dgtlms-cl-pill.is-active { background:var(--c,#0f172a); border-color:var(--c,#0f172a); color:#fff; }\n\t\t.dgtlms-cl-month { margin:0 0 24px; }\n\t\t.dgtlms-cl-mlabel { font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#94a3b8; margin:0 0 12px; }\n\t\t.dgtlms-cl-cards { display:flex; flex-direction:column; gap:10px; }\n\t\t.dgtlms-cl-card { display:flex; gap:14px; align-items:flex-start; padding:13px 16px; background:#fff; border:1px solid #eef2f7; border-left:3px solid var(--c,#475569); border-radius:10px; box-shadow:0 1px 2px rgba(15,23,42,.04); }\n\t\t.dgtlms-cl-tag { flex-shrink:0; font-size:11px; font-weight:700; padding:3px 10px; border-radius:999px; white-space:nowrap; margin-top:2px; }\n\t\t.dgtlms-cl-body { display:flex; flex-direction:column; gap:3px; min-width:0; }\n\t\t.dgtlms-cl-title { font-weight:700; color:#0f172a; }\n\t\t.dgtlms-cl-desc { color:#475569; font-size:14px; }\n\t\t.dgtlms-cl-empty { color:#94a3b8; font-style:italic; padding:10px 0; }\n\t\t@media (max-width:560px) { .dgtlms-cl-card { flex-direction:column; gap:8px; } }\n\t\t\/* --- Vue changelog technique (versions) --- *\/\n\t\t.dgtlms-cl-release { margin:0 0 26px; }\n\t\t.dgtlms-cl-version { font-size:19px; font-weight:700; margin:0 0 12px; padding-bottom:8px; border-bottom:2px solid #eef2f7; }\n\t\t.dgtlms-cl-date { font-size:13px; font-weight:500; color:#94a3b8; margin-left:8px; }\n\t\t.dgtlms-cl-group { margin:0 0 14px; }\n\t\t.dgtlms-cl-type { display:inline-block; font-size:12px; font-weight:700; padding:2px 10px; border-radius:999px; margin-bottom:6px; }\n\t\t.dgtlms-cl-list { margin:6px 0 0; padding-left:20px; }\n\t\t.dgtlms-cl-list li { margin:0 0 5px; }\n\t\t.dgtlms-cl-foot { font-size:12px; color:#94a3b8; margin-top:18px; }\n\t\t.dgtlms-cl-toolbar { display:flex; justify-content:flex-end; margin:0 0 16px; }\n\t\t.dgtlms-cl-rss { display:inline-flex; align-items:center; gap:7px; padding:7px 14px; border-radius:8px; background:#f97316; color:#fff !important; font-size:13px; font-weight:600; text-decoration:none !important; box-shadow:0 1px 2px rgba(0,0,0,.08); transition:background .15s; }\n\t\t.dgtlms-cl-rss:hover { background:#ea580c; color:#fff !important; }\n\t\t.dgtlms-cl-rss svg { flex-shrink:0; }\n\t\t.dgtlms-cl-error { padding:14px 16px; background:#fef2f2; color:#991b1b; border-radius:8px; font-size:14px; }\n\t\t<\/style>\n\t\t<script>\n\t\t(function () {\n\t\t\tif (window.__dgtlmsClInit) return; window.__dgtlmsClInit = true;\n\t\t\tfunction init() {\n\t\t\t\tdocument.querySelectorAll('.dgtlms-cl-filters').forEach(function (bar) {\n\t\t\t\t\tvar target = document.getElementById(bar.getAttribute('data-target'));\n\t\t\t\t\tif (!target) return;\n\t\t\t\t\tvar empty = document.getElementById(bar.getAttribute('data-target') + '-empty');\n\t\t\t\t\tbar.addEventListener('click', function (e) {\n\t\t\t\t\t\tvar btn = e.target.closest('.dgtlms-cl-pill'); if (!btn) return;\n\t\t\t\t\t\tvar cat = btn.getAttribute('data-cat');\n\t\t\t\t\t\tbar.querySelectorAll('.dgtlms-cl-pill').forEach(function (b) { b.classList.toggle('is-active', b === btn); });\n\t\t\t\t\t\tvar anyVisible = false;\n\t\t\t\t\t\ttarget.querySelectorAll('.dgtlms-cl-month').forEach(function (sec) {\n\t\t\t\t\t\t\tvar shown = 0;\n\t\t\t\t\t\t\tsec.querySelectorAll('.dgtlms-cl-card').forEach(function (card) {\n\t\t\t\t\t\t\t\tvar ok = (cat === '*' || card.getAttribute('data-cat') === cat);\n\t\t\t\t\t\t\t\tcard.style.display = ok ? '' : 'none';\n\t\t\t\t\t\t\t\tif (ok) shown++;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tsec.style.display = shown ? '' : 'none';\n\t\t\t\t\t\t\tif (shown) anyVisible = true;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (empty) empty.style.display = anyVisible ? 'none' : '';\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (document.readyState !== 'loading') init();\n\t\t\telse document.addEventListener('DOMContentLoaded', init);\n\t\t})();\n\t\t<\/script>\n\t\t<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"S'abonner au flux RSS Derni\u00e8res \u00e9volutions Ajout\u00e9 \u00c9diteur de formation : l&#039;onglet Parcours en \u00e9tapes Conditions entre formations d&#039;une session, r\u00e9gl\u00e9es depuis le chemin de formation Option \u00ab Les formateurs voient tous les apprenants de la plateforme (y compris des [...]","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5436","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/dgtlms.fr\/en\/wp-json\/wp\/v2\/pages\/5436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dgtlms.fr\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dgtlms.fr\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dgtlms.fr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dgtlms.fr\/en\/wp-json\/wp\/v2\/comments?post=5436"}],"version-history":[{"count":7,"href":"https:\/\/dgtlms.fr\/en\/wp-json\/wp\/v2\/pages\/5436\/revisions"}],"predecessor-version":[{"id":5447,"href":"https:\/\/dgtlms.fr\/en\/wp-json\/wp\/v2\/pages\/5436\/revisions\/5447"}],"wp:attachment":[{"href":"https:\/\/dgtlms.fr\/en\/wp-json\/wp\/v2\/media?parent=5436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}