Skip to content
Extraits de code Groupes Projets
Valider 1ffc4519 rédigé par esj's avatar esj
Parcourir les fichiers

Suite de [8620]: laisser libre le nom de la sauvegarde.

parent f6b2e663
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -48,9 +48,6 @@ function exec_admin_tech_dist() ...@@ -48,9 +48,6 @@ function exec_admin_tech_dist()
$dir_dump = determine_upload(); $dir_dump = determine_upload();
} }
include_spip('inc/export');
$file = joli_repertoire($dir_dump . export_nom_fichier_dump($dir_dump,false));
$zfile = joli_repertoire($dir_dump . export_nom_fichier_dump($dir_dump,true));
$dir_dump = joli_repertoire($dir_dump); $dir_dump = joli_repertoire($dir_dump);
debut_droite(); debut_droite();
...@@ -80,24 +77,28 @@ function exec_admin_tech_dist() ...@@ -80,24 +77,28 @@ function exec_admin_tech_dist()
_T('texte_admin_tech_02'), _T('texte_admin_tech_02'),
"</p>"; "</p>";
if ($flag_gz) { $file = nom_fichier_dump();
$nom = "\n<input name='nom_sauvegarde' size='40' value='$file' />";
$znom = "\n<input name='znom_sauvegarde' size='40' value='$file' />";
if ($flag_gz) {
echo "\n<p style='text-align: justify;'>", _T('texte_admin_tech_03'), "</p>\n<p>"; echo "\n<p style='text-align: justify;'>", _T('texte_admin_tech_03'), "</p>\n<p>";
echo "\n<input type='radio' name='gz' value='1' id='gz_on' checked='checked' /><label for='gz_on'> ", echo "\n<input type='radio' name='gz' value='1' id='gz_on' checked='checked' /><label for='gz_on'> ",
_T('bouton_radio_sauvegarde_compressee', _T('bouton_radio_sauvegarde_compressee',
array('fichier'=>'<b>' . str_replace('/', ' / ',$zfile) . '</b>')), " </label><br />\n"; array('fichier'=>'<br /><b>' . $dir_dump . "</b>$znom<b>.xml.gz</b>")), " </label><br />\n";
echo "\n<input type='radio' name='gz' value='0' id='gz_off' /><label for='gz_off'> ", echo "\n<input type='radio' name='gz' value='0' id='gz_off' /><label for='gz_off'> ",
_T('bouton_radio_sauvegarde_non_compressee', _T('bouton_radio_sauvegarde_non_compressee',
array('fichier'=>'<b>' . str_replace('/', ' / ',$file) . '</b>')), array('fichier'=>'<br /><b>' . $dir_dump . "</b>$nom<b>.xml</b>")),
"</label><br /></p>\n"; "</label><br /></p>\n";
} }
else { else {
echo "\n<p style='text-align: justify;'>", echo "\n<p style='text-align: justify;'>",
_T('texte_sauvegarde_compressee', _T('texte_sauvegarde_compressee',
array('fichier'=>'<b>' . str_replace('/', ' / ',$file) . '</b>')); array('fichier'=>'<br /><b>' . $dir_dump . "</b>$nom<b>.xml</b>"));
echo "\n<input type='hidden' name='gz' value='0' /></p>"; echo "\n<input type='hidden' name='gz' value='0' /></p>";
} }
echo "\n<div style='text-align: right'><input class='fondo' type='submit' value='", _T('texte_sauvegarde_base'), "' /></div></div></form>"; echo "\n<div style='text-align: right'><input class='fondo' type='submit' value='", _T('texte_sauvegarde_base'), "' /></div></div></form>";
echo "</td></tr>"; echo "</td></tr>";
...@@ -109,9 +110,8 @@ echo "</table>"; ...@@ -109,9 +110,8 @@ echo "</table>";
// //
if ($connect_toutes_rubriques) { if ($connect_toutes_rubriques) {
$pattern = str_replace("@nom_site@","([^.0-9]*)",_SPIP_DUMP);
$pattern = str_replace("@stamp@","(_[0-9]{6,8}_[0-9]{1,3})?",$pattern)."(.gz)?$"; $liste_dump = preg_files(_DIR_DUMP,'\.xml(\.gz)?$',50,false);
$liste_dump = preg_files(_DIR_DUMP,$pattern,50,false);
$selected = end($liste_dump); $selected = end($liste_dump);
$liste_choix = "<ul>"; $liste_choix = "<ul>";
foreach($liste_dump as $key=>$fichier){ foreach($liste_dump as $key=>$fichier){
...@@ -195,4 +195,27 @@ echo "<br />"; ...@@ -195,4 +195,27 @@ echo "<br />";
echo fin_gauche(), fin_page(); echo fin_gauche(), fin_page();
} }
function nom_fichier_dump()
{
global $connect_toutes_rubriques;
if ($connect_toutes_rubriques AND file_exists(_DIR_DUMP))
$dir = _DIR_DUMP;
else $dir = determine_upload();
$site = isset($GLOBALS['meta']['nom_site'])
? preg_replace(",\W,is","_", substr(trim($GLOBALS['meta']['nom_site']),0,20))
: 'spip';
$site .= '_' . date('Ymd');
$nom = $site;
$cpt=0;
while (file_exists($dir. $nom . ".xml") OR
file_exists($dir. $nom . ".xml.gz")) {
$nom = $site . sprintf('_%03d', ++$cpt);
}
return $nom;
}
?> ?>
...@@ -43,7 +43,9 @@ function exec_export_all_dist() ...@@ -43,7 +43,9 @@ function exec_export_all_dist()
if (!isset($GLOBALS['meta']["status_dump"])) { if (!isset($GLOBALS['meta']["status_dump"])) {
$gz = _request('gz'); $gz = _request('gz');
$archive = export_nom_fichier_dump($dir,$gz); $archive = $gz
? (_request('znom_sauvegarde') . '.xml.gz')
: (_request('nom_sauvegarde') . '.xml');
// creer l'en tete du fichier a partir de l'espace public // creer l'en tete du fichier a partir de l'espace public
include_spip('inc/headers'); include_spip('inc/headers');
...@@ -72,7 +74,7 @@ function exec_export_all_dist() ...@@ -72,7 +74,7 @@ function exec_export_all_dist()
$all = count($tables_for_dump); $all = count($tables_for_dump);
// concatenation des fichiers crees a l'appel precedent // concatenation des fichiers crees a l'appel precedent
ramasse_parties($file, $file); ramasse_parties($dir, $archive);
if ($etape_actuelle > $all){ if ($etape_actuelle > $all){
// l'appel precedent avait fini le boulot. mettre l'en-pied. // l'appel precedent avait fini le boulot. mettre l'en-pied.
......
...@@ -49,20 +49,6 @@ if (!isset($EXPORT_tables_noexport)){ ...@@ -49,20 +49,6 @@ if (!isset($EXPORT_tables_noexport)){
} }
} }
// http://doc.spip.org/@export_nom_fichier_dump
function export_nom_fichier_dump($dir,$gz=true){
$nom_site = isset($GLOBALS['meta']['nom_site'])?$GLOBALS['meta']['nom_site']:'';
$nom_site = preg_replace(",[^a-z],is","_",trim($nom_site));
$archive = str_replace('@nom_site@',"_{$nom_site}_",_SPIP_DUMP);
if ($gz) $archive .= '.gz';
$cpt=0;
$stamp = date('Ymd');
while ((file_exists($dir.($nom = str_replace('@stamp@',"_{$stamp}_".substr("00$cpt",-3),$archive))))&&($cpt<999))
$cpt++;
return $nom;
}
// construction de la liste des tables pour le dump : // construction de la liste des tables pour le dump :
// toutes les tables principales // toutes les tables principales
// + toutes les tables auxiliaires hors relations // + toutes les tables auxiliaires hors relations
...@@ -131,19 +117,20 @@ function export_all_list_tables() ...@@ -131,19 +117,20 @@ function export_all_list_tables()
// prevenir autant que possible un Time-out. // prevenir autant que possible un Time-out.
// http://doc.spip.org/@ramasse_parties // http://doc.spip.org/@ramasse_parties
function ramasse_parties($archive, $partfile, $files = array()){ function ramasse_parties($dir, $archive)
{
$files = preg_files($dir . $archive . ".part_[0-9]+_[0-9]+[.gz]?");
$files_o = array();
if (!count($files))
$files = preg_files(dirname($archive)."/",basename($partfile).".part_[0-9]+_[0-9]+[.gz]?");
$ok = true; $ok = true;
$files_o = array();
$but = $dir . $archive;
foreach($files as $f) { foreach($files as $f) {
$contenu = ""; $contenu = "";
if (lire_fichier ($f, $contenu)) { if (lire_fichier ($f, $contenu)) {
if (!ecrire_fichier($archive,$contenu,false,false)) if (!ecrire_fichier($but,$contenu,false,false))
{ $ok = false; break;} { $ok = false; break;}
} }
unlink($f); @unlink($f);
$files_o[]=$f; $files_o[]=$f;
} }
return $ok ? $files_o : false; return $ok ? $files_o : false;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter