[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / plugins-dist / dump / inc / sauvegarder.php
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
13 if (!defined("_ECRIRE_INC_VERSION")) return;
14
15 include_spip('inc/dump');
16
17 function inc_sauvegarder_dist($status_file, $redirect='') {
18 $status_file = _DIR_TMP.basename($status_file).".txt";
19 if (!lire_fichier($status_file, $status)
20 OR !$status = unserialize($status)) {
21 }
22 else {
23 $timeout = ini_get('max_execution_time');
24 // valeur conservatrice si on a pas reussi a lire le max_execution_time
25 if (!$timeout) $timeout=30; // parions sur une valeur tellement courante ...
26 $max_time = time()+$timeout/2;
27
28 include_spip('inc/minipres');
29 @ini_set("zlib.output_compression","0"); // pour permettre l'affichage au fur et a mesure
30
31 $titre = _T('dump:sauvegarde_en_cours') . " (".count($status['tables']).") ";
32 $balise_img = chercher_filtre('balise_img');
33 $titre .= $balise_img(chemin_image('searching.gif'));
34 echo ( install_debut_html($titre));
35 // script de rechargement auto sur timeout
36 echo http_script("window.setTimeout('location.href=\"".$redirect."\";',".($timeout*1000).")");
37 echo "<div style='text-align: left'>\n";
38
39 dump_serveur($status['connect']);
40 spip_connect('dump');
41
42 // au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde
43 $res = false;
44 if (_request('step')) {
45 $options = array(
46 'callback_progression' => 'dump_afficher_progres',
47 'max_time' => $max_time,
48 'no_erase_dest' => lister_tables_noerase(),
49 'where' => $status['where']?$status['where']:array(),
50 );
51 $res = base_copier_tables($status_file, $status['tables'], '', 'dump', $options);
52 }
53
54 echo ( "</div>\n");
55
56 if (!$res AND $redirect)
57 echo dump_relance($redirect);
58 echo (install_fin_html());
59 ob_end_flush();
60 flush();
61
62 return $res;
63 }
64 }
65
66
67 ?>