Skip to content

#982 [Registre] fix: chemins du registre publiés tels qu'installés, lisibles par Saturne < 23.3.0 - #983

Merged
nicolas-eoxia merged 1 commit into
Evarisk:developfrom
nicolas-eoxia:fix/982-registry-path-as-installed
Nov 2, 2026
Merged

nicolas-eoxia merged 1 commit into
Evarisk:developfrom
nicolas-eoxia:fix/982-registry-path-as-installed

Conversation

@nicolas-eoxia

@nicolas-eoxia nicolas-eoxia commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Constat

saturneExtendGetObjectsMetadata() publiait les chemins du registre sans préfixe ('dolimeet/class/…'), depuis le retrait de custom/. Seuls les lecteurs qui passent par dol_buildpath() savent les résoudre. Les anciens lecteurs ajoutent DOL_DOCUMENT_ROOT devant le chemin : c'est le cas de Saturne avant 23.3.0, et de digiquali ou dolicar d'avant la phase A. Toute page qui appelle le registre tombe alors en fatale, y compris les pages des autres modules. Exemple, la liste des risques de Digirisk :

PHP Fatal error:  Uncaught Error: Failed opening required '…/htdocs/digiquali/class/question.class.php'
  in custom/saturne/lib/object.lib.php

Aucun module ne déclare de version minimale de Saturne : rien n'empêchait cette combinaison chez un client.

Correctif

Plutôt que d'imposer une version, on supprime la dépendance : le chemin est calculé depuis l'emplacement réel du module, relatif à DOL_DOCUMENT_ROOT.

Installation Chemin publié Anciens lecteurs Nouveaux lecteurs (dol_buildpath)
standard (htdocs/custom/dolimeet) custom/dolimeet/… ✅ ✅
module dans htdocs/dolimeet dolimeet/… ✅ ✅
racine alternative hors htdocs dolimeet/… (comme aujourd'hui) ❌ (déjà le cas avant) ✅

On garde l'objectif du retrait de custom/ (le cas de la racine alternative) sans perdre la compatibilité. Le même correctif est appliqué aux cinq producteurs du registre : Evarisk/digiquali#2715, Evarisk/Digirisk#5658, Evarisk/dolicar#556, Eoxia/reedcrm#1198, #982.

Vérification

Bac à sable Dolibarr 23.0.3, avec les six modules actifs et la page de diagnostic qui appelle saturne_get_objects_metadata() :

Cas Résultat
A. Saturne 23.2.1 + modules sur develop fatale reproduite (htdocs/digiquali/class/question.class.php), liste des risques Digirisk cassée
B. Saturne 23.2.1 + les 5 correctifs 48 chemins sur 48 résolus par DOL_DOCUMENT_ROOT et par dol_buildpath(), liste des risques OK (18 lignes), journal vide
C. Saturne develop (23.6.0) + les 5 correctifs 48 sur 48, aucune fatale, et les 14 create_url / list_url répondent en 200 (302 pour une liste qui redirige)

DoliMeet : son producteur ne tourne que si un contexte DoliMeet est déjà chargé sur la page (globalcard, présent sur la plupart des fiches). Mesures prises avec ce contexte, page de diagnostic :

Cas Résultat
Saturne 23.2.1 + DoliMeet develop (les autres corrigés) fatale htdocs/dolimeet/class/trainingsession.class.php
Saturne 23.2.1 + les 5 correctifs 51 chemins sur 51, dont les 3 de dolimeet_trainsess ; aucune fatale, journal vide
Saturne develop + les 5 correctifs 51 sur 51, session_card.php?action=create&object_type=trainingsession répond en 200

Closes #982

🤖 Generated with Claude Code

…lles, lisibles par Saturne < 23.3.0

Depuis le retrait de custom/, saturneExtendGetObjectsMetadata() publiait
'dolimeet/...' : seuls les lecteurs passant par dol_buildpath() le
resolvent. Saturne < 23.3.0 et les anciens lecteurs prefixent
DOL_DOCUMENT_ROOT : fatale sur toute page qui appelle le registre, y
compris celles des autres modules.

Le chemin est maintenant calcule depuis l'emplacement reel du module,
relatif a DOL_DOCUMENT_ROOT : custom/dolimeet sur une installation standard,
lu par tous les lecteurs. Le nom nu ne sert qu'a un module installe hors
de la racine principale, seul cas que visait le retrait de custom/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nicolas-eoxia
nicolas-eoxia merged commit b8a0af9 into Evarisk:develop Nov 2, 2026
2 checks passed
@nicolas-eoxia
nicolas-eoxia deleted the fix/982-registry-path-as-installed branch November 2, 2026 15:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Registre] fix: chemins du registre d'objets illisibles par Saturne < 23.3.0, fatale sur les listes

1 participant