restaurer.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Systeme de publication pour l'internet *
  4. * *
  5. * Copyright (c) 2001-2014 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
  9. * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. if (!defined("_ECRIRE_INC_VERSION")) return;
  12. /**
  13. *
  14. * On arrive ici depuis le #FORMULAIRE_RESTAURER
  15. * - l'initialisation a ete faite avant redirection
  16. * - on enchaine sur inc/restaurer, qui remplit le dump et renvoie ici a chaque timeout
  17. * - a chaque coup on relance inc/restaurer
  18. * - lorsque inc/restaurer a fini, il retourne true
  19. * - on renvoie vers exec=restaurer pour afficher le resume
  20. *
  21. */
  22. include_spip('base/dump');
  23. include_spip('inc/dump');
  24. /**
  25. * Sauvegarder par morceaux
  26. *
  27. * @param string $arg
  28. */
  29. function action_restaurer_dist($arg=null){
  30. if (!$arg) {
  31. $securiser_action = charger_fonction('securiser_action', 'inc');
  32. $arg = $securiser_action();
  33. }
  34. $status_file = $arg;
  35. define('_DUMP_STATUS_FILE',$status_file);
  36. $status_file = _DIR_TMP.basename($status_file).".txt";
  37. if (!lire_fichier($status_file, $status)
  38. OR !$status = unserialize($status)) {
  39. include_spip('inc/headers');
  40. echo redirige_formulaire(generer_url_ecrire("restaurer",'status='._DUMP_STATUS_FILE,'',true, true));
  41. }
  42. else {
  43. utiliser_langue_visiteur();
  44. $archive = "<br />".joli_repertoire($status['archive']);
  45. $action = _T('dump:info_restauration_sauvegarde', array('archive' => $archive));
  46. $admin = charger_fonction('admin', 'inc');
  47. echo $admin('restaurer', $action, "", true);
  48. }
  49. // forcer l'envoi du buffer par tous les moyens !
  50. echo(str_repeat("<br />\r\n",256));
  51. while (@ob_get_level()){
  52. @ob_flush();
  53. @flush();
  54. @ob_end_flush();
  55. }
  56. }
  57. ?>