source: spip-zone/_core_/plugins/dump/base/restaurer.php @ 93610

Last change on this file since 93610 was 93610, checked in by cedric@…, 5 years ago

Indentation et regles de codage selon http://www.spip.net/fr_article3497.html#regles_codage

File size: 3.4 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2015                                                *
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")) {
14        return;
15}
16
17include_spip('inc/dump');
18include_spip('inc/actions');
19
20/**
21 * Restauration d'une sauvegarde
22 *
23 * @param string $titre Titre de la page
24 * @param bool $reprise true s'il s'agit d'une reprise de sauvegarde
25 */
26function base_restaurer_dist($titre = '', $reprise = false) {
27        $status_file = _DUMP_STATUS_FILE;
28        $status_file = _DIR_TMP . basename($status_file) . ".txt";
29        if (!lire_fichier($status_file, $status)
30                OR !$status = unserialize($status)
31        ) {
32        } else {
33                $redirect = parametre_url(generer_action_auteur('restaurer', _DUMP_STATUS_FILE), "step", intval(_request('step')+1),
34                        '&');
35
36                $timeout = ini_get('max_execution_time');
37                // valeur conservatrice si on a pas reussi a lire le max_execution_time
38                if (!$timeout) {
39                        $timeout = 30;
40                } // parions sur une valeur tellement courante ...
41                $max_time = time()+$timeout/2;
42
43                include_spip('inc/minipres');
44                @ini_set("zlib.output_compression", "0"); // pour permettre l'affichage au fur et a mesure
45
46                $titre = _T('dump:restauration_en_cours') . " (" . count($status['tables']) . ") ";
47                $balise_img = chercher_filtre('balise_img');
48                $titre .= $balise_img(chemin_image('searching.gif'));
49                echo(install_debut_html($titre));
50                // script de rechargement auto sur timeout
51                echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . ($timeout*1000) . ")");
52                echo "<div style='text-align: left'>\n";
53
54                dump_serveur($status['connect']);
55                spip_connect('dump');
56
57                // au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde
58                if (_request('step')) {
59                        $options = array(
60                                'callback_progression' => 'dump_afficher_progres',
61                                'max_time' => $max_time,
62                                'no_erase_dest' => lister_tables_noerase(),
63                                'where' => $status['where'] ? $status['where'] : array(),
64                                'desc_tables_dest' => array()
65                        );
66                        if ($desc = sql_getfetsel('valeur', 'spip_meta', "nom='dump_structure_temp'", '', '', '', '', 'dump')
67                                AND $desc = unserialize($desc)
68                        ) {
69                                $options['desc_tables_dest'] = $desc;
70                        }
71                        $res = base_copier_tables($status_file, $status['tables'], 'dump', '', $options);
72                } else {
73                        // mais on en profite pour reparer les version base pour etre sur de ne pas les perdre
74                        sql_updateq("spip_meta", array('impt' => 'oui'), "nom='version_installee'", '', 'dump');
75                        sql_updateq("spip_meta", array('impt' => 'oui'), "nom LIKE '%_base_version'", '', 'dump');
76                }
77
78                echo("</div>\n");
79
80                if (!$res) {
81                        echo dump_relance($redirect);
82                }
83
84                echo(install_fin_html());
85                ob_end_flush();
86                flush();
87
88                if (!$res) {
89                        exit;
90                }
91
92                // quand on sort de $export avec true c'est qu'on a fini
93                dump_end(_DUMP_STATUS_FILE, 'restaurer');
94                include_spip('inc/headers');
95                echo redirige_formulaire(generer_url_ecrire("restaurer", 'status=' . _DUMP_STATUS_FILE, '', true, true));
96
97        }
98}
99
100
101?>
Note: See TracBrowser for help on using the repository browser.