diff --git a/medias_fonctions.php b/medias_fonctions.php index 2f9ba73a5c806ad493ab89fc0dc534e6150b7f11..08bc29431c5b166099dbc7d2e491856284e851f1 100644 --- a/medias_fonctions.php +++ b/medias_fonctions.php @@ -412,6 +412,29 @@ function medias_trouver_modele_emb($extension, $mime_type, $modele_base = 'file' return $modele_base; } +/** + * Determiner si un media doit etre mis en autolien dans les modeles document + * Par defaut utilisé uniquement sur les media image, mais le filtre peut être surchargé pour étendre son fonctionnement + * + * @param string $media + * @param string $extension + * @param int $largeur + * @param int $hauteur + * @param int|null $id_document + * @return bool + */ +function media_determine_autolien(string $media, string $extension, int $largeur, int $hauteur, ?int $id_document=0): bool { + if ($media !== 'image') { + return false; + } + if (!defined('_IMAGE_TAILLE_MINI_AUTOLIEN')) { + define('_IMAGE_TAILLE_AUTOLIEN', 800); + } + if ($largeur >= _IMAGE_TAILLE_AUTOLIEN or $hauteur >=_IMAGE_TAILLE_AUTOLIEN) { + return true; + } + return false; +} /** * Liste les classes standards des modèles de documents SPIP. diff --git a/modeles/image.html b/modeles/image.html index f79fadc17b06d89b8fc3f6d54b1289ce97111c99..2adc217188bace1406baba6b1c38843719ae1a0f 100644 --- a/modeles/image.html +++ b/modeles/image.html @@ -4,7 +4,7 @@ ] <BOUCLE_image (DOCUMENTS) {media=image} {id_document=#ENV{id,#ENV{id_document}}} {inclus=image} {mode?} {tout}> -[(#SET{autolien,#LARGEUR|>={800}|ou{#HAUTEUR|>={800}}|oui})] +[(#SET{autolien,#MEDIA|media_determine_autolien{#EXTENSION,#LARGEUR,#HAUTEUR,#ID_DOCUMENT}|oui})] [(#SET{image,[(#ENV{largeur}|ou{#ENV{hauteur}}|?{ [(#FICHIER|image_reduire{#ENV{largeur,10000},#ENV{hauteur,10000}})], [<img src='(#URL_DOCUMENT)'[ width="(#LARGEUR)"][ height="(#HAUTEUR)"]/>]})]})] diff --git a/modeles/image_emb_svg.html b/modeles/image_emb_svg.html index 274e6e970e0abf06ebf5a790758cb72e71add799..2999d54aa49e4f31b6fb6b7a51b3d6a8ce005aef 100644 --- a/modeles/image_emb_svg.html +++ b/modeles/image_emb_svg.html @@ -4,7 +4,7 @@ ] <BOUCLE_image (DOCUMENTS) {media=image} {id_document=#ENV{id,#ENV{id_document}}} {inclus=image} {mode?} {tout} {extension=svg}> -[(#SET{autolien,#LARGEUR|>={800}|ou{#HAUTEUR|>={800}}|oui})] +[(#SET{autolien,#MEDIA|media_determine_autolien{#EXTENSION,#LARGEUR,#HAUTEUR,#ID_DOCUMENT}|oui})] [(#SET{image,[(#ENV{largeur}|ou{#ENV{hauteur}}|?{ [(#FICHIER|image_reduire{#ENV{largeur,10000},#ENV{hauteur,10000}}|extraire_attribut{src})], [(#FICHIER)]})]})]