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

Last change on this file since 48811 was 48811, checked in by yffic@…, 10 years ago

Ajout de la fonction de rafraichissement de la vignette

File size: 3.3 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                include_spip("inc/filtres");
17                $serveur = sinon(lire_config('thumbsites/serveur'), "thumbshots");
18                //Charge le fichier de conf specifique au serveur
19                include_spip('serveurs/'.$serveur);
20                //execute la surcharge
21                if ($url_site)
22                        $url_serveur = url_thumbsite_serveur($url_site);
23                return $url_serveur;
24        }
25}
26
27// fonction de recherche de logo
28// SPIP 2.0
29function calcule_logo_ou_thumbshot($url) {
30        $a = func_get_args();
31        $url = array_shift($a);
32
33        // la fonction normale
34        $c = call_user_func_array('calcule_logo',$a);
35
36        // si elle repond pas, on va chercher la vignette
37        if (!$c[0])
38                $c[0] = thumbshot($url);
39
40        return $c;
41}
42
43
44// fonction de recherche de logo
45// SPIP 2.1 : on se contente de produire un tag IMG
46function thumbshot_img($url) {
47        if (!$url OR !$g = thumbshot($url))
48                return '';
49
50        return '<img src="'.$g.'" alt="" class="spip_logos" />';
51
52}
53
54// fonction de creation d'un index des vignettes
55function creer_index_thumbshots($tmp) {
56        static $done = false;
57        if ($done) return;
58        $done = true;
59        if (!file_exists($tmp.'index.php'))
60                ecrire_fichier ($tmp.'index.php', '<?php
61        foreach(glob(\'./*.jpg\') as $i)
62                echo "<img src=\'$i\' />\n";
63?>'
64                );
65}
66
67// Cree le fichier cache du thumbshot et renvoie le fichier
68function thumbshot($url_site, $refresh=false) {
69        static $nb=5; // ne pas en charger plus de 5 anciens par tour
70
71        if (!strlen($url_site) OR !parse_url($url_site))
72                return '';
73
74        $tmp = sous_repertoire(_DIR_VAR, 'cache-thumbsites');
75        $md5_url = md5(strtolower($url_site));
76        $thumb_cache = $tmp.$md5_url.'.jpg';
77
78        if( $refresh AND file_exists($thumb_cache)) {
79                $ret=supprimer_fichier($thumb_cache);
80                spip_log("thumbshot demande de rafraichissement url $url_site file $thumb_cache suppression reussie ? $ret");
81        }
82
83        if ((!file_exists($thumb_cache) OR ((time()-3600*24*30 > filemtime($thumb_cache)) AND $nb > 0))) {
84
85                $nb--;
86                include_spip("inc/distant");
87                if ($thumb = recuperer_page(url_thumbsite($url_site))) {
88                        spip_log('thumbshot ok pour '.$url_site);
89                        ecrire_fichier($thumb_cache, $thumb);
90                        // si c'est un png, le convertir en jpg
91                        $a = @getimagesize($thumb_cache);
92                        if ($a[2] == 3) // png
93                        {
94                                rename($thumb_cache, $thumb_cache.'.png');
95                                include_spip('inc/filtres_images');
96                                $img = imagecreatefrompng($thumb_cache.'.png');
97                                if (function_exists('image_imagejpg')) {
98                                        image_imagejpg($img, $thumb_cache);                             
99                                } else {
100                                        /* Depuis SPIP 2.1, les filtres images changent de nom */
101                                        _image_imagejpg($img, $thumb_cache);
102                                }
103                        }
104
105                        creer_index_thumbshots($tmp);
106                }
107        }
108
109        // On verifie si le thumbshot existe en controlant la taille du fichier
110        if (@filesize($thumb_cache))
111                return $thumb_cache;
112        else
113                return '';
114}
115
116?>
Note: See TracBrowser for help on using the repository browser.