3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2011 *
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 // revenir a l'accueil pour finir
79 affiche_progression_javascript('100 %', 0);
82 // http://doc.spip.org/@import_all_milieu
83 function import_all_milieu($request, $archive)
86 if ($request['insertion'] == 'passe2') {
87 include_spip('inc/import_insere');
88 $trans = translate_init($request);
93 return import_tables($request, $archive);
96 // http://doc.spip.org/@import_all_debut
97 function import_all_debut() {
98 ecrire_meta("restauration_status", "0",'non');
99 ecrire_meta("restauration_status_copie", "0",'non');
102 // http://doc.spip.org/@import_all_fin
103 function import_all_fin($request) {
105 effacer_meta("charset_restauration");
106 effacer_meta("charset_insertion");
107 effacer_meta("restauration_status");
108 effacer_meta("date_optimisation");
109 effacer_meta('restauration_version_archive');
110 effacer_meta('restauration_tag_archive');
111 effacer_meta('restauration_charset_sql_connexion');
112 effacer_meta('restauration_attributs_archive');
113 effacer_meta('restauration_table_prefix');
114 effacer_meta('restauration_table_prefix_source');
115 effacer_meta('vieille_version_installee');
116 effacer_meta('restauration_status_tables');
117 effacer_meta('restauration_recopie_tables');
118 if ($request['insertion'] == 'passe2')
119 sql_drop_table("spip_translate");