1d62b02607c7cc6e5bdfd200dc178bc41632d95a
[velocampus/web/www.git] / www / ecrire / base / import_all.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2011 *
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('base/dump');
16
17 /**
18 * On arrive ici depuis inc/admin
19 * - au lancement
20 * - puis apres chaque timeout avec dans ce cas $reprise=true
21 *
22 * import_all_debut() est appele la premiere fois et initialise le dump
23 * import_all_milieu() est appele a chaque retour ici
24 * quand on en sort,
25 * - soit on relance pour la seconde etape de fusion
26 * - soit on finit
27 *
28 * @param string $titre
29 * @param bool $reprise
30 */
31 function base_import_all_dist($titre='', $reprise=false)
32 {
33 if (!$titre) return; // anti-testeur automatique
34 if (!$reprise) import_all_debut();
35
36 $request = unserialize($GLOBALS['meta']['import_all']);
37
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
42
43 include_spip('inc/import');
44 @ignore_user_abort(1);
45
46 $commencer_page = charger_fonction('commencer_page', 'inc');
47 echo $commencer_page($titre, "accueil", "accueil");
48
49 echo debut_gauche('', true);
50
51 echo debut_droite('', true);
52
53 $res = import_all_milieu($request, $archive);
54
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');
63 import_all_debut();
64 $res = import_all_milieu($request, $archive);
65 }
66
67 echo $res, "</body></html>\n";
68
69 if ($charset = $GLOBALS['meta']['charset_restauration']) {
70 ecrire_meta('charset', $charset);
71 }
72
73 detruit_restaurateur();
74 import_all_fin($request);
75 include_spip('inc/rubriques');
76 calculer_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);
80 }
81
82 // http://doc.spip.org/@import_all_milieu
83 function import_all_milieu($request, $archive)
84 {
85 global $trans;
86 if ($request['insertion'] == 'passe2') {
87 include_spip('inc/import_insere');
88 $trans = translate_init($request);
89 }
90 else
91 $trans = array();
92
93 return import_tables($request, $archive);
94 }
95
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');
100 }
101
102 // http://doc.spip.org/@import_all_fin
103 function import_all_fin($request) {
104
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");
120
121 }
122 ?>