source: spip-zone/_core_/plugins/svp/formulaires/charger_plugin_archive.php @ 64676

Last change on this file since 64676 was 64676, checked in by marcimat@…, 7 years ago

Du PHP Doc sur une partie de SVP

File size: 2.3 KB
Line 
1<?php
2
3/**
4 * Gestion du formulaire de téléchargement de plugin via une URL
5 *
6 * @plugin SVP pour SPIP
7 * @license GPL
8 * @package Plugins\SVP\Formulaires
9 */
10 
11if (!defined("_ECRIRE_INC_VERSION")) return;
12
13/**
14 * Chargement du formulaire de téléchargement de plugin
15 *
16 * @return array
17 *     Environnement du formulaire
18**/
19function formulaires_charger_plugin_archive_charger_dist() {
20        return array(
21                'archive' =>'',
22                'destination' =>''
23        );
24}
25
26/**
27 * Vérifications du formulaire de téléchargement de plugin
28 *
29 * Vérifie qu'une archive est saisie, et si la destination existe
30 * demande à confirmer l'écrasement
31 *
32 * @return array
33 *     Tableau des erreurs
34**/
35function formulaires_charger_plugin_archive_verifier_dist(){
36        include_spip('inc/plugin'); // _DIR_PLUGINS_AUTO
37        $erreurs = array();
38        if (!$archive = _request('archive')) {
39                $erreurs['archive'] = _T('info_obligatoire');
40        } else {
41                // calcul du répertoire de destination
42                if (!$destination = _request('destination')) {
43                        $destination = pathinfo($archive);
44                        $destination = $destination['filename'];
45                }
46                $destination = str_replace('../', '', $destination);
47                set_request('destination', $destination);
48
49                // si la destination existe, on demande confirmation de l'ecrasement.
50                $dir = _DIR_PLUGINS_AUTO . $destination;
51                if (is_dir($dir) and !_request('confirmer')) {
52                        $base = dirname($dir);
53                        $nom = basename($dir);
54                        $backup = "$base/.$nom.bck";
55                        $erreurs['confirmer'] = _T("svp:confirmer_telecharger_dans", array(
56                                'dir' => joli_repertoire($dir),
57                                'dir_backup' => joli_repertoire($backup)));
58                }
59        }
60
61        return $erreurs;
62}
63
64/**
65 * Traitement du formulaire de téléchargement de plugin
66 *
67 * Télécharge le plugin via le téléporteur et rend la main.
68 *
69 * @return array
70 *     Retours du traitement
71**/
72function formulaires_charger_plugin_archive_traiter_dist(){
73        $retour = array();
74
75        $archive = _request('archive');
76        $dest = _request('destination');
77
78        include_spip('action/teleporter');
79        $teleporter_composant = charger_fonction('teleporter_composant', 'action');
80        $ok = $teleporter_composant('http', $archive, _DIR_PLUGINS_AUTO . $dest);
81        if ($ok !== true) {
82                $retour['message_erreur'] = $ok;
83        } else {
84                $retour['message_ok'] = _T('svp:message_telechargement_archive_effectue',
85                        array('dir' => joli_repertoire( _DIR_PLUGINS_AUTO . $dest )));
86        }
87        $retour['editable'] = true;
88        return $retour;
89}
90
91
92?>
Note: See TracBrowser for help on using the repository browser.