-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaction.php
executable file
·184 lines (157 loc) · 9.43 KB
/
action.php
1
2
3
4
5
6
7
8
9
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
49
50
51
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
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
<head>
<html>
<meta charset="UTF-8" />
<meta name="author" content="Kévin Le Torc'h" />
<title>Création de profil - NAZCA</title>
<link rel="stylesheet" type="text/css" media="screen" href="css/index.css" />
<link rel="stylesheet" href="css/generic-theme.css">
</head>
<body id="#page-list">
<!-- Inclusion Header -->
<?php
include("res/header.html");
?>
<div class="main-content">
<?php
require_once('php/bdd.php');
require_once('php/graph.php');
/* Initialisation de l'interface à la BDD */
$db = new BDDIO;
/* Récupération de l'action à effectuer */
$action = filter_input(INPUT_GET, 'action', FILTER_SANITIZE_STRING);
/* Si une action à été donnée */
if (isset($action)) {
/* Action de suppression de paramètre */
if ($action === 'del_param') {
/* On récupère l'identifiant du paramètre à supprimmer */
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);
if (!isset($id)) { // Si pas d'identifiant donné
echo '<h2> ERREUR: vous n\'avez pas précisé quel paramètre à supprimer</h2>';
} else if ($db->deleteParam($id)) { //Sinon si on réussi à supprimmer
/* Redirection vers l'accueil */
header("Location: index.php");
exit;
} else { // Si la suppression échoue
echo '<h2> ERREUR: Impossible de supprimer le paramètre</h2>';
}
} else if ($action === 'add_param' || $action === 'update_param') {
/* Action d'ajout de paramètre et modification de paramètre */
/* comme une partie du code est commune, nous avons choisis de les regrouper */
/* Si on veut modifier le paramètre, on récupère l'identifiant du paramètre à modifier */
if ($action === 'update_param') {
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);
}
/* Récupération des valeurs à ajouter/modifier */
$libelle = filter_input(INPUT_GET, 'libelle', FILTER_SANITIZE_STRING);
$corde = filter_input(INPUT_GET, 'corde', FILTER_SANITIZE_NUMBER_FLOAT);
$tmax_p = filter_input(INPUT_GET, 'tmax_p', FILTER_SANITIZE_NUMBER_FLOAT);
$fmax_p = filter_input(INPUT_GET, 'fmax_p', FILTER_SANITIZE_NUMBER_FLOAT);
$nb_points = filter_input(INPUT_GET, 'nb_points', FILTER_SANITIZE_NUMBER_INT);
$date = filter_input(INPUT_GET, 'date', FILTER_SANITIZE_STRING);
/* Si une des valeurs requises n'est pas valide */
if (!(isset($libelle) && isset($corde) && isset($tmax_p) && isset($fmax_p) && isset($nb_points))) {
echo '<h2> ERREUR: Une ou des valeurs requises pour la création d\'un paramètre est/sont invalide(s) </h2>';
} else { // Sinon on ajoute/modifie le paramètre à la BDD
/* Si la date n'est pas précisée on met celle d'aujourd'hui */
if (!isset($date)) {
$date = date_create()->format('Y-m-d');
}
/* Nom des fichiers image et csv */
$filename = str_replace(' ', '_', $libelle) . '-' . $date;
$fic_img = '/res/img/' . $filename . '.jpg';
$fic_img_bis = '/res/img/' . $filename . '_bis.jpg';
$fic_csv = '/res/csv/' . $filename . '.csv';
/* Déclaration de l'objet parametre */
$param = new Parametre;
/* Initialisation de l'objet paramètre */
/* On met id à 0 car on ne peut le déterminer et on ne l'utilise pas tout de suite */
$param->init(0, $libelle, $corde, $tmax_p, $fmax_p, ($tmax_p / 100) * $corde, ($fmax_p / 100) * $corde, $nb_points, $date, $fic_img, $fic_img_bis, $fic_csv);
/* Si on veut ajouter un paramètre */
if ($action === 'add_param') {
if ($db->AddParamObject($param)) {// Si ajout réussi
echo '<h2> Vous avez rajouté ' . $param->getLibelle() . ' à la Base de donnée !</h2>';
/* On récupère le paramètre ajouté */
$dirtytmp = $db->RequestAllParams();
$parametre = $dirtytmp[sizeof($dirtytmp) - 1];
/* Générations cambrures */
$cambrures = $parametre->genererCambrures();
/* Ajout des cambrures */
foreach ($cambrures as $cambrure) {
if ($db->AddCambrureObject($cambrure)) {
// Ajout réussi
} else {
echo '<h2> ERREUR: Impossible d\'ajouter la cambrure n°' . $cambrure->getId() . ' de' . $parametre->getLibelle() . ' !</h2>';
}
}
/* Création des fichiers CSV et image */
createGraph($parametre->getId(), __DIR__ . $parametre->getFic_img());
createRigidSolidGraph($parametre->getId(), 25, 12, 0, __DIR__ . $parametre->getFic_img_bis());
CSVIO::writeCambrureArrayToCSVFile(__DIR__ . $parametre->getFic_csv(), $cambrures);
/* Correction des droits d'accès */
chmod(__DIR__ . $parametre->getFic_img(), '0777');
chmod(__DIR__ . $parametre->getFic_img_bis(), '0777');
chmod(__DIR__ . $parametre->getFic_csv(), '0777');
/* Redirection vers la page de consultation du paramètre créé */
header('Location: consultation.php?id=' . $parametre->getId());
} else {//Si ajout raté
echo '<h2> ERREUR: Impossible d\'ajouter ' . $param->getLibelle() . ' à la Base de donnée !</h2>';
}
} else { // Si onveut modifier un paramètre
if (!isset($id)) {
echo '<h2> ERREUR: Pas d\'identifiant</h2>';
exit;
}
if ($db->UpdateParamObject($id, $param)) { //Si modification réussie
/* Récupération du paramètre */
$parametre = $db->RequestParam($id)[0];
/* Suppression des cambrures du profil */
if (!$db->RemoveCambruresFromParam($parametre->getId())) {
//Erreur
}
/* Générations cambrures */
$cambrures = $parametre->genererCambrures();
/* Ajout des cambrures */
foreach ($cambrures as $cambrure) {
if ($db->AddCambrureObject($cambrure)) {
// Ajout réussi
} else {
echo '<h2> ERREUR: Impossible d\'ajouter la cambrure n°' . $cambrure->getId() . ' de' . $parametre->getLibelle() . ' !</h2>';
}
}
/* Suppression des fichiers précédents */
$db->removeParamFiles($id);
/* Création des fichiers CSV et image */
createGraph($parametre->getId(), __DIR__ . $parametre->getFic_img());
createRigidSolidGraph($parametre->getId(), 25, 12, 0, __DIR__ . $parametre->getFic_img_bis());
CSVIO::writeCambrureArrayToCSVFile(__DIR__ . $parametre->getFic_csv(), $cambrures);
/* Correction des droits d'accès */
chmod(__DIR__ . $parametre->getFic_img(), '0777');
chmod(__DIR__ . $parametre->getFic_img_bis(), '0777');
chmod(__DIR__ . $parametre->getFic_csv(), '0777');
/* Redirection vers la page de consultation du paramètre créé */
header('Location: consultation.php?id=' . $parametre->getId());
} else {//Sinon
echo '<h2> ERREUR: Impossible de modifier ' . $param->getLibelle() . ' dans la Base de donnée !</h2>';
}
}
}
} else if ($action === 'del_cambrure') {
echo "<br>ERR_ACTION_NOTIMPL";
} else if ($action === 'add_cambrure') {
echo "<br>ERR_ACTION_NOTIMPL";
} else { //Si action inconnue
echo '<h2> ERREUR: Cette action n\'existe pas </h2>';
}
} else { //Si pas d'action précisée
echo "<br>ERR_ACTION_UNSET";
}
/* Bouton de retour ç l'accueil */
echo '<a class="button" href="index.php">Retour à l\'accueil</a>';
?>
</div>
<!-- Inclusion Footer -->
<?php
include("res/footer.html");
?>
</body>
</html>