3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2014 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
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 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) return;
15 include_spip('base/dump');
18 * On arrive ici depuis inc/admin
20 * - puis apres chaque timeout avec dans ce cas $reprise=true
22 * import_all_debut() est appele la premiere fois et initialise le dump
23 * import_all_milieu() est appele a chaque retour ici
25 * - soit on relance pour la seconde etape de fusion
28 * @param string $titre
29 * @param bool $reprise
31 function base_import_all_dist($titre='', $reprise=false)
33 if (!$titre) return; // anti-testeur automatique
34 if (!$reprise) import_all_debut();
36 $request = unserialize($GLOBALS['meta']['import_all']);
38 $archive = $request['dir'] .
39 ($request['archive'] ?
$request['archive'] : $request['archive_perso']);
40 // au rappel, on commence (voire on continue)
41 @ini_set
("zlib.output_compression","0"); // pour permettre l'affichage au fur et a mesure
43 include_spip('inc/import');
44 @ignore_user_abort
(1);
46 $commencer_page = charger_fonction('commencer_page', 'inc');
47 echo $commencer_page($titre, "accueil", "accueil");
49 echo debut_gauche('', true);
51 echo debut_droite('', true);
53 $res = import_all_milieu($request, $archive);
55 // Cas particulier de la fusion/insertion :
56 // a la fin de la premiere passe on relance pour l'etape suivante
57 if (!$res AND $request['insertion'] == 'on') {
58 $request['insertion'] = 'passe2';
59 if ($request['url_site']
60 AND substr($request['url_site'],-1) != '/')
61 $request['url_site'] .= '/';
62 ecrire_meta("import_all", serialize($request),'non');
64 $res = import_all_milieu($request, $archive);
67 echo $res, "</body></html>\n";
69 if ($charset = $GLOBALS['meta']['charset_restauration']) {
70 ecrire_meta('charset', $charset);
73 detruit_restaurateur();
74 import_all_fin($request);
75 include_spip('inc/rubriques');
77 if (!$res) ecrire_acces(); // Mise a jour du fichier htpasswd
78 affiche_progression_javascript('100 %', 0, '', $request['retour']);
81 // http://doc.spip.org/@import_all_milieu
82 function import_all_milieu($request, $archive)
85 if ($request['insertion'] == 'passe2') {
86 include_spip('inc/import_insere');
87 $trans = translate_init($request);
92 return import_tables($request, $archive);
95 // http://doc.spip.org/@import_all_debut
96 function import_all_debut() {
97 ecrire_meta("restauration_status", "0",'non');
98 ecrire_meta("restauration_status_copie", "0",'non');
101 // http://doc.spip.org/@import_all_fin
102 function import_all_fin($request) {
104 effacer_meta("charset_restauration");
105 effacer_meta("charset_insertion");
106 effacer_meta("restauration_status");
107 effacer_meta("date_optimisation");
108 effacer_meta('restauration_version_archive');
109 effacer_meta('restauration_tag_archive');
110 effacer_meta('restauration_charset_sql_connexion');
111 effacer_meta('restauration_attributs_archive');
112 effacer_meta('restauration_table_prefix');
113 effacer_meta('restauration_table_prefix_source');
114 effacer_meta('vieille_version_installee');
115 effacer_meta('restauration_status_tables');
116 effacer_meta('restauration_recopie_tables');
117 if ($request['insertion'] == 'passe2') {
118 spip_log("destruction des translations " . _SPIP_TRANSLATE
);
119 sql_drop_table(_SPIP_TRANSLATE
);