Je n'ai pas étudié complètement l'API fichiers, mais globalement pour la question du contexte :
Il y a bien une table 'mdl_context'
Si je reprends ton exemple :
https://moodle.enm-toulouse.fr/pluginfile.php/113264/mod_resource/content/17/audio.html
tu devrais trouver dans la table des contextes :
mdl_context.id = 113264
mdl_context.contextlevel = 70 (càd un contexte de type MODULE , voir le fichier lib/accesslib.php)
mdl_context.instanceid = xxx , id de l'instance
Pour instanceid, vu qu'il s'agit d'un module, il faut chercher cet id dans mdl_course_modules.id
(s'il s'agissait d'un contexte de type COURSE, instanceid serait l'id d'un cours dans la table mdl_course)
mdl_course_modules.id = xxx
mdl_course_modules.module = 17 (Ressource , cf mdl_modules)
mdl_course_modules.instance = yyy
Et pour finir,
mdl_course_modules.instance = mdl_resource.id
puisqu'il s'agit d'une ressource
Tout cela , c'est pour l'environnement de la ressource
Maintenant, tu peux retrouver directement le fichier dans la table mdl_files , en cherchant le contextid (113264) directement dans mdl_files.contextid
On retrouve dans la table les informations de l'URL .../mod_resource/content/ respectivement dans les champs component et filearea
Par contre, pour l'élément "arbitrary" (17 dans l'URL), je ne sais pas. Il semble qu'en changeant ce nombre, l'accès est identique.... à voir donc
Après, si le document est visible dans la section d'un cours, il est possible d'utiliser directement le lien vers ce document, qui serait de la forme :
https://moodle.enm-toulouse.fr/mod/resource/view.php?id= <instanceid>
J'ai essayé d'être clair, mais je ne me sentais pas de faire un schéma, désolé
PS : Possible de remplacer les tagadas par un ti'punch ?
on a beau être de grand enfants, je préfère les produits naturels : Citron-Rhum-Sucre (CRS pour les intimes 😁)
Bruno