root / admin / admin.php @ 765cf74636d34cd9fdb1dc3a2a727a4d031c9d12
Historique | Voir | Annoter | Télécharger (15,31 ko)
1 | <?php
|
---|---|
2 | /*
|
3 | * admin.php - Administration des compétitions |
4 | * Copyright (C) 2008 Romuald DELAVERGNE <delavergne@free.fr> |
5 | * |
6 | * This source code is licensed under the GNU General Public License, |
7 | * Version 2. See the file COPYING for more details. |
8 | */ |
9 | |
10 | require_once 'zip.lib.php'; |
11 | require_once 'unzip.lib.php'; |
12 | |
13 | if (basename(dirname($_SERVER['PHP_SELF'])) == "admin") |
14 | require_once '../functions.php'; |
15 | else
|
16 | require_once 'functions.php'; |
17 | |
18 | function hiddenVars() { ?> |
19 | <input type="hidden" name="typeCompetition" value="<?=$_POST['typeCompetition']?>" /> |
20 | <input type="hidden" name="saison" value="<?=$_POST['saison']?>" /> |
21 | <input type="hidden" name="div1" value="<?=$_POST['div1']?>" /> |
22 | <input type="hidden" name="div2" value="<?=$_POST['div2']?>" /> |
23 | <input type="hidden" name="poule" value="<?=$_POST['poule']?>" /> |
24 | <input type="hidden" name="phase" value="<?=$_POST['phase']?>" /> |
25 | <?php }
|
26 | |
27 | function retour($button, $message = "") { ?>
|
28 | <form method="post" action="index.php"> |
29 | <?php if ($message != "") echo "\t\t\t$message"; ?> |
30 | <?php hiddenVars() ?> |
31 | <input type="submit" value="<?=$button?>" /> |
32 | </form>
|
33 | <?php }
|
34 | |
35 | /* |
36 | echo "<pre>\n";
|
37 | print_r($_POST); |
38 | echo "</pre>\n";
|
39 | */ |
40 | |
41 | // Données reçues par l'index ou cette page |
42 | $championnat = $_POST['championnat']; |
43 | if ($_POST['validation_championnat'] == "ajouter") $championnat = "validation_ajouter"; |
44 | if ($_POST['validation_championnat'] == "modifier") $championnat = "validation_modifier"; |
45 | if ($_POST['validation_penalites'] == "valider") $championnat = "validation_penalites"; |
46 | |
47 | if (isset($_POST['rencontre-ajouter'])) { |
48 | $rencontre = "ajouter"; |
49 | } else { |
50 | $vars = preg_grep("/^rencontre-/", array_keys($_POST)); |
51 | if ($vars) { |
52 | $rencontre = $_POST[current($vars)]; |
53 | $rencontreId = current($vars); |
54 | } |
55 | } |
56 | if ($_POST['validation_rencontre'] == "ajouter") $rencontre = "validation_ajouter"; |
57 | if ($_POST['validation_rencontre'] == "modifier") $rencontre = "validation_modifier"; |
58 | |
59 | $equipes = get_magic_quotes_gpc() ? stripslashes($_POST['equipes']) : $_POST['equipes']; |
60 | $journees = get_magic_quotes_gpc() ? stripslashes($_POST['journees']) : $_POST['journees']; |
61 | $journee = get_magic_quotes_gpc() ? stripslashes($_POST['journee']) : $_POST['journee']; |
62 | $domicile = get_magic_quotes_gpc() ? stripslashes($_POST['domicile']) : $_POST['domicile']; |
63 | $visiteur = get_magic_quotes_gpc() ? stripslashes($_POST['visiteur']) : $_POST['visiteur']; |
64 | $ptsDom = get_magic_quotes_gpc() ? stripslashes($_POST['ptsDom']) : $_POST['ptsDom']; |
65 | $ptsVis = get_magic_quotes_gpc() ? stripslashes($_POST['ptsVis']) : $_POST['ptsVis']; |
66 | $scoreDom = get_magic_quotes_gpc() ? stripslashes($_POST['scoreDom']) : $_POST['scoreDom']; |
67 | $scoreVis = get_magic_quotes_gpc() ? stripslashes($_POST['scoreVis']) : $_POST['scoreVis']; |
68 | $fftDom = get_magic_quotes_gpc() ? stripslashes($_POST['fftDom']) : $_POST['fftDom']; |
69 | $fftVis = get_magic_quotes_gpc() ? stripslashes($_POST['fftVis']) : $_POST['fftVis']; |
70 | |
71 | $message = ""; |
72 | |
73 | if ($_POST['saison'] && $_POST['div1']) { |
74 | $path = (IamAdmin()) ? "../datas" : "datas"; |
75 | $path .= "/".$_POST['saison']."/".$_POST['div1']; |
76 | if ($_POST['div2']) $path .= $SEP_DIV.$_POST['div2']; |
77 | if ($_POST['poule'] || $_POST['phase']) $path .= "/"; |
78 | if ($_POST['poule']) $path .= $_POST['poule']; |
79 | if ($_POST['phase']) $path .= $SEP_DIV.$_POST['phase']; |
80 | } |
81 | |
82 | if ($_POST['exporter'] == "exporter") { |
83 | $zip = new zipfile(); |
84 | backup($zip, "../datas", "datas"); |
85 | $archive = $zip->file();
|
86 | header("Content-Type: application/x-zip"); |
87 | header("Content-Disposition: inline; filename=datas-".date("Y-m-d").".zip"); |
88 | echo $archive; |
89 | exit; |
90 | } elseif ($_POST['validation_importer'] == "importer") { |
91 | if ($_FILES['zipfile']['error'] == 0) { |
92 | $dest = ".."; |
93 | $zip = new SimpleUnzip($_FILES['zipfile']['tmp_name']); |
94 | if ($zip) { |
95 | $needToImport = array(); |
96 | $alreadyExist = array(); |
97 | foreach ($zip->Entries as $extr) {
|
98 | if (!file_exists($dest."/".$extr->Path)) {
|
99 | mkdirRecursive($dest."/".$extr->Path);
|
100 | $needToImport[] = $extr->Path;
|
101 | } else { |
102 | if (!in_array($extr->Path, $needToImport)) {
|
103 | if (!in_array($extr->Path, $alreadyExist)) {
|
104 | $message .= "<p>Le championnat ".$extr->Path." n'a pas été importé car il existe déjà !</p>"; |
105 | $alreadyExist[] = $extr->Path;
|
106 | } |
107 | } |
108 | } |
109 | if (in_array($extr->Path, $needToImport)) {
|
110 | $fh = fopen($dest."/".$extr->Path."/".$extr->Name, 'w'); |
111 | fwrite($fh, $extr->Data);
|
112 | fclose($fh); |
113 | } |
114 | } |
115 | $message .= "Données importées"; |
116 | } else { |
117 | $message = $_POST['zipfile'].": fichier invalide !"; |
118 | } |
119 | } else { |
120 | $message = "Erreur lors du chargement du fichier '".$_FILES['zipfile']['name']."' !"; |
121 | } |
122 | } elseif ($_POST['supprimer-tout'] == "tout supprimer") { |
123 | $message = "pas implémenté."; |
124 | } |
125 | |
126 | if ($path) { |
127 | //echo "<p>path=$path.</p>\n"; |
128 | switch ($championnat) { |
129 | case "pénalités": |
130 | $Pen = getPenalites($path); |
131 | $equipes = getEquipes($path); |
132 | $journees = getJournees($path); |
133 | break; |
134 | case "modifier": |
135 | if (file_exists("$path/equipes")) { |
136 | $equipes = file_get_contents("$path/equipes"); |
137 | } |
138 | if (file_exists("$path/journees")) { |
139 | $journees = file_get_contents("$path/journees"); |
140 | } |
141 | break; |
142 | case "validation_ajouter": |
143 | if (!file_exists($path)) { |
144 | mkdirRecursive($path); |
145 | my_file_put_contents("$path/equipes", $equipes); |
146 | my_file_put_contents("$path/journees", $journees); |
147 | $message = "La compétition a été ajoutée."; |
148 | } else { |
149 | $message = "La compétition existe déjà !"; |
150 | } |
151 | break; |
152 | case "validation_modifier": |
153 | my_file_put_contents("$path/equipes", $equipes); |
154 | my_file_put_contents("$path/journees", $journees); |
155 | $message = "La compétition a été mise à jour."; |
156 | break; |
157 | case "validation_penalites": |
158 | $vars = preg_grep("/^pen_/", array_keys($_POST)); |
159 | if ($vars) { |
160 | $penalites = ""; |
161 | foreach ($vars as $var) { |
162 | if ($_POST[$var] > 0) {
|
163 | list($prefix, $equipe) = explode("_", $var); |
164 | $penalites .= $equipe.":".$_POST[$var]."\n"; |
165 | } |
166 | } |
167 | $file = "$path/penalites"; |
168 | if ($penalites) { |
169 | my_file_put_contents($file, $penalites); |
170 | } else { |
171 | if (file_exists($file)) unlink($file); |
172 | } |
173 | $message = "Les pénalités ont été mises à jour."; |
174 | } |
175 | break; |
176 | case "supprimer": |
177 | // Suppression de tous les fichiers du répertoire |
178 | if ($dir = opendir($path)) { |
179 | while (($file = readdir($dir)) !== FALSE) { |
180 | if (is_file("$path/$file")) unlink("$path/$file"); |
181 | } |
182 | closedir($dir); |
183 | } |
184 | // Suppression du maximum de répertoires |
185 | while (isEmptyDir($path) && basename($path) != "datas") { |
186 | monRmdir($path); |
187 | $path = dirname($path); |
188 | } |
189 | $message = "Le championnat a été supprimé."; |
190 | break; |
191 | } |
192 | switch ($rencontre) { |
193 | case "ajouter": |
194 | $equipes = getEquipes($path); |
195 | $journees = getJournees($path); |
196 | break; |
197 | case "modifier": |
198 | $equipes = getEquipes($path); |
199 | $journees = getJournees($path); |
200 | list($prefix, $journee, $domicile, $visiteur) = explode("-", $rencontreId); |
201 | $file = "$path/match-".$journee."-".$domicile."-".$visiteur; |
202 | if (file_exists($file)) { |
203 | $resu = file_get_contents($file); |
204 | list($ptsDom, $ptsVis, $scoreDom, $scoreVis, $fftDom, $fftVis) = explode(":", $resu); |
205 | } |
206 | break; |
207 | case "validation_ajouter": |
208 | if ($journee == "" || $domicile == "" || $visiteur == "") { |
209 | $message = "Vous devez saisir le numéro de la journée, l'équipe qui reçoit et qui se déplace !"; |
210 | } else { |
211 | $file = "$path/match-".$journee."-".$domicile."-".$visiteur; |
212 | if (!file_exists($file)) { |
213 | my_file_put_contents($file, $ptsDom.":".$ptsVis.":".$scoreDom.":".$scoreVis.":".$fftDom.":".$fftVis); |
214 | $message = "La nouvelle rencontre a été ajoutée."; |
215 | } else { |
216 | $message = "La rencontre existe déjà !"; |
217 | } |
218 | } |
219 | break; |
220 | case "validation_modifier": |
221 | $file = "$path/match-".$journee."-".$domicile."-".$visiteur; |
222 | my_file_put_contents($file, $ptsDom.":".$ptsVis.":".$scoreDom.":".$scoreVis.":".$fftDom.":".$fftVis); |
223 | $message = "La rencontre a été mise à jour."; |
224 | break; |
225 | case "supprimer": |
226 | list($prefix, $journee, $domicile, $visiteur) = explode("-", $rencontreId); |
227 | $file = "match-".$journee."-".$domicile."-".$visiteur; |
228 | if (file_exists("$path/$file")) { |
229 | unlink("$path/$file"); |
230 | $message = "La rencontre a été supprimée."; |
231 | } |
232 | break; |
233 | } |
234 | } |
235 | ?>
|
236 | <html>
|
237 | <head>
|
238 | <title>Administration</title> |
239 | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> |
240 | <meta http-equiv="Content-language" content="fr" /> |
241 | <meta name="copyright" content="Tous droits réservés - All Rights Reserved" /> |
242 | <meta name="author" content="Romuald DELAVERGNE"> |
243 | </head>
|
244 | <html>
|
245 | <body>
|
246 | <?php if ($championnat == "ajouter" || $championnat == "modifier" ) { ?> |
247 | <form name="admin" method="post" action="<?=$_SERVER['PHP_SELF']?>"> |
248 | <table border="0"> |
249 | <tr>
|
250 | <td>Saison</td> |
251 | <td>
|
252 | : |
253 | <?php if ($championnat == "ajouter") { ?> |
254 | <input type="text" name="saison" size="5" value="" /> |
255 | <?php } else { ?> |
256 | <input type="hidden" name="saison" value="<?=$_POST['saison']?>" /> |
257 | <?=$_POST['saison']."/".($_POST['saison']+1)."\n"?> |
258 | <?php } ?> |
259 | </td>
|
260 | </tr>
|
261 | <?php if ($_POST['typeCompetition'] != "") { ?> |
262 | <input type="hidden" name="div1" value="<?=$_POST['typeCompetition']?>" /> |
263 | <tr>
|
264 | <td><?=$_POST['typeCompetition'] == "C" ? "Coupe" : "Tournoi"?></td> |
265 | <td>
|
266 | : |
267 | <?php if ($championnat == "ajouter") { ?> |
268 | <input type="text" name="div2" value="" /> |
269 | <?php } else { ?> |
270 | <input type="hidden" name="div2" value="<?=$_POST['div2']?>" /> |
271 | <?=$_POST['div2']."\n"?> |
272 | <?php } ?> |
273 | </td>
|
274 | </tr>
|
275 | <?php } else { ?> |
276 | <tr>
|
277 | <td>Division</td> |
278 | <td>
|
279 | : |
280 | <?php if ($championnat == "ajouter") { ?> |
281 | <select name="div1"> |
282 | <option value=""></option> |
283 | <?php
|
284 | foreach ($DIVISION as $n => $d) { |
285 | echo "\t\t\t\t\t\t<option value=\"$n\">$d</option>\n"; |
286 | } |
287 | ?>
|
288 | </select>
|
289 | <input type="text" name="div2" size="3" value="" /> |
290 | <?php } else { ?> |
291 | <input type="hidden" name="div1" value="<?=$_POST['div1']?>" /> |
292 | <input type="hidden" name="div2" value="<?=$_POST['div2']?>" /> |
293 | <?=$_POST['div1'].$_POST['div2']."\n"?> |
294 | <?php } ?> |
295 | </td>
|
296 | </tr>
|
297 | <?php } ?> |
298 | <?php if ($championnat == "ajouter" || $_POST['poule']) { ?> |
299 | <tr>
|
300 | <td><?=($_POST['typeCompetition'] != "") ? "Poule/Tableau" : "Poule"?></td> |
301 | <td>
|
302 | : |
303 | <?php if ($championnat == "ajouter") { ?> |
304 | <input type="text" name="poule" value="" /> |
305 | <?php } else { ?> |
306 | <input type="hidden" name="poule" value="<?=$_POST['poule']?>" /> |
307 | <?=$_POST['poule']."\n"?> |
308 | <?php } ?> |
309 | </td>
|
310 | </tr>
|
311 | <?php } ?> |
312 | <?php if (($championnat == "ajouter" || $_POST['phase']) && $_POST['typeCompetition'] == "") { ?> |
313 | <tr>
|
314 | <td>Phase</td> |
315 | <td>
|
316 | : |
317 | <?php if ($championnat == "ajouter") { ?> |
318 | <select name="phase"> |
319 | <option value=""></option> |
320 | <option value="1">1</option> |
321 | <option value="2">2</option> |
322 | </select>
|
323 | <?php } else { ?> |
324 | <input type="hidden" name="phase" value="<?=$_POST['phase']?>" /> |
325 | <?=$_POST['phase']."\n"?> |
326 | <?php } ?> |
327 | </td>
|
328 | </tr>
|
329 | <?php } ?> |
330 | <tr>
|
331 | <td colspan="2"> |
332 | <br /> |
333 | Liste des <?=$_POST['typeCompetition'] == "T" ? "joueurs" : "équipes"?> : |
334 | </td>
|
335 | </tr>
|
336 | <tr>
|
337 | <td colspan="2"> |
338 | <textarea name="equipes" cols="30" rows="10"><?=$equipes?></textarea> |
339 | </td>
|
340 | </tr>
|
341 | <tr>
|
342 | <td colspan="2"> |
343 | <br /> |
344 | Liste des <?=$_POST['typeCompetition'] == "T" ? "tours" : "journées"?> : |
345 | </td>
|
346 | </tr>
|
347 | <tr>
|
348 | <td colspan="2"> |
349 | <textarea name="journees" cols="30" rows="10"><?=$journees?></textarea> |
350 | </td>
|
351 | </tr>
|
352 | </table>
|
353 | <?php if ($championnat == "ajouter") { ?> |
354 | <input type="submit" name="validation_championnat" value="ajouter" /> |
355 | <?php } ?> |
356 | <?php if ($championnat == "modifier" ) { ?> |
357 | <input type="submit" name="validation_championnat" value="modifier" /> |
358 | <?php } ?> |
359 | </form>
|
360 | <?php retour("annuler"); ?> |
361 | <?php } else if ($championnat == "pénalités") { ?> |
362 | <form method="post" action="<?=$_SERVER['PHP_SELF']?>"> |
363 | <table>
|
364 | <?php foreach ($equipes as $n => $e) { ?> |
365 | <tr>
|
366 | <td><?=$e?></td> |
367 | <td>:<input type="text" name="pen_<?=$n?>" size="3" value="<?=($Pen[$n] ? $Pen[$n] : "0")?>" /></td> |
368 | </tr>
|
369 | <?php } ?> |
370 | </table>
|
371 | <?php hiddenVars() ?> |
372 | <input type="submit" name="validation_penalites" value="valider" /> |
373 | </form>
|
374 | <?php retour("annuler"); ?> |
375 | <?php } else if ($rencontre == "ajouter" || $rencontre == "modifier") { ?> |
376 | <form method="post" action="<?=$_SERVER['PHP_SELF']?>"> |
377 | <table border="0"> |
378 | <tr>
|
379 | <td colspan="4"> |
380 | <?php if ($rencontre == "ajouter") { ?> |
381 | Journée<?=$_POST['typeCompetition'] != "" ? "/tour" : ""?> |
382 | <select name="journee"> |
383 | <option value=""></option> |
384 | <?php
|
385 | foreach ($journees as $n => $j) { |
386 | echo "\t\t\t\t\t\t<option value=\"$n\">$j</option>\n"; |
387 | } |
388 | ?>
|
389 | </select>
|
390 | <?php } else { ?> |
391 | <?=$journees[$journee]."\n"?> |
392 | <input type="hidden" name="journee" value="<?=$journee?>" /> |
393 | <?php } ?> |
394 | </td>
|
395 | </tr>
|
396 | <tr>
|
397 | <td>
|
398 | <?php if ($rencontre == "ajouter") { ?> |
399 | Équipe à domicile : |
400 | <select name="domicile"> |
401 | <option value=""></option> |
402 | <?php
|
403 | foreach ($equipes as $n => $e) { |
404 | echo "\t\t\t\t\t\t<option value=\"$n\">$e</option>\n"; |
405 | } |
406 | ?>
|
407 | </select>
|
408 | <?php } else { ?> |
409 | <input type="hidden" name="domicile" value="<?=$domicile?>" /> |
410 | <?=$equipes[$domicile]."\n"?> |
411 | <?php } ?> |
412 | </td>
|
413 | <td> points : <input type="text" name="ptsDom" size="3" value="<?=$ptsDom?>" /></td> |
414 | <td> score : <input type="text" name="scoreDom" size="3" value="<?=$scoreDom?>" /></td> |
415 | <td>
|
416 | <label for="fftDom">forfait :</label> |
417 | <input type="checkbox" id="fftDom" name="fftDom"<?=$fftDom ? " checked" : ""?> /> |
418 | </td>
|
419 | </tr>
|
420 | <tr>
|
421 | <td>
|
422 | <?php if ($rencontre == "ajouter") { ?> |
423 | Équipe à l'extérieure : |
424 | <select name="visiteur"> |
425 | <option value=""></option> |
426 | <?php
|
427 | foreach ($equipes as $n => $e) { |
428 | echo "\t\t\t\t\t\t<option value=\"$n\">$e</option>\n"; |
429 | } |
430 | ?>
|
431 | </select>
|
432 | <?php } else { ?> |
433 | <input type="hidden" name="visiteur" value="<?=$visiteur?>" /> |
434 | <?=$equipes[$visiteur]."\n"?> |
435 | <?php } ?> |
436 | </td>
|
437 | <td> points : <input type="text" name="ptsVis" size="3" value="<?=$ptsVis?>" /></td> |
438 | <td> score : <input type="text" name="scoreVis" size="3" value="<?=$scoreVis?>" /></td> |
439 | <td>
|
440 | <label for="fftVis">forfait :</label> |
441 | <input type="checkbox" id="fftVis" name="fftVis"<?=$fftVis ? " checked" : ""?> /> |
442 | </td>
|
443 | </tr>
|
444 | </table>
|
445 | <?php hiddenVars() ?> |
446 | <?php if ($rencontre == "ajouter") { ?> |
447 | <input type="submit" name="validation_rencontre" value="ajouter" /> |
448 | <?php } ?> |
449 | <?php if ($rencontre == "modifier") { ?> |
450 | <input type="submit" name="validation_rencontre" value="modifier" /> |
451 | <?php } ?> |
452 | </form>
|
453 | <?php retour("annuler"); ?> |
454 | <?php } else if ($_POST['importer'] == "importer") { ?> |
455 | <form method="post" enctype="multipart/form-data"> |
456 | <?php hiddenVars() ?> |
457 | <input type="file" name="zipfile" value="" /> |
458 | <input type="submit" name="validation_importer" value="importer" /> |
459 | </form>
|
460 | <?php retour("annuler"); ?> |
461 | <?php
|
462 | } else { |
463 | retour("continuer", $message); |
464 | } |
465 | ?>
|
466 | </body>
|
467 | </html>
|