#LOGO_DOCUMENT{center ou left ou right} ne fonctionnent pas #4877

Closed
opened 11 months ago by Luc · 9 comments
Luc commented 11 months ago

Dans un squelette, contrairement aux autres logos, les filtres {center}, {left}, {right} n'ont pas d'effet sur les logos des documents.
Exemple :
[(#LOGO_SITE{center}|image_reduire{200})]
Renvoie:

<img src="local/cache-vignettes/L150xH98/siteon11-b114d.png?1645986407" class="spip_logo spip_logo_center" alt="" width="150" height="98">

La class "spip_logo_center" est bien appliquée.

Mais pour :
[(#LOGO_DOCUMENT{center}|image_reduire{200})]
Cela renvoie :

<img src="local/cache-vignettes/L141xH200/mon_logo-47d4f.png?1645986406" alt="" class="spip_logo spip_logos" width="141" height="200" align="middle">

Pas de class "spip_logo_center".

Dans un squelette, contrairement aux autres logos, les filtres {center}, {left}, {right} n'ont pas d'effet sur les logos des documents. Exemple : [(#LOGO_SITE{center}|image_reduire{200})] Renvoie: ``` <img src="local/cache-vignettes/L150xH98/siteon11-b114d.png?1645986407" class="spip_logo spip_logo_center" alt="" width="150" height="98"> ``` La class "spip_logo_center" est bien appliquée. Mais pour : [(#LOGO_DOCUMENT{center}|image_reduire{200})] Cela renvoie : ``` <img src="local/cache-vignettes/L141xH200/mon_logo-47d4f.png?1645986406" alt="" class="spip_logo spip_logos" width="141" height="200" align="middle"> ``` Pas de class "spip_logo_center".
Owner
Pour référence https://discuter.spip.net/t/pb-alignement-logo-document/159651/8
Owner

Premier test, avec un fichier txt qui ne comporte pas de vignette perso, on obtient <img src="plugins-dist/medias/prive/vignettes/txt.svg" alt="" class="spip_logo spip_logos spip_document_icone" width="64" height="64" align="middle"> où on remarque l'attribut align middle.

Cela vient de vignette_automatique() qui applique inserer_attribut($img, 'align', $align); sur l'image au lieu de lui poser une classe cf https://git.spip.net/spip/medias/src/branch/master/inc/documents.php#L147

D'après un second test, le problème est le même quand on attribue une vignette perso à un document.

Premier test, avec un fichier txt qui ne comporte pas de vignette perso, on obtient `<img src="plugins-dist/medias/prive/vignettes/txt.svg" alt="" class="spip_logo spip_logos spip_document_icone" width="64" height="64" align="middle">` où on remarque l'attribut align middle. Cela vient de `vignette_automatique()` qui applique `inserer_attribut($img, 'align', $align);` sur l'image au lieu de lui poser une classe cf https://git.spip.net/spip/medias/src/branch/master/inc/documents.php#L147 D'après un second test, le problème est le même quand on attribue une vignette perso à un document.
Owner

Le patch suivant permet de poser la classe spip_logo_$align pour le premier cas (vignette de document par défaut).

diff --git a/inc/documents.php b/inc/documents.php
index 00df869..f77d5db 100644
--- a/inc/documents.php
+++ b/inc/documents.php
@@ -142,10 +142,10 @@ function vignette_automatique($img, $doc, $lien, $x = 0, $y = 0, $align = '', $c
 		$img = image_reduire($img, $x, $y);
 	}
 	$img = inserer_attribut($img, 'alt', '');
-	$img = inserer_attribut($img, 'class', trim($class));
 	if ($align) {
-		$img = inserer_attribut($img, 'align', $align);
+		$class .= " spip_logo_$align";
 	}
+	$img = inserer_attribut($img, 'class', trim($class));
 
 	if (!$lien) {
 		return $img;
Le patch suivant permet de poser la classe spip_logo_$align pour le premier cas (vignette de document par défaut). ```diff diff --git a/inc/documents.php b/inc/documents.php index 00df869..f77d5db 100644 --- a/inc/documents.php +++ b/inc/documents.php @@ -142,10 +142,10 @@ function vignette_automatique($img, $doc, $lien, $x = 0, $y = 0, $align = '', $c $img = image_reduire($img, $x, $y); } $img = inserer_attribut($img, 'alt', ''); - $img = inserer_attribut($img, 'class', trim($class)); if ($align) { - $img = inserer_attribut($img, 'align', $align); + $class .= " spip_logo_$align"; } + $img = inserer_attribut($img, 'class', trim($class)); if (!$lien) { return $img; ```
b_b added the
bug
label 11 months ago
b_b added this to the spip-4.0 milestone 11 months ago
Owner

Je tag bug, même si c'était pareil en 3.2...

Je tag bug, même si c'était pareil en 3.2...
Owner

Dans ce cas il faudrait appliquer le même comportement que dans la fonction logo_survol :
https://git.spip.net/spip/spip/src/branch/master/ecrire/balise/logo_.php#L160

Mais a verifier que c'est bien le seul usage de la fonction vignette_automatique

Dans ce cas il faudrait appliquer le même comportement que dans la fonction logo_survol : https://git.spip.net/spip/spip/src/branch/master/ecrire/balise/logo_.php#L160 Mais a verifier que c'est bien le seul usage de la fonction `vignette_automatique`
Poster

Je viens de tester le patch : il résoud le pb signalé même dans le cas où une vignette personnalisée a été affectée au document.

Vignette par défaut :
<img src="local/cache-vignettes/L64xH64/pdf-b8aed.svg?1644756863" alt="" class="spip_logo spip_logos spip_document_icone spip_logo_center" width="64" height="64">

Vignette personnalisée :
<img src="local/cache-vignettes/L141xH200/vignette_perso-f80d8.png?1644756754" alt="" class="spip_logo spip_logos spip_logo_center" width="141" height="200">

Je viens de tester le patch : il résoud le pb signalé même dans le cas où une vignette personnalisée a été affectée au document. Vignette par défaut : `<img src="local/cache-vignettes/L64xH64/pdf-b8aed.svg?1644756863" alt="" class="spip_logo spip_logos spip_document_icone spip_logo_center" width="64" height="64">` Vignette personnalisée : `<img src="local/cache-vignettes/L141xH200/vignette_perso-f80d8.png?1644756754" alt="" class="spip_logo spip_logos spip_logo_center" width="141" height="200">`
Luc closed this issue 11 months ago
Luc reopened this issue 11 months ago
Owner

Dans ce cas il faudrait appliquer le même comportement que dans la fonction logo_survol :
https://git.spip.net/spip/spip/src/branch/master/ecrire/balise/logo_.php#L160

Mais a verifier que c'est bien le seul usage de la fonction vignette_automatique

@cerdic 6 mois après je ne comprends plus ton commentaire ^^

Comme le patch semble fixer le bug, je vais déjà envoyer une PR, ça permettra d'avancer.

> Dans ce cas il faudrait appliquer le même comportement que dans la fonction logo_survol : > https://git.spip.net/spip/spip/src/branch/master/ecrire/balise/logo_.php#L160 > > Mais a verifier que c'est bien le seul usage de la fonction `vignette_automatique` @cerdic 6 mois après je ne comprends plus ton commentaire ^^ Comme le patch semble fixer le bug, je vais déjà envoyer une PR, ça permettra d'avancer.
b_b modified the milestone from spip-4.0 to spip-4.1 5 months ago
Owner

Idéalement ça ne devrait être reporté qu'en 4.1, mais ça ne mange pas de pain de le reporter en 4.0, à vous de voir.

Idéalement ça ne devrait être reporté qu'en 4.1, mais ça ne mange pas de pain de le reporter en 4.0, à vous de voir.
b_b closed this issue 5 months ago
Owner

@cerdic 6 mois après je ne comprends plus ton commentaire ^^

moi non plus ... :p

> @cerdic 6 mois après je ne comprends plus ton commentaire ^^ moi non plus ... :p
Sign in to join this conversation.
No Milestone
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.