Overview
Comment:Sauvegarde et restauration par fichier local OK
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 435b8438fca405322de6e6774cc9d305f2d42611
User & Date: bohwaz on 2013-02-11 17:22:56
Other Links: manifest | tags
Context
2013-02-11
17:38
Utilisation de DATA_ROOT plutôt que ROOT pour stocker toutes les données de l'appli check-in: 1cd81eacbd user: bohwaz tags: trunk
17:22
Sauvegarde et restauration par fichier local OK check-in: 435b8438fc user: bohwaz tags: trunk
17:07
Partie fonctionnelle de la gestion des sauvegardes check-in: 3006216dd1 user: bohwaz tags: trunk
Changes

Modified include/lib.template.php from [1298a5c695] to [8e38845515].

532
533
534
535
536
537
538









539
540
541
542
543
544
545

$tpl->register_modifier('format_sqlite_date_to_french', function ($d) {
    if (strlen($d) == 10)
        return \DateTime::createFromFormat('Y-m-d', $d)->format('d/m/Y');
    else
        return \DateTime::createFromFormat('Y-m-d H:i:s', $d)->format('d/m/Y H:i');
});










//$tpl->register_modifier('retard_cotisation', array('Membres', 'checkCotisation'));

$tpl->register_modifier('strftime_fr', 'Garradin\tpl_strftime_fr');
$tpl->register_modifier('date_fr', 'Garradin\tpl_date_fr');

?>







>
>
>
>
>
>
>
>
>







532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554

$tpl->register_modifier('format_sqlite_date_to_french', function ($d) {
    if (strlen($d) == 10)
        return \DateTime::createFromFormat('Y-m-d', $d)->format('d/m/Y');
    else
        return \DateTime::createFromFormat('Y-m-d H:i:s', $d)->format('d/m/Y H:i');
});

$tpl->register_modifier('format_bytes', function ($size) {
    if ($size > (1024 * 1024))
        return round($size / 1024 / 1024, 2) . ' Mo';
    elseif ($size > 1024)
        return round($size / 1024, 2) . ' Ko';
    else
        return $size . ' ob_get_contents(oid)';
});

//$tpl->register_modifier('retard_cotisation', array('Membres', 'checkCotisation'));

$tpl->register_modifier('strftime_fr', 'Garradin\tpl_strftime_fr');
$tpl->register_modifier('date_fr', 'Garradin\tpl_date_fr');

?>

Modified include/lib.utils.php from [611f01c8e1] to [ab237ec0bb].

567
568
569
570
571
572
573




















574
575
576
                $out .= $get_ini_line($key, $value) . "\n";
            }
        }

        return $out;
    }





















}

?>







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
                $out .= $get_ini_line($key, $value) . "\n";
            }
        }

        return $out;
    }

    static public function getMaxUploadSize()
    {
        return min(array(
            self::return_bytes(ini_get('upload_max_filesize')),
            self::return_bytes(ini_get('post_max_size')),
            self::return_bytes(ini_get('memory_limit'))
        ));
    }


    static public function return_bytes ($size_str)
    {
        switch (substr($size_str, -1))
        {
            case 'G': case 'g': return (int)$size_str * pow(1024, 3);
            case 'M': case 'm': return (int)$size_str * pow(1024, 2);
            case 'K': case 'k': return (int)$size_str * 1024;
            default: return $size_str;
        }
    }
}

?>

Modified templates/admin/config/donnees.tpl from [e5cf7f264c] to [3a3bc53e67].

102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122

123

124
125
126
127
128
129
130
    <p>
        {csrf_field key="backup_download"}
        <input type="submit" name="download" value="Télécharger une copie des données sur mon ordinateur" />
    </p>
</fieldset>

</form>
<form method="post" action="{$self_url|escape}">

<fieldset>
    <legend><label for="f_file">Restaurer depuis un fichier</label></legend>
    <p class="alert">
        Attention, l'intégralité des données courantes seront effacées et remplacées par celles
        contenues dans le fichier fourni.
    </p>
    <p class="help">
        Une sauvegarde des données courantes sera effectuée avant le remplacement,
        en cas de besoin d'annuler cette restauration.
    </p>
    <p>
        {csrf_field key="backup_restore"}

        <input type="file" name="file" id="f_file" />

        <input type="submit" name="restore_file" value="Restaurer depuis le fichier sélectionné" />
    </p>
</fieldset>

</form>

{include file="admin/_foot.tpl"}







|













>

>
|






102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
    <p>
        {csrf_field key="backup_download"}
        <input type="submit" name="download" value="Télécharger une copie des données sur mon ordinateur" />
    </p>
</fieldset>

</form>
<form method="post" action="{$self_url|escape}" enctype="multipart/form-data">

<fieldset>
    <legend><label for="f_file">Restaurer depuis un fichier</label></legend>
    <p class="alert">
        Attention, l'intégralité des données courantes seront effacées et remplacées par celles
        contenues dans le fichier fourni.
    </p>
    <p class="help">
        Une sauvegarde des données courantes sera effectuée avant le remplacement,
        en cas de besoin d'annuler cette restauration.
    </p>
    <p>
        {csrf_field key="backup_restore"}
        <input type="hidden" name="MAX_FILE_SIZE" value="{$max_file_size|escape}" />
        <input type="file" name="file" id="f_file" />
        (maximum {$max_file_size|format_bytes})
        <input type="submit" name="restore_file" value="Restaurer depuis le fichier sélectionné &rarr;" />
    </p>
</fieldset>

</form>

{include file="admin/_foot.tpl"}

Modified www/admin/config/donnees.php from [975fa1c668] to [c5c4df3394].

10
11
12
13
14
15
16

17
18
19
20
21



22
23
24
25
26
27
28
29
30
31

32
33



34
35
36
37
38
39
40
{
    if (!utils::CSRF_check('backup_config'))
    {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    }
    else
    {

        $config->set('frequence_sauvegardes', utils::post('frequence_sauvegardes'));
        $config->set('nombre_sauvegardes', utils::post('nombre_sauvegardes'));
        $config->save();

        utils::redirect('/admin/config/donnees.php?ok=config');



    }
}
elseif (utils::post('create'))
{
    if (!utils::CSRF_check('backup_create'))
    {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    }
    else
    {

        $s->create();
        utils::redirect('/admin/config/donnees.php?ok=create');



    }
}
elseif (utils::post('download'))
{
    if (!utils::CSRF_check('backup_download'))
    {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';







>
|
|
|

|
>
>
>










>
|
|
>
>
>







10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{
    if (!utils::CSRF_check('backup_config'))
    {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    }
    else
    {
        try {
            $config->set('frequence_sauvegardes', utils::post('frequence_sauvegardes'));
            $config->set('nombre_sauvegardes', utils::post('nombre_sauvegardes'));
            $config->save();

            utils::redirect('/admin/config/donnees.php?ok=config');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
elseif (utils::post('create'))
{
    if (!utils::CSRF_check('backup_create'))
    {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    }
    else
    {
        try {
            $s->create();
            utils::redirect('/admin/config/donnees.php?ok=create');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
elseif (utils::post('download'))
{
    if (!utils::CSRF_check('backup_download'))
    {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
52
53
54
55
56
57
58

59
60



61
62
63
64
65
66
67
68
69
70

71
72



















73
74
75
76
77
78

79
80
81
82
{
    if (!utils::CSRF_check('backup_manage'))
    {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    }
    else
    {

        $s->restoreFromLocal(utils::post('file'));
        utils::redirect('/admin/config/donnees.php?ok=restore');



    }
}
elseif (utils::post('remove'))
{
    if (!utils::CSRF_check('backup_manage'))
    {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    }
    else
    {

        $s->remove(utils::post('file'));
        utils::redirect('/admin/config/donnees.php?ok=remove');



















    }
}

$tpl->assign('error', $error);
$tpl->assign('ok', utils::get('ok'));
$tpl->assign('liste', $s->getList());


$tpl->display('admin/config/donnees.tpl');

?>







>
|
|
>
>
>










>
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>






>




60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
{
    if (!utils::CSRF_check('backup_manage'))
    {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    }
    else
    {
        try {
            $s->restoreFromLocal(utils::post('file'));
            utils::redirect('/admin/config/donnees.php?ok=restore');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
elseif (utils::post('remove'))
{
    if (!utils::CSRF_check('backup_manage'))
    {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    }
    else
    {
        try {
            $s->remove(utils::post('file'));
            utils::redirect('/admin/config/donnees.php?ok=remove');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
elseif (utils::post('restore_file'))
{
    if (!utils::CSRF_check('backup_restore'))
    {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    }
    else
    {
        try {
            $s->restoreFromUpload($_FILES['file']);
            utils::redirect('/admin/config/donnees.php?ok=restore');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}

$tpl->assign('error', $error);
$tpl->assign('ok', utils::get('ok'));
$tpl->assign('liste', $s->getList());
$tpl->assign('max_file_size', utils::getMaxUploadSize());

$tpl->display('admin/config/donnees.tpl');

?>