Skip to content
Extraits de code Groupes Projets
Valider 7cf7c07c rédigé par cerdic's avatar cerdic Validation de marcimat
Parcourir les fichiers

refactor: la fonction `inc_vignette_dist()` prend le media en second argument...

refactor: la fonction `inc_vignette_dist()` prend le media en second argument au lieu de `$size` qui n'était utilisé qu'avec sa valeur false.
On traite le cas d'un eventuel appel avec true pour ne pas casser la compatibilité mais en trigguant une deprecation. Cela permet de decliner les vignettes mp4 selon le media audio/video/file par exemple
parent 82c8e434
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -250,7 +250,7 @@ function vignette_automatique($img, $doc, $lien, $x = 0, $y = 0, $align = '', $c
}
if (!$img) {
$f = charger_fonction('vignette', 'inc');
$img = $f($e, false);
$img = $f($e, $doc['media'] ?? '');
$class .= ' spip_document_icone';
}
$size = @spip_getimagesize($img);
......
......@@ -26,18 +26,35 @@ if (!defined('_ECRIRE_INC_VERSION')) {
*
* @param string $ext
* Extension du fichier. Exemple : png
* @param bool $size
* true pour retourner un tableau avec les tailles de la vignette
* false pour retourner uniquement le chemin du fichier
* @param string $media
* Permet de retourner une variante de la vignette adaptee au media
* cas des mp4 par exemple que l'on decline quand c'est un audio
* @param bool $loop
* Autoriser la fonction à s'appeler sur elle-même
* (paramètre interne).
* @return array|bool|string
* False si l'image n'est pas trouvée
* @return ?string
* null si l'image n'est pas trouvée
* Chaîne (chemin vers l'image) si on ne demande pas de taille
* Tableau (chemin, largeur, hauteur) si on demande avec la taille.
*/
function inc_vignette_dist($ext, $size = true, $loop = true) {
function inc_vignette_dist($ext, $media = '', $loop = true) {
// deprecated signature avec second argument true pour récuperer un tableau avec size
if ($media === true) {
trigger_deprecation(
'medias',
'2.0',
'Using "%s" is deprecated',
'vignette($ext, true)'
);
$v = inc_vignette_dist($ext, '', $loop);
$largeur = $hauteur = 0;
if ($v && ($size = @spip_getimagesize($v))) {
$largeur = $size[0];
$hauteur = $size[1];
}
return [$v, $largeur, $hauteur];
}
if (!$ext) {
$ext = 'txt';
......@@ -45,27 +62,18 @@ function inc_vignette_dist($ext, $size = true, $loop = true) {
// Chercher la vignette correspondant a ce type de document
// dans les vignettes persos, ou dans les vignettes standard
if (
# installation dans un dossier /vignettes personnel, par exemple /squelettes/vignettes
!$v = find_in_path('prive/vignettes/' . $ext . '.svg')
) {
# installation dans un dossier /vignettes personnel, par exemple /squelettes/vignettes
if (!$media || !($v = find_in_path('prive/vignettes/' . $ext . '-' . $media . '.svg'))) {
$v = find_in_path('prive/vignettes/' . $ext . '.svg');
}
if (!$v) {
if ($loop) {
$f = charger_fonction('vignette', 'inc');
$v = $f('defaut', false, $loop = false);
$v = $f('defaut', $media, false);
} else {
$v = false;
}
} # pas trouve l'icone de base
if (!$size) {
return $v;
}
$largeur = $hauteur = 0;
if ($v && ($size = @spip_getimagesize($v))) {
$largeur = $size[0];
$hauteur = $size[1];
}
return [$v, $largeur, $hauteur];
return $v ?: null;
}
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
<g>
<path d="m 10.672 0 c -1.375 0 -2.672 1.355 -2.672 2.789 l 0 58.42 c 0 1.355 1.375 2.789 2.672 2.789 l 42.656 0 c 1.297 0 2.672 -1.434 2.672 -2.789 l 0 -43.21 l -18 -18 m -27.328 0" style="fill:#9b4a85;fill-opacity:1;stroke:none;fill-rule:nonzero"/>
<path d="m 42 18 l 14 14 l 0 -14 m -14 0" style="fill:#000;fill-opacity:0.196;stroke:none;fill-rule:nonzero"/>
<path d="m 38 0 l 17.984 18 l -15.227 0 c -1.348 0 -2.758 -1.426 -2.758 -2.773 m 0 -15.227" style="fill:#fff;fill-opacity:0.392;stroke:none;fill-rule:nonzero"/>
<path d="m 33.602 26.906 c -1.555 0.391 -2.859 1.82 -2.859 1.82 l 0.047 0.039 l 2.484 9.25 c -1.781 -0.969 -4.32 -0.727 -6.422 0.797 c -2.719 1.961 -3.664 5.305 -2.094 7.461 c 1.578 2.164 5.05 2.313 7.766 0.352 c 2.141 -1.555 3.336 -3.992 2.906 -5.992 c -0.016 -0.063 -0.039 -0.125 -0.055 -0.188 l -2.383 -9.242 c 0.055 -0.078 0.75 -0.398 3.01 -0.555 c 2.383 -0.156 4 -3.984 4 -3.984 c 0 0 -2.688 1.031 -4.797 0.289 c -0.531 -0.188 -1.086 -0.18 -1.602 -0.047 m 0 0" style="fill:#fff;fill-opacity:1;stroke:none;fill-rule:nonzero"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
<g>
<path d="m 10.672 0 c -1.375 0 -2.672 1.355 -2.672 2.789 l 0 58.42 c 0 1.355 1.375 2.789 2.672 2.789 l 42.656 0 c 1.297 0 2.672 -1.434 2.672 -2.789 l 0 -43.21 l -18 -18 m -27.328 0" style="fill:#dcdcdc;fill-opacity:1;stroke:none;fill-rule:nonzero"/>
<path d="m 42 18 l 14 14 l 0 -14 m -14 0" style="fill:#000;fill-opacity:0.196;stroke:none;fill-rule:nonzero"/>
<path d="m 38 0 l 17.984 18 l -15.227 0 c -1.348 0 -2.758 -1.426 -2.758 -2.773 m 0 -15.227" style="fill:#fff;fill-opacity:0.392;stroke:none;fill-rule:nonzero"/>
</g>
</svg>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter