[SPIP] v3.2.1-->v3.2.3
[lhc/web/www.git] / www / plugins-dist / medias / inc / vignette.php
1 <?php
2 /***************************************************************************\
3 * SPIP, Systeme de publication pour l'internet *
4 * *
5 * Copyright (c) 2001-2019 *
6 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
7 * *
8 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
9 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
10 \***************************************************************************/
11
12 /**
13 * Gestion des vignettes de types de fichier
14 *
15 * @package SPIP\Medias\Vignette
16 **/
17
18 if (!defined('_ECRIRE_INC_VERSION')) {
19 return;
20 }
21
22 /**
23 * Vignette pour une extension de document
24 *
25 * Recherche les fichiers d'icones au format png pour l'extension demandée.
26 * On cherche prive/vignettes/ext.png dans le path.
27 *
28 * @param string $ext
29 * Extension du fichier. Exemple : png
30 * @param bool $size
31 * true pour retourner un tableau avec les tailles de la vignette
32 * false pour retourner uniquement le chemin du fichier
33 * @param bool $loop
34 * Autoriser la fonction à s'appeler sur elle-même
35 * (paramètre interne).
36 * @return array|bool|string
37 * False si l'image n'est pas trouvée
38 * Chaîne (chemin vers l'image) si on ne demande pas de taille
39 * Tableau (chemin, largeur, hauteur) si on demande avec la taille.
40 */
41 function inc_vignette_dist($ext, $size = true, $loop = true) {
42
43 if (!$ext) {
44 $ext = 'txt';
45 }
46
47 // Chercher la vignette correspondant a ce type de document
48 // dans les vignettes persos, ou dans les vignettes standard
49 if (
50 # installation dans un dossier /vignettes personnel, par exemple /squelettes/vignettes
51 !$v = find_in_path('prive/vignettes/' . $ext . '.png')
52 ) {
53 if ($loop) {
54 $f = charger_fonction('vignette', 'inc');
55 $v = $f('defaut', false, $loop = false);
56 } else {
57 $v = false;
58 }
59 } # pas trouve l'icone de base
60
61 if (!$size) {
62 return $v;
63 }
64
65 $largeur = $hauteur = 0;
66 if ($v and $size = @getimagesize($v)) {
67 $largeur = $size[0];
68 $hauteur = $size[1];
69 }
70
71 return array($v, $largeur, $hauteur);
72 }