/** * On arrive ici depuis inc/admin * - au lancement * - puis apres chaque timeout avec dans ce cas $reprise=true * * import_all_debut() est appele la premiere fois et initialise le dump * import_all_milieu() est appele a chaque retour ici * quand on en sort, * - soit on relance pour la seconde etape de fusion * - soit on finit * * @param string $titre * @param bool $reprise */ function base_import_all_dist($titre='', $reprise=false) { if (!$titre) return; // anti-testeur automatique if (!$reprise) import_all_debut(); $request = unserialize($GLOBALS['meta']['import_all']); $archive = $request['dir'] . ($request['archive'] ? $request['archive'] : $request['archive_perso']); // au rappel, on commence (voire on continue) @ini_set("zlib.output_compression","0"); // pour permettre l'affichage au fur et a mesure include_spip('inc/import'); @ignore_user_abort(1); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page($titre, "accueil", "accueil"); echo debut_gauche('', true); echo debut_droite('', true); $res = import_all_milieu($request, $archive); // Cas particulier de la fusion/insertion : // a la fin de la premiere passe on relance pour l'etape suivante if (!$res AND $request['insertion'] == 'on') { $request['insertion'] = 'passe2'; if ($request['url_site'] AND substr($request['url_site'],-1) != '/') $request['url_site'] .= '/'; ecrire_meta("import_all", serialize($request),'non'); import_all_debut(); $res = import_all_milieu($request, $archive); } echo $res, "</body></html>\n"; if ($charset = $GLOBALS['meta']['charset_restauration']) { ecrire_meta('charset', $charset); } detruit_restaurateur(); import_all_fin($request); include_spip('inc/rubriques'); calculer_rubriques(); if (!$res) ecrire_acces(); // Mise a jour du fichier htpasswd affiche_progression_javascript('100 %', 0, '', $request['retour']); }
function export_all_abort() { // evacuer la fausse erreur du cas du validateur en boucle. if (_request('exec') == 'valider_xml') return; include_spip('base/import_all'); import_all_fin(array()); include_spip('inc/import'); detruit_restaurateur(); effacer_meta('admin'); // et verifier la session include_spip('inc/auth'); $login = auth_retrouver_login($GLOBALS['visiteur_session']['login']); $id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'login='******'visiteur_session']['id_auteur'] != $id_auteur) auth_deloger(); else redirige_url_ecrire(); }