Modifier le fichier

Gestion des médias

Modèle objet

Les médias sont gérés avec deux objets :

  • Media
    • Table MEDIA
    • Contient toutes les informations décrivant le média :
      • Titre, légende, description, ...
      • Type de ressource : audio, fichier, photo, svg, flash
      • Source : Nom du fichier source
      • Url : Nom du fichier stocké sur disque
  • Ressource
    • Table RESSOURCE
    • Enregistre le lien entre le média et le contenu qui l'utilise
    • La ressource porte les informations suivantes
      • L'idMedia : id du media
      • codeParent : Code calculé permettant de retrouver le contenu utilisant le média
      • etat : Etat de la ressource permettant la gestion de son cycle de vie
      • ordre :

Ajout d'un média

Ajout et utilisation d'un média dans la médiathèque

Lorsqu'un média est ajouté dans la médiathèque, celui-ci devient automatiquement public. Le média sera consultable sans vérification de permission. Le média pourra être utilisé sur toute l'application par les contributeurs. Lorsqu'un média est inséré dans un contenu (toolbox par exemple), un enregistrement sera créé dans la table ressource.

Ajout et utilisation d'un média hors médiathèque

Le média peut être directement ajouté dans un contenu (via la toolbox par exemple). Suivant la configuration de l'environnement (via la propriété mediatheque.secure.xxx) l'accès au média sera contrôlé en fonction des permissions de l'utilisateur (pas d'accès public). Dans tous les cas, le média ne pourra pas être utilisé sur plusieurs contenus.

  • Si la propriété mediatheque.secure.xxxx est égale à 1, alors il n'y a pas de vérification de permission (meilleure performance)
  • Si la propriété mediatheque.secure.xxxx est égale à 2, alors une vérification des permissions est effectuée à chaque appel en fonction des droits de l'utilisateur. Le média porte les restrictions de son contenu l'utilisant (restriction d'une fiche ou restriction d'une rubrique). Lors de l'ajout d'un média, un enregistrement dans la table ressource est effectué afin d'identifier où est utilisé le média.

Remarque sur les Tags medias [id-image] et [id-fichier]

Au cours de la vie du code, le format des médias a évolué. Certains contenus contiennent des anciens format de tag. Aucun traitement de reprise des données n'ayant été effectué, les traitements manipulant des contenus de toolboxes doivent impérativement prendre en compte les formats suivants:

  • [id-image]1234567890[id-image]
  • [id-image]F1234567890[id-image]
  • [id-fichier];1234567890[id-fichier]
  • [id-fichier]1234567890;[id-fichier]
  • [id-fichier]1234567890;INLINE[id-fichier]

La méthode publique ParserRequete.parseRessources tient compte de ces différents format. Elle peut être utilisée pour extraire la liste des médias d'un contenu de toolbox. En fonctionnement standard, cette méthode est appelée lors de la soumission d'une contribution. Cela permet d'jouter dans l'infoBean deux collections pré-initialisées avec les médias détectés dans les toolboxes : contentNewRessources et contentOldRessources.

/!\ Les autres (anciens) tags médias (legende_image, title-image, ..), ne sont pas gérés par cette méthode /!

Optimisation de l'espace de stockage

Le format image/webp

Le nouveau format image/webp permet de reduire considérablement la taille de certaines images sans perte notoire de qualité. Un mécanisme a été mis en place dans K-Sup pour enregistrer automatiquement les images au format webp.

Ce mécanisme est contrôlé grace à la propriété "mediatheque.photo.output.format" qui permet de spécifier un format unique d'enregistrement des medias (image/webp par défaut). Si cette valeur est surchargée à vide par un projet, cela désactive la fonctionnalité. cf mediatheque.photo.output.format, mediatheque.photo.excluded.format, mediatheque.photo.output.quality et mediatheque.photo.output.compression dans le fichier medias-properties.md)

Note sur l'orientation Exif

Certains fichiers peuvent contenir un Exif d'orientation indiquant le sens réel d'affichage d'une image.

Il existe 8 orientations possibles :

  1. 0 degrees: the correct orientation, no adjustment is required.
  2. 0 degrees, mirrored: image has been flipped back-to-front.
  3. 180 degrees: image is upside down.
  4. 180 degrees, mirrored: image has been flipped back-to-front and is upside down.
  5. 90 degrees, mirrored: image has been flipped back-to-front and is on its side.
  6. 90 degrees: image is on its side.
  7. 270 degrees: image has been flipped back-to-front and is on its far side.
  8. 270 degrees, mirrored: image is on its far side.

orientation

Lorsque l'image est enregistrée sans optimisation webp, les informations exif sont conservées.
Cependant, toute réécriture de l'image (rotation, redimensionnement ou crop) entraine la perte des informations exif.
A cet effet, un traitement de redressement est appliqué à l'image avant réécriture en webp ou transformation de l'image.