'.HtmlInput::button_anchor("Retour","?action=restore&PHPSESSID=".$_REQUEST['PHPSESSID']);
if ( ! isset($_REQUEST['t'])) {
echo '
';
echo ("Vous devez préciser s'il s'agit d'un modèle ou d'un dossier");
echo $retour;
echo '
';
exit();
}
if ( empty ($_FILES['file']['name']) ||
strlen(trim($_FILES['file']['name']))==0
) {
echo '';
echo ("Vous devez donner un fichier ");
echo $retour;
echo '
';
exit();
}
//---------------------------------------------------------------------------
// Restore a folder (dossier)
if ( $_REQUEST['t']=='d') {
ini_set('upload_max_filesize','25M');
ini_set('post_max_size','25M');
echo '';
$cn=new Database();
$id=$cn->get_next_seq('dossier_id');
if ( strlen(trim($_REQUEST['database'])) == 0 )
$lname=$id." Restauration :".FormatString($_FILES['file']['name']);
else
$lname=$id." ".$_REQUEST['database'];
$sql="insert into ac_dossier (dos_id,dos_name) values (".$id.",'".$lname."') ";
$cn->start();
try{
$cn->get_value($sql);
} catch ( Exception $e) {
echo ''."Echec de la restauration ".'';
$cn->rollback();
exit();
}
$cn->commit();
$name=domaine."dossier".$id;
echo $name;
$cn->exec_sql("create database ".$name." encoding='utf8'");
$args=" --no-owner -d $name ".$_FILES['file']['tmp_name'];
$status=passthru(PG_RESTORE.$args);
echo '
Restauration réussie du dossier '.$lname.'
';
$new_cn=new Database($id);
$new_cn->apply_patch($name,0);
echo ''.'Ne pas recharger la page, sinon votre base de données sera restaurée une fois de plus'.'';
echo $retour;
echo '';
}
//---------------------------------------------------------------------------
// Restore a modele
if ( $_REQUEST['t']=='m') {
ini_set('upload_max_filesize','25M');
ini_set('post_max_size','25M');
echo '';
$cn=new Database();
$id=$cn->get_next_seq('s_modid');
if ( strlen(trim($_REQUEST['database'])) == 0 )
$lname=$id." Restauration :".FormatString($_FILES['file']['name']);
else
$lname=$id." ".$_REQUEST['database'];
$sql="insert into modeledef (mod_id,mod_name) values (".$id.",'Restauration".$lname."') ";
$cn->start();
try{
$cn->get_value($sql);
} catch ( Exception $e) {
echo ''."Echec de la restauration ".'';
$cn->rollback();
exit();
}
$cn->commit();
$name=domaine."mod".$id;
$cn->exec_sql("create database ".$name." encoding='utf8'");
$args=" -d $name ".$_FILES['file']['tmp_name'];
$status=exec(PG_RESTORE.$args);
echo '
Restauration réussie du modèle '.$lname.'
';
$new_cn=new Database($id,'mod');
apply_patch($new_cn,$name,0);
echo ''.'Ne pas recharger la page, sinon votre base de données sera restaurée une fois de plus'.'';
echo $retour;
echo '';
}
} else {
echo '';
}