Médias
Médiathèque partagée, téléversement vers un stockage objet, optimisation des images et suivi des références par les autres modules.
@lrvo/module-medias ajoute une médiathèque à l'admin et remplit le registre média du core. Les autres modules l'utilisent sans jamais le déclarer en dépendance : ils appellent les façades du core, qui deviennent actives dès que ce module est installé.

La grille est le point d'entrée humain de la bibliothèque : recherche par nom de fichier, filtre par type, téléversement. C'est le même fonds que vient chercher un bloc image ou un champ média d'un autre module, par le registre plutôt que par un import. Voir Intégration.
Pages de cette section
| Page | Contenu |
|---|---|
| Installation | Installer le module, créer les tables, monter la route de fichier. |
| Configuration | Variables d'environnement, stockage objet, permissions, entrée d'admin. |
| Téléversement | Formats acceptés, limites, validation, optimisation, nommage. |
| Administration | La médiathèque : filtres, sélection multiple, actions groupées, fiche d'un média. |
| Intégration | Référencer un média depuis un autre module ou un bloc. |
| Modèle de données | Tables lrvo_media et lrvo_media_references. |
| API | Routes HTTP d'admin et route publique de fichier. |
Ce que le module apporte
| Élément | Détail |
|---|---|
| Tables | lrvo_media et lrvo_media_references. |
| Entrée d'admin | Une section « Médias » à l'ordre 25, contenant un item unique à l'ordre 50, icône Image01Icon. |
| Permissions | media.view, media.upload, media.replace, media.delete. |
| Routes API | 9 routes d'admin. Aucune route publique d'API. |
| Route publique | Le service de fichier /lrvo/media/<nom>, à monter dans le projet. |
| Registres remplis | Le registre média côté serveur et côté client. |
Le module que les autres consomment
C'est le seul module officiel dont la valeur principale n'est pas sa propre interface, mais ce qu'il rend possible ailleurs. @lrvo/module-pages et @lrvo/module-posts attachent des médias à leur contenu sans importer ce package, en passant par les façades @lrvo/core/media-registry.
Sans ce module, ces façades sont des fonctions neutres : les lectures renvoient vide, les écritures renvoient un échec explicite, le sélecteur d'image se masque. Aucun code appelant n'a donc à se conditionner.
C'est ce contrat qui est documenté dans Intégration.
Où vivent les fichiers
Les fichiers ne sont pas stockés sur le disque du serveur. Le module les envoie vers le stockage objet configuré au niveau du core, compatible S3, et ne garde en base que leurs métadonnées.
Deux noms coexistent donc pour chaque fichier :
- une clé de stockage privée, jamais exposée, de la forme
media/<année>/<mois>/<nom unique>; - un nom public assaini, utilisé dans l'URL
/lrvo/media/<nom>.
Renommer un média change le second sans toucher au premier, ce qui n'invalide aucune référence. Voir Téléversement.
Notes
- Le champ
versiondu manifeste du module vaut1.0.0et ne suit pas la version du package. Se fier àpackage.json. - Le module ne génère aucune vignette et aucune variante responsive. Il conserve un seul fichier optimisé, et laisse
next/imagefaire le reste. - Les tables gardent le préfixe
lrvo_media, au singulier, hérité de l'époque où la médiathèque vivait dans le core. Le renommer casserait les bases existantes sans rien apporter.
