X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fplugins-dist%2Fdump%2Fformulaires%2Fsauvegarder.php;fp=www%2Fplugins-dist%2Fdump%2Fformulaires%2Fsauvegarder.php;h=cbbf2e125f132b2f9c00e8aa028d1ecf6a6d7e5b;hb=a33c2ba9d919664b3bb0f565f8e9a8b9d8530cdb;hp=0000000000000000000000000000000000000000;hpb=8945248b3d948385798d9aa355c70e7089aca2b3;p=lhc%2Fweb%2Fclavette_www.git diff --git a/www/plugins-dist/dump/formulaires/sauvegarder.php b/www/plugins-dist/dump/formulaires/sauvegarder.php new file mode 100644 index 0000000..cbbf2e1 --- /dev/null +++ b/www/plugins-dist/dump/formulaires/sauvegarder.php @@ -0,0 +1,91 @@ +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' => "
  1. \n" . join("
  2. \n
  3. ", + 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); +} + +?> \ No newline at end of file