source: spip-zone/_core_/plugins/dump/inc/sauvegarder.php @ 95539

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

Correction d'un notice PHP

File size: 2.7 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2016                                                *
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');
18
19/**
20 * Fonction principale de sauvegarde
21 * En mode sqlite on passe par une copie de base a base (dans l'API de SPIP)
22 *
23 * @param string $status_file Nom du fichier de status (stocke dans _DIR_TMP)
24 * @param string $redirect Redirection apres la sauvegarde
25 * @return bool
26 */
27function inc_sauvegarder_dist($status_file, $redirect = '') {
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                $timeout = ini_get('max_execution_time');
34                // valeur conservatrice si on a pas reussi a lire le max_execution_time
35                if (!$timeout) {
36                        $timeout = 30;
37                } // parions sur une valeur tellement courante ...
38                $max_time = time() + $timeout / 2;
39
40                include_spip('inc/minipres');
41                @ini_set("zlib.output_compression", "0"); // pour permettre l'affichage au fur et a mesure
42
43                $titre = _T('dump:sauvegarde_en_cours') . " (" . count($status['tables']) . ") ";
44                $balise_img = chercher_filtre('balise_img');
45                $titre .= $balise_img(chemin_image('searching.gif'));
46                echo(install_debut_html($titre));
47                // script de rechargement auto sur timeout
48                echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . ($timeout * 1000) . ")");
49                echo "<div style='text-align: left'>\n";
50
51                dump_serveur($status['connect']);
52                spip_connect('dump');
53
54                // au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde
55                $res = false;
56                if (_request('step')) {
57                        $options = array(
58                                'callback_progression' => 'dump_afficher_progres',
59                                'max_time' => $max_time,
60                                'no_erase_dest' => lister_tables_noerase(),
61                                'where' => $status['where'] ? $status['where'] : array(),
62                        );
63                        $res = base_copier_tables($status_file, $status['tables'], '', 'dump', $options);
64                }
65
66                echo("</div>\n");
67
68                if (!$res and $redirect) {
69                        echo dump_relance($redirect);
70                }
71                echo(install_fin_html());
72                if (@ob_get_contents()) {
73                        ob_end_flush();
74                }
75                flush();
76
77                return $res;
78        }
79}
Note: See TracBrowser for help on using the repository browser.