[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins-dist / dump / inc / sauvegarder.php
index f947531..0aa0921 100644 (file)
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-if (!defined("_ECRIRE_INC_VERSION")) return;
+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";
+/**
+ * Fonction principale de sauvegarde
+ * En mode sqlite on passe par une copie de base a base (dans l'API de SPIP)
+ *
+ * @param string $status_file Nom du fichier de status (stocke dans _DIR_TMP)
+ * @param string $redirect Redirection apres la sauvegarde
+ * @return bool
+ */
+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 {
+               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;
-               
+               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
+               @ini_set('zlib.output_compression', '0'); // pour permettre l'affichage au fur et a mesure
 
-               $titre = _T('dump:sauvegarde_en_cours') . " (".count($status['tables']).") ";
+               $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));
+               echo(install_debut_html($titre));
                // script de rechargement auto sur timeout
-               echo http_script("window.setTimeout('location.href=\"".$redirect."\";',".($timeout*1000).")");
+               echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . ($timeout * 1000) . ')');
                echo "<div style='text-align: left'>\n";
 
                dump_serveur($status['connect']);
@@ -46,22 +58,22 @@ function inc_sauvegarder_dist($status_file, $redirect='') {
                                'callback_progression' => 'dump_afficher_progres',
                                'max_time' => $max_time,
                                'no_erase_dest' => lister_tables_noerase(),
-                               'where' => $status['where']?$status['where']:array(),
+                               'where' => $status['where'] ? $status['where'] : array(),
                        );
                        $res = base_copier_tables($status_file, $status['tables'], '', 'dump', $options);
                }
-               
-               echo ( "</div>\n");
 
-               if (!$res AND $redirect)
+               echo("</div>\n");
+
+               if (!$res and $redirect) {
                        echo dump_relance($redirect);
-               echo (install_fin_html());
-               ob_end_flush();
+               }
+               echo(install_fin_html());
+               if (@ob_get_contents()) {
+                       ob_end_flush();
+               }
                flush();
 
                return $res;
        }
 }
-
-
-?>