[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / plugins-dist / dump / base / restaurer.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 include_spip('inc/actions');
17
18 function base_restaurer_dist($titre='', $reprise=false) {
19 $status_file = _DUMP_STATUS_FILE;
20 $status_file = _DIR_TMP.basename($status_file).".txt";
21 if (!lire_fichier($status_file, $status)
22 OR !$status = unserialize($status)) {
23 }
24 else {
25 $redirect = parametre_url(generer_action_auteur('restaurer',_DUMP_STATUS_FILE),"step",intval(_request('step')+1),'&');
26
27 $timeout = ini_get('max_execution_time');
28 // valeur conservatrice si on a pas reussi a lire le max_execution_time
29 if (!$timeout) $timeout=30; // parions sur une valeur tellement courante ...
30 $max_time = time()+$timeout/2;
31
32 include_spip('inc/minipres');
33 @ini_set("zlib.output_compression","0"); // pour permettre l'affichage au fur et a mesure
34
35 $titre = _T('dump:restauration_en_cours') . " (".count($status['tables']).") ";
36 $balise_img = chercher_filtre('balise_img');
37 $titre .= $balise_img(chemin_image('searching.gif'));
38 echo ( install_debut_html($titre));
39 // script de rechargement auto sur timeout
40 echo http_script("window.setTimeout('location.href=\"".$redirect."\";',".($timeout*1000).")");
41 echo "<div style='text-align: left'>\n";
42
43 dump_serveur($status['connect']);
44 spip_connect('dump');
45
46 // au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde
47 if (_request('step')) {
48 $options = array(
49 'callback_progression' => 'dump_afficher_progres',
50 'max_time' => $max_time,
51 'no_erase_dest' => lister_tables_noerase(),
52 'where' => $status['where']?$status['where']:array(),
53 'desc_tables_dest' => array()
54 );
55 if ($desc = sql_getfetsel('valeur','spip_meta',"nom='dump_structure_temp'",'','','','','dump')
56 AND $desc = unserialize($desc))
57 $options['desc_tables_dest'] = $desc;
58 #var_dump(sql_allfetsel('nom,valeur','spip_meta',"",'','','','','dump'));
59 #die();
60 $res = base_copier_tables($status_file, $status['tables'], 'dump', '', $options);
61 }
62 else {
63 // mais on en profite pour reparer les version base pour etre sur de ne pas les perdre
64 sql_updateq("spip_meta",array('impt'=>'oui'),"nom='version_installee'",'','dump');
65 sql_updateq("spip_meta",array('impt'=>'oui'),"nom LIKE '%_base_version'",'','dump');
66 }
67
68 echo ( "</div>\n");
69
70 if (!$res)
71 echo dump_relance($redirect);
72
73 echo (install_fin_html());
74 ob_end_flush();
75 flush();
76
77 if (!$res)
78 exit;
79
80 // quand on sort de $export avec true c'est qu'on a fini
81 dump_end(_DUMP_STATUS_FILE,'restaurer');
82 include_spip('inc/headers');
83 echo redirige_formulaire(generer_url_ecrire("restaurer",'status='._DUMP_STATUS_FILE,'',true, true));
84
85 }
86 }
87
88
89 ?>