From a174a686a1a908d1f2adb0aed1628dead14fd3ca Mon Sep 17 00:00:00 2001
From: "marcimat@rezo.net" <>
Date: Wed, 12 Jul 2017 16:12:05 +0000
Subject: [PATCH] =?UTF-8?q?Suite=20de=20https://core.spip.net/projects/spi?=
 =?UTF-8?q?p/repository/revisions/23663=20sur=20le=20calcul=20de=20la=20vi?=
 =?UTF-8?q?gnette=20d=E2=80=99un=20document=20utilis=C3=A9=20en=20mod?=
 =?UTF-8?q?=C3=A8le=20sur=20un=20SPIP=20distant.=20Il=20faut=20transmettre?=
 =?UTF-8?q?=20le=20$connect=20et=20tester=20si=20le=20connect=20et=20dista?=
 =?UTF-8?q?nt=20et=20retourner=20l=E2=80=99URL=20en=20cons=C3=A9quence.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 inc/documents.php | 32 ++++++++++++++++++++++----------
 modeles/img.html  |  2 +-
 2 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/inc/documents.php b/inc/documents.php
index 6259c3e5..ec6a0ba3 100644
--- a/inc/documents.php
+++ b/inc/documents.php
@@ -112,14 +112,16 @@ function generer_url_document_dist($id_document, $args = '', $ancre = '') {
 //
 // A noter : dans le portfolio prive on pousse le vice jusqu'a reduire la taille
 // de la vignette -> c'est a ca que sert la variable $portfolio
-// https://code.spip.net/@vignette_automatique
-function vignette_automatique($img, $doc, $lien, $x = 0, $y = 0, $align = '', $class = 'spip_logo spip_logos') {
+function vignette_automatique($img, $doc, $lien, $x = 0, $y = 0, $align = '', $class = null, $connect = null) {
 	include_spip('inc/distant');
 	include_spip('inc/texte');
 	include_spip('inc/filtres_images_mini');
+	if (is_null($class)) {
+		$class = 'spip_logo spip_logos';
+	}
 	$e = $doc['extension'];
 	if (!$img) {
-		if ($img = image_du_document($doc)) {
+		if ($img = image_du_document($doc, $connect)) {
 			if (!$x and !$y) {
 				// eviter une double reduction
 				$img = image_reduire($img);
@@ -162,13 +164,21 @@ function vignette_automatique($img, $doc, $lien, $x = 0, $y = 0, $align = '', $c
 	return "<a href='$lien' type='$mime' title='$titre'>$img</a>";
 }
 
-// Trouve une image caracteristique d'un document.
-// Si celui-ci est une image et que les outils graphiques sont dispos,
-// retourner le document (en exploitant sa copie locale s'il est distant).
-// Autrement retourner la vignette fournie par SPIP pour ce type MIME
-// Resultat: un fichier local existant
-
-function image_du_document($document) {
+/**
+ * Trouve une image caractéristique d'un document.
+ *
+ * Si celui-ci est une image et que les outils graphiques sont dispos,
+ * retourner le document (en exploitant sa copie locale s'il est distant).
+ *
+ * Si on a un connecteur externe, on utilise l’URL externe.
+ *
+ * Autrement retourner la vignette fournie par SPIP pour ce type MIME
+ *
+ * @param array $document
+ * @param null|string $connect
+ * @return string Chemin de l’image
+ */
+function image_du_document($document, $connect = null) {
 	if ($e = $document['extension']
 		and isset($GLOBALS['meta']['formats_graphiques'])
 		and (strpos($GLOBALS['meta']['formats_graphiques'], $e) !== false)
@@ -177,6 +187,8 @@ function image_du_document($document) {
 	) {
 		if ($document['distant'] == 'oui') {
 			$image = _DIR_RACINE . copie_locale($document['fichier']);
+		} elseif ($image = document_spip_externe($document['fichier'], $connect)) {
+			return $image;
 		} else {
 			$image = get_spip_doc($document['fichier']);
 		}
diff --git a/modeles/img.html b/modeles/img.html
index 018f4372..0ef76e60 100644
--- a/modeles/img.html
+++ b/modeles/img.html
@@ -21,7 +21,7 @@
 	- sinon alt vide
 	
 	Dans le cas mode "document", le contenu de l'attribut 
-	alt et title se construit selon le même schema a ceci pres
+	alt et title se construit selon le meme schema a ceci pres
 	qu'on ajoute #TYPE_DOCUMENT - #TAILLE
 	sauf si #ENV{lien} est passe	
 
-- 
GitLab