source: spip-zone/_plugins_/thumbsites/inc/thumbsites_filtres.php @ 35910

Last change on this file since 35910 was 35910, checked in by eric@…, 11 years ago

Correction de la balise LOGO_SITE qui ne fonctionnait plus. Cette corrextion est la même que pour Gravatar

File size: 2.9 KB
Line 
1<?php
2
3/*! \brief filtre à utiliser dans les squelettes
4 *
5 *  Définition de la fonction de filtre
6 *  Vérifie que le plugin est activé et qu'il n'existe pas ailleurs deja ce filtre
7 *  Rappel : dans le cadre d'une utilisation SPIP, il n'y a pas de paramètre à donner. $url correspond à la balise appelant le filtre
8 * 
9 * \param $url_site url du site à consulter
10 * \return url de l'image générée par le serveur
11 */
12if (!function_exists('url_thumbsite')) {
13        function url_thumbsite($url_site) {
14                $url_serveur = '';
15                //determine le serveur d'aperçu a utiliser, defaut thumbshots.com
16                $serveur = sinon(lire_config('thumbsites/serveur'), "thumbshots");
17                //Charge le fichier de conf specifique au serveur
18                include_spip('serveurs/'.$serveur);
19                //execute la surcharge
20                if ($url_site)
21                        $url_serveur = url_thumbsite_serveur($url_site);
22                return $url_serveur;
23        }
24}
25
26// fonction de recherche de logo
27// SPIP 2.0
28function calcule_logo_ou_thumbshot($url) {
29        $a = func_get_args();
30        $url = array_shift($a);
31
32        // la fonction normale
33        $c = call_user_func_array('calcule_logo',$a);
34
35        // si elle repond pas, on va chercher la vignette
36        if (!$c[0])
37                $c[0] = thumbshot($url);
38
39        return $c;
40}
41
42
43// fonction de recherche de logo
44// SPIP 2.1 : on se contente de produire un tag IMG
45function thumbshot_img($url) {
46        if (!$url OR !$g = thumbshot($url))
47                return '';
48
49        return '<img src="'.$g.'" alt="" class="spip_logos" />';
50
51}
52
53// fonction de creation d'un index des vignettes
54function creer_index_thumbshots($tmp) {
55        static $done = false;
56        if ($done) return;
57        $done = true;
58        if (!file_exists($tmp.'index.php'))
59                ecrire_fichier ($tmp.'index.php', '<?php
60        foreach(glob(\'./*.jpg\') as $i)
61                echo "<img src=\'$i\' />\n";
62?>'
63                );
64}
65
66// Cree le fichier cache du thumbshot et renvoie le fichier
67function thumbshot($url_site) {
68        static $nb=5; // ne pas en charger plus de 5 anciens par tour
69
70        if (!strlen($url_site) OR !parse_url($url_site))
71                return '';
72
73        $tmp = sous_repertoire(_DIR_VAR, 'cache-thumbsites');
74        $md5_url = md5(strtolower($url_site));
75        $thumb_cache = $tmp.$md5_url.'.jpg';
76
77        if ((!file_exists($thumb_cache) OR ((time()-3600*24*30 > filemtime($thumb_cache)) AND $nb > 0))) {
78
79                $nb--;
80                include_spip("inc/distant");
81                if ($thumb = recuperer_page(url_thumbsite($url_site))) {
82                        spip_log('thumbshot ok pour '.$url_site);
83                        ecrire_fichier($thumb_cache, $thumb);
84                        // si c'est un png, le convertir en jpg
85                        $a = @getimagesize($thumb_cache);
86                        if ($a[2] == 3) // png
87                        {
88                                rename($thumb_cache, $thumb_cache.'.png');
89                                include_spip('inc/filtres_images');
90                                $img = imagecreatefrompng($thumb_cache.'.png');
91                                if (function_exists('image_imagejpg')) {
92                                        image_imagejpg($img, $thumb_cache);                             
93                                } else {
94                                        /* Depuis SPIP 2.1, les filtres images changent de nom */
95                                        _image_imagejpg($img, $thumb_cache);
96                                }
97                        }
98
99                        creer_index_thumbshots($tmp);
100                }
101        }
102
103        // On verifie si le thumbshot existe en controlant la taille du fichier
104        if (@filesize($thumb_cache))
105                return $thumb_cache;
106        else
107                return '';
108}
109
110?>
Note: See TracBrowser for help on using the repository browser.