joli_repertoire($dir_dump),
'_dir_img'=>joli_repertoire(_DIR_IMG),
'_spipnet' => $GLOBALS['home_server'] . '/' . $GLOBALS['spip_lang'] . '_article1489.html',
'nom_sauvegarde' => basename(dump_nom_fichier($dir_dump,'sqlite'),'.sqlite'),
'tout_sauvegarder' => (_request('nom_sauvegarde') AND !_request('tout_sauvegarder'))?'':'oui',
'_tables' => "
- \n" . join("
\n- ",
base_saisie_tables('tables', $tables, $exclude, _request('nom_sauvegarde')?(_request('tables')?_request('tables'):array()):null)
) . "
\n",
);
return $valeurs;
}
/**
* Verifier
* @return array
*/
function formulaires_sauvegarder_verifier_dist() {
$erreurs = array();
if (!$nom = _request('nom_sauvegarde'))
$erreurs['nom_sauvegarde'] = _T('info_obligatoire');
elseif (!preg_match(',^[\w_][\w_.]*$,', $nom)
OR basename($nom)!==$nom)
$erreurs['nom_sauvegarde'] = _T('dump:erreur_nom_fichier');
return $erreurs;
}
/**
* Traiter
* @return array
*/
function formulaires_sauvegarder_traiter_dist() {
$status_file = base_dump_meta_name(0);
$dir_dump = dump_repertoire();
$archive = $dir_dump . basename(_request('nom_sauvegarde'),".sqlite");
if (_request('tout_sauvegarder')) {
// ici on prend toutes les tables sauf celles exclues par defaut
// (tables de cache en pratique)
$exclude = lister_tables_noexport();
list($tables,) = base_liste_table_for_dump($exclude);
$tables = base_lister_toutes_tables('',$tables,$exclude);
}
else
$tables = _request('tables');
include_spip('inc/dump');
$res = dump_init($status_file, $archive, $tables);
if ($res===true) {
// on lance l'action sauvegarder qui va realiser la sauvegarde
// et finira par une redirection vers la page sauvegarde_fin
include_spip('inc/actions');
$redirect = generer_action_auteur('sauvegarder', $status_file);
return array('message_ok'=>'ok','redirect'=>$redirect);
}
else
return array('message_erreur'=>$res);
}
?>