[SPIP] +version 3.0.7
[ptitvelo/web/www.git] / www / plugins-dist / dump / inc / sauvegarder.php
diff --git a/www/plugins-dist/dump/inc/sauvegarder.php b/www/plugins-dist/dump/inc/sauvegarder.php
new file mode 100644 (file)
index 0000000..eca495c
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2013                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/dump');
+
+function inc_sauvegarder_dist($status_file, $redirect='') {
+       $status_file = _DIR_TMP.basename($status_file).".txt";
+       if (!lire_fichier($status_file, $status)
+               OR !$status = unserialize($status)) {
+       }
+       else {
+               $timeout = ini_get('max_execution_time');
+               // valeur conservatrice si on a pas reussi a lire le max_execution_time
+               if (!$timeout) $timeout=30; // parions sur une valeur tellement courante ...
+               $max_time = time()+$timeout/2;
+               
+               include_spip('inc/minipres');
+               @ini_set("zlib.output_compression","0"); // pour permettre l'affichage au fur et a mesure
+
+               $titre = _T('dump:sauvegarde_en_cours') . " (".count($status['tables']).") ";
+               $balise_img = chercher_filtre('balise_img');
+               $titre .= $balise_img(chemin_image('searching.gif'));
+               echo ( install_debut_html($titre));
+               // script de rechargement auto sur timeout
+               echo http_script("window.setTimeout('location.href=\"".$redirect."\";',".($timeout*1000).")");
+               echo "<div style='text-align: left'>\n";
+
+               dump_serveur($status['connect']);
+               spip_connect('dump');
+
+               // au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde
+               $res = false;
+               if (_request('step')) {
+                       $options = array(
+                               'callback_progression' => 'dump_afficher_progres',
+                               'max_time' => $max_time,
+                               'no_erase_dest' => lister_tables_noerase(),
+                               'where' => $status['where']?$status['where']:array(),
+                       );
+                       $res = base_copier_tables($status_file, $status['tables'], '', 'dump', $options);
+               }
+               
+               echo ( "</div>\n");
+
+               if (!$res AND $redirect)
+                       echo dump_relance($redirect);
+               echo (install_fin_html());
+               ob_end_flush();
+               flush();
+
+               return $res;
+       }
+}
+
+
+?>