source: spip-zone/_squelettes_/soyezcreateurs_net/plugins_1.9.3/plugins/__soyezcreateurs/action/iconifier.php @ 12874

Last change on this file since 12874 was 12874, checked in by real3t@…, 13 years ago

Suivre la SVN

Ajout de remarques # <sc> et # </sc> pour encadrer les modifications

File size: 3.7 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2007                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15// http://doc.spip.org/@action_iconifier_dist
16function action_iconifier_dist()
17{
18        include_spip('inc/actions');
19        $securiser_action = charger_fonction('securiser_action', 'inc');
20        $arg = $securiser_action();
21        $iframe_redirect = _request('iframe_redirect');
22
23        $arg = rawurldecode($arg);
24
25        if (!preg_match(',^-?\d*(\D)(.*)$,',$arg, $r))
26                spip_log("action iconifier: $arg pas compris");
27        elseif ($r[1] == '+')
28                action_spip_image_ajouter_dist($r[2]);
29        else    action_spip_image_effacer_dist($r[2]);
30       
31        if(_request("iframe") == 'iframe') {
32                $redirect = urldecode($iframe_redirect)."&iframe=iframe";
33                redirige_par_entete(urldecode($redirect));
34        }
35}
36
37// http://doc.spip.org/@action_spip_image_effacer_dist
38function action_spip_image_effacer_dist($arg) {
39
40        if (!strstr($arg, ".."))
41                @unlink(_DIR_LOGOS . $arg);
42}
43
44//
45// Ajouter un logo
46//
47
48// $source = $_FILES[0]
49// $dest = arton12.xxx
50// http://doc.spip.org/@action_spip_image_ajouter_dist
51function action_spip_image_ajouter_dist($arg) {
52        global $sousaction2, $source, $formats_logos;
53
54        include_spip('inc/getdocument');
55        if (!$sousaction2) {
56                if (!$_FILES) $_FILES = $GLOBALS['HTTP_POST_FILES'];
57                $source = (is_array($_FILES) ? array_pop($_FILES) : "");
58        }
59        if ($source) {
60                $f =_DIR_LOGOS . $arg . '.tmp';
61
62                if (!is_array($source)) 
63                // fichier dans upload/
64                        $source = @copy(determine_upload() . $source, $f);
65                else {
66                // Intercepter une erreur a l'envoi
67                        if (check_upload_error($source['error']))
68                                $source ="";
69                        else
70                // analyse le type de l'image (on ne fait pas confiance au nom de
71                // fichier envoye par le browser : pour les Macs c'est plus sur)
72
73                                $source = deplacer_fichier_upload($source['tmp_name'], $f);
74                }
75        }
76        if (!$source)
77                spip_log("pb de copie pour $f");
78        else {
79                $size = @getimagesize($f);
80                $type = !$size ? '': ($size[2] > 3 ? '' : $formats_logos[$size[2]-1]);
81# <sc>
82                if (!$type) {
83                        include_spip('inc/swfheader');
84                        $swf = new swfheader();
85                        $swf->loadswf($f);
86                        if ($swf->valid) {
87                                $type='swf';
88                                $size[0] = $swf->width;
89                                $size[1] = $swf->height;
90                        }
91                }
92# </sc>
93                if ($type) {
94                        $poids = filesize($f);
95
96                        if (_LOGO_MAX_SIZE > 0
97                        AND $poids > _LOGO_MAX_SIZE*1024) {
98                                @unlink ($f);
99                                check_upload_error(6,
100                                _T('info_logo_max_poids',
101                                        array('maxi' => taille_en_octets(_LOGO_MAX_SIZE*1024),
102                                        'actuel' => taille_en_octets($poids))));
103                        }
104
105                        if (_LOGO_MAX_WIDTH * _LOGO_MAX_HEIGHT
106                        AND ($size[0] > _LOGO_MAX_WIDTH
107                        OR $size[1] > _LOGO_MAX_HEIGHT)) {
108                                @unlink ($f);
109                                check_upload_error(6, 
110                                _T('info_logo_max_taille',
111                                        array(
112                                        'maxi' =>
113                                                _T('info_largeur_vignette',
114                                                        array('largeur_vignette' => _LOGO_MAX_WIDTH,
115                                                        'hauteur_vignette' => _LOGO_MAX_HEIGHT)),
116                                        'actuel' =>
117                                                _T('info_largeur_vignette',
118                                                        array('largeur_vignette' => $size[0],
119                                                        'hauteur_vignette' => $size[1]))
120                                )));
121                        }
122                        @rename ($f, _DIR_LOGOS . $arg . ".$type");
123                }
124                else {
125                        @unlink ($f);
126                        check_upload_error(6,_T('info_logo_format_interdit',
127                                                array('formats' => join(', ', $formats_logos))));
128                }
129       
130        }
131}
132?>
Note: See TracBrowser for help on using the repository browser.