Administration
Médiathèque, filtres, téléversement, sélection multiple, actions groupées et fiche d'un média.
Le module ajoute un seul écran à l'admin, /admin/media. Tout s'y fait : téléverser,
chercher, renommer, remplacer, supprimer, récupérer les URL publiques. Cette page décrit
ce que fait l'interface, y compris les quelques comportements qui surprennent.
L'accès demande media.view. Voir Configuration.
Ce que chaque permission débloque
Les boutons sont rendus selon les permissions du compte connecté. Un rôle qui n'a que
media.view consulte la médiathèque et copie des URL, sans rien pouvoir modifier.
| Permission | Ce qui apparaît |
|---|---|
media.view | La médiathèque, les fiches, la copie d'URL et le téléchargement groupé. |
media.upload | Le bouton Téléverser, et le bouton Enregistrer de la fiche. |
media.replace | Le bouton Remplacer le fichier dans la fiche. |
media.delete | La suppression, dans la fiche comme dans la barre d'actions groupées. |
L'édition du nom, du texte alternatif et de la légende relève de media.upload : il n'y
a pas de permission d'édition distincte.
Filtres
Deux filtres, appliqués côté serveur.
La recherche porte sur le nom du fichier au moment du téléversement, pas sur le nom
public. Un média téléversé sous Photo Été 2024.JPG puis renommé banniere-accueil.jpg
se retrouve en cherchant été, pas en cherchant banniere. Le champ de saisie annonce
« nom de fichier », ce qui est ambigu : c'est le nom d'origine, celui qui apparaît en
infobulle au survol d'une vignette.
Le type filtre sur la nature du fichier. L'option Autre est un cas particulier :
elle n'applique aucune condition et renvoie donc la liste complète.
Changer un filtre ramène en première page et vide la sélection en cours.
Grille
Cent médias par page, du plus récent au plus ancien. L'ordre est fixe et ne se règle pas.
Les images sont rendues en vignette, les autres types affichent une icône de format. Les
boutons Précédent et Suivant n'apparaissent qu'à partir de deux pages.
Téléverser
Le bouton accepte plusieurs fichiers d'un coup, mais les envoie un par un. Un fichier refusé, pour un format ou une taille hors limites, produit son propre message et n'interrompt pas les suivants. Voir Téléversement pour ce qui est accepté.
À la fin du lot, la vue revient en première page, là où les nouveaux médias apparaissent. La confirmation compte les fichiers choisis, pas ceux qui ont abouti : lire les messages d'erreur, pas le décompte final.
Sélection multiple
| Geste | Effet |
|---|---|
| Clic simple, aucune sélection en cours | Ouvre la fiche du média. |
| Clic simple, une sélection en cours | Remplace la sélection par ce seul média. |
| Ctrl+clic ou Cmd+clic | Ajoute ou retire ce média de la sélection. |
| Maj+clic | Étend la sélection depuis le dernier média pointé jusqu'à celui-ci. Sans point de départ, se comporte comme un clic simple. |
Échap, ou le bouton × de la barre flottante | Vide la sélection. |
Le deuxième cas est celui qui surprend : dès qu'une sélection existe, le clic simple ne sert plus à ouvrir une fiche. Vider la sélection rend son comportement normal au clic.
La sélection est vidée à chaque changement de page ou de filtre, puisque les médias concernés sortent de l'écran.
Actions groupées
Une barre flottante apparaît dès qu'un média est sélectionné.
Copier les URLs place les URL publiques absolues dans le presse-papiers, une par ligne.
Télécharger assemble une archive ZIP à la volée, sans recompression. La limite est de cent médias par archive. Au-delà, la requête échoue avec un message, et rien ne propose de découper la sélection : la réduire est manuel.
Supprimer demande confirmation, puis supprime cinq médias en parallèle. Les suppressions réussies disparaissent de la grille ; celles qui échouent restent sélectionnées, ce qui permet de recommencer sans tout re-pointer. Un média encore référencé par un contenu compte parmi les échecs. Voir Intégration.
Fiche d'un média
La fiche s'ouvre au clic sur une vignette. À gauche l'aperçu, à droite les champs.
| Champ | Détail |
|---|---|
| Nom du fichier | Saisi sans son extension, qui reste affichée à côté et n'est pas modifiable. Caractères admis : a-z, 0-9 et le tiret. |
| URL publique | En lecture seule, avec un bouton de copie. |
| Texte alternatif | Présent seulement pour les images. |
| Légende | Toujours présente. |
Le pied de fiche récapitule le type MIME, la taille du fichier servi, le nom d'origine quand il diffère du nom public, et le nombre de contenus qui référencent le média.
Renommer vers un nom déjà pris fait échouer l'enregistrement complet : le texte alternatif et la légende saisis en même temps ne sont pas écrits non plus. Corriger le nom, puis enregistrer à nouveau. Le message « Ce nom de fichier est déjà utilisé » apparaît en notification plutôt que sous le champ, pour la raison expliquée dans API.
Un fichier qui n'est pas une image n'a pas d'aperçu. Un lien Ouvrir le fichier le sert
à la place, ce qui déclenche un téléchargement pour tout ce qui n'est pas une image.
Remplacer le fichier
Le remplacement garde l'identifiant, le nom public et les références. Il refuse un changement de catégorie : une image se remplace par une image.
Un bandeau d'avertissement apparaît ensuite. L'URL publique n'ayant pas changé, un visiteur ou un cache intermédiaire peut continuer à servir l'ancien fichier. Le contournement est de renommer le média, ce qui change son URL. Les contenus qui le référencent suivent le renommage, puisqu'ils stockent l'identifiant et non l'URL.
Supprimer
La suppression est définitive et échoue tant que le média est référencé par un contenu. Le message donne le nombre de contenus concernés, sans dire lesquels. Les retirer du contenu d'abord.
Notes
- La fiche est le même composant que celui ouvert depuis le bloc image du BlockEditor, publié par le registre client. Une correction de texte alternatif faite depuis un article se voit donc immédiatement dans la médiathèque, et inversement.
- Les deux plafonds de cent, cent médias par page et cent par archive, ne sont pas réglables.
- L'interface ne montre pas qui a téléversé un média, ni la liste des contenus qui le référencent. Ces deux informations existent en base et sont lisibles par l'API.