Exemple #1
0
/**
 * Exec de la page de destruction des tables de SPIP
**/
function exec_base_delete_all_dist()
{
    include_spip('inc/autoriser');
    if (!autoriser('detruire')) {
        include_spip('inc/minipres');
        echo minipres();
    } else {
        include_spip('base/dump');
        $res = base_lister_toutes_tables('', array(), array(), true);
        if (!$res) {
            include_spip('inc/minipres');
            spip_log("Erreur base de donnees");
            echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique') . "<p><tt>" . sql_errno() . " " . sql_error() . "</tt></p>");
        } else {
            $res = base_saisie_tables('delete', $res);
            include_spip('inc/headers');
            $res = "\n<ol style='text-align:left'><li>\n" . join("</li>\n<li>", $res) . '</li></ol>';
            $admin = charger_fonction('admin', 'inc');
            $res = $admin('delete_all', _T('titre_page_delete_all'), $res);
            if (!$res) {
                redirige_url_ecrire('install', '');
            } else {
                echo $res;
            }
        }
    }
}
/**
 * Verifier
 *
 * @return array
 */
function formulaires_restaurer_verifier_dist()
{
    $erreurs = array();
    $nom = "";
    if (!($fichier = _request('fichier')) and !($nom = _request('nom_sauvegarde'))) {
        $erreurs['fichier'] = _T('info_obligatoire');
    } elseif ($fichier) {
        $fichier = basename($fichier);
        // securite
        if (!file_exists(dump_repertoire() . $fichier)) {
            $erreurs['fichier'] = _T('dump:erreur_nom_fichier');
        } else {
            $nom = $fichier;
        }
    } else {
        $nom = basename($nom);
        // securite
        if (!file_exists(dump_repertoire() . $nom)) {
            $erreurs['nom_sauvegarde'] = _T('dump:erreur_nom_fichier');
            $nom = "";
        }
    }
    if (!$nom) {
        $erreurs['message_erreur'] = _T('dump:erreur_restaurer_verifiez');
    }
    if ($nom) {
        $archive = dump_repertoire() . $nom;
        if (!($args = dump_connect_args($archive))) {
            $erreurs['tout_restaurer'] = _T('dump:erreur_sqlite_indisponible');
        }
        dump_serveur($args);
        $tables = base_lister_toutes_tables('dump');
        $tables = base_saisie_tables('tables', $tables, array(), _request('tables') ? _request('tables') : array(), 'dump');
        $erreurs['tables'] = "<ol class='spip'><li class='choix'>\n" . join("</li>\n<li class='choix'>", $tables) . "</li></ol><input type='hidden' name='check_tables' value='oui' />\n";
        if (!count(_request('tables')) and !_request('tout_restaurer') and _request('check_tables')) {
            $erreurs['tout_restaurer'] = _T('dump:selectionnez_table_a_restaurer');
        }
    }
    if ($nom and (!count($erreurs) or count($erreurs) == 1 and isset($erreurs['tables']))) {
        if (_request('confirm') !== $nom) {
            $erreurs['message_confirm'] = _T('dump:info_selection_sauvegarde', array('fichier' => '<i>' . joli_repertoire(dump_repertoire() . $nom) . "</i>")) . "<br /><input type='checkbox' name='confirm' value='{$nom}' id='confirm' /> ";
            $erreurs['message_confirm'] .= "<label for='confirm'><strong>";
            if (_request('tables')) {
                $erreurs['message_confirm'] .= _T('dump:confirmer_ecraser_tables_selection');
            } else {
                $erreurs['message_confirm'] .= _T('dump:confirmer_ecraser_base');
            }
            $erreurs['message_confirm'] .= "</strong></label>";
        } else {
            unset($erreurs['tables']);
        }
    }
    if (count($erreurs) and !isset($erreurs['message_erreur'])) {
        $erreurs['message_erreur'] = '';
    }
    // pas de message general automatique ici
    return $erreurs;
}
Exemple #3
0
/**
 * Charger #FORMULAIRE_SAUVEGARDER
 * @return array
 */
function formulaires_sauvegarder_charger_dist()
{
    $dir_dump = dump_repertoire();
    // ici on liste tout, les tables exclue sont simplement non cochees
    $exclude = lister_tables_noexport();
    list($tables, ) = base_liste_table_for_dump($exclude);
    $tables = base_lister_toutes_tables('', $tables);
    $valeurs = array('_dir_dump' => 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' => "<ol class='spip'><li class='choix'>\n" . join("</li>\n<li class='choix'>", base_saisie_tables('tables', $tables, $exclude, _request('nom_sauvegarde') ? _request('tables') ? _request('tables') : array() : null)) . "</li></ol>\n", '_prefixe' => function_exists('base_prefixe_tables') ? base_prefixe_tables('') : 'spip');
    return $valeurs;
}