/** * Finir une restauration interrompue par logout */ function exec_base_restaurer_dist() { include_spip('base/dump'); $status_file = base_dump_meta_name(0) . "_restauration"; $restaurer = charger_fonction("restaurer", "action"); $restaurer($status_file); }
/** * 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); } }
function exec_export_all_init($rub, $gz, $tables, $serveur='', $save=''){ $meta = base_dump_meta_name($rub); utiliser_langue_visiteur(); if (!isset($GLOBALS['meta'][$meta])){ // c'est un demarrage en arrivee directe depuis exec=admin_tech // on initialise (mais si c'est le validateur, ne rien faire) if ($GLOBALS['exec'] == 'valider_xml') return; $archive = exec_export_all_args($rub, $gz); $tables = export_all_start($meta, $archive, $rub, $tables); $v = array($gz, $archive, $rub, $tables, 1, 0, $serveur, $save); ecrire_meta($meta, serialize($v), 'non'); // rub=$rub sert AUSSI a distinguer cette redirection // d'avec l'appel initial sinon FireFox croit malin // d'optimiser la redirection $url = generer_url_ecrire('export_all',"rub=$rub", true); } else { // appels suivants $export = charger_fonction('export', 'inc'); $arg = $export($meta); // Si retour de $export c'est fini; dernier appel pour ramasser // et produire l'en tete du fichier a partir de l'espace public $url = generer_action_auteur("export_all",$arg,'',true, true, true); } include_spip('inc/headers'); redirige_par_entete($url); }
function action_export_all_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); @list(, , $archive, $rub) = explode(',', $arg); $meta = base_dump_meta_name($rub); $file = ramasse_parties($rub, $archive, $meta); $size = !$file ? 0 : @(!file_exists($file) ? 0 : filesize($file)); $metatable = $meta . '_tables'; $tables = isset($GLOBALS['meta'][$metatable])?unserialize($GLOBALS['meta'][$metatable]):array(); effacer_meta($metatable); effacer_meta($meta); utiliser_langue_visiteur(); if (!$size) $corps = _T('avis_erreur_sauvegarde', array('type'=>'.', 'id_objet'=>'. .')); else { $corps = export_all_report_size($file, $rub, $size, generer_url_ecrire()) . export_all_report_tables($tables); } include_spip('inc/minipres'); echo minipres(_T('info_sauvegarde'), $corps); }
function formulaires_assistant_migration_traiter_dist(){ $s = lire_migration_vers_status(); include_spip('base/dump'); $status_file = base_dump_meta_name(substr(md5($s['target']),0,8)); // 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); include_spip('inc/migrer_vers'); $res = migrer_vers_init($status_file, $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('migrer_vers', $status_file); return array('message_ok'=>_T('migration:message_connexion_ok'),'redirect'=>$redirect); } else return array('message_erreur'=>$res); }
/** * Traiter * @return array */ function formulaires_restaurer_traiter_dist() { $archive = _request('fichier') ? _request('fichier') : _request('nom'); $dir_dump = dump_repertoire(); $archive = $dir_dump . basename($archive, ".sqlite"); $status_file = base_dump_meta_name(0) . "_restauration"; if (_request('tout_restaurer')) { $args = dump_connect_args($archive); dump_serveur($args); $tables = base_lister_toutes_tables('dump'); } else { $tables = _request('tables'); } include_spip('inc/dump'); $res = dump_init($status_file, $archive, $tables, array('spip_meta' => "impt='oui'")); if ($res === true) { // on lance l'action restaurer qui va realiser la sauvegarde // et finira par une redirection vers la page sauvegarde_fin include_spip('inc/actions'); $redirect = generer_action_auteur('restaurer', $status_file); return array('message_ok' => 'ok', 'redirect' => $redirect); } else { return array('message_erreur' => $res); } }