Statistiques
| Branche: | Révision :

root / index.php @ 9baf57ba153298c54013e9ebc27a658abeacf9c9

Historique | Voir | Annoter | Télécharger (13,04 ko)

1
<?php
2
/*
3
 * index.php - Visualisation 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
        if (basename(dirname($_SERVER['PHP_SELF'])) == "admin")
10
                require_once '../functions.php';
11
        else
12
                require_once 'functions.php';
13
14
        /*
15
        echo "<pre>\n";
16
        print_r($_POST);
17
        echo "</pre>\n";
18
        */
19
20
        $Pts = array(); // Nombre de points
21
        $Joue = array();// Nombre de matchs joués
22
        $Vic = array(); // Nombre de victoires
23
        $Nul = array(); // Nombre de matchs nuls
24
        $Def = array(); // Nombre de défaites
25
        $Fft = array(); // Nombre de forfaits
26
        $Pen = array(); // Points de pénalités
27
        $PG = array();  // Somme des points gagnés
28
        $PP = array();  // Somme des points perdus
29
        $Diff = array();// Diff entre les points gagnés et perdus
30
        $Rang = array();// Nombre de points avec en décimale 'Diff".
31
                                                                        // Permet de faire le tri en départageant les ex-aequos
32
        $rencontres = array(); // Rencontres et résultats de chaque journée
33
        $saisons = array();    // Liste des saisons disponibles
34
        $divisions = array();  // Liste des divisions disponibles pour l'année
35
        $poules = array();    // Liste des poules disponibles pour la division
36
        $phases = array();    // Liste des phases disponibles pour la division
37
        $subdivs = array();    // Liste des poules/phases disponibles pour la division
38
39
        $saison = $_POST['saison'];     // l'année du début de saison
40
        $div1 = $_POST['div1'];         // PRO, N, PN, R, PR ou D
41
        $div2 = $_POST['div2'];         // A, B, 1, 2, 3, ...
42
        $division = $_POST['division']; // PROA, N1, PN, R2, PR ou D4, ...
43
        $poule = $_POST['poule'];       // A, B, ...
44
        $phase = $_POST['phase'];       // 1, 2, ...
45
        if ($division == "") $division = $div1; if ($div2 != "") $division .= $SEP_DIV.$div2;
46
        $subdiv = $poule; if ($phase != "") $subdiv .= $SEP_DIV.$phase;
47
48
        $path = (authent()) ? "../datas" : "datas";
49
        getDirs($path, $saisons);
50
        rsort($saisons);
51
        if (!in_array($saison, $saisons)) unset($saison, $division, $div1, $div2, $subdiv, $poule, $phase);
52
        if (!$saison && $saisons) $saison = $saisons[0];
53
54
        if ($saison) {
55
                $path .= "/$saison";
56
                getDirs($path, $divisions);
57
                sort($divisions, SORT_STRING);
58
                if (!in_array($division, $divisions)) unset($division, $div1, $div2);
59
                if (!$division && $divisions) $division = $divisions[0];
60
        }
61
62
        if ($division) {
63
                $path .= "/$division";
64
                list($div1, $div2) = explode($SEP_DIV, $division);
65
                getDirs($path, $subdivs);
66
                sort($subdivs, SORT_STRING);
67
                foreach ($subdivs as $s) {
68
                        list($a, $b) = explode($SEP_DIV, $s);
69
                        if (!in_array($a, $poules)) $poules[] = $a;
70
                }
71
                if (!in_array($poule, $poules)) unset($subdiv, $poule, $phase);
72
                if (!$subdiv && $subdivs) $subdiv = $subdivs[0];
73
                list($poule, $phase) = explode($SEP_DIV, $subdiv);
74
                foreach ($subdivs as $s) {
75
                        list($a, $b) = explode($SEP_DIV, $s);
76
                        if ($a == $poule) $phases[] = $b;
77
                }
78
                if (!in_array($phase, $phases)) unset($subdiv, $phase);
79
                if (!$phase && $phases) {
80
                        $phase = $phases[0];
81
                        $subdiv = $poule; if ($phase != "") $subdiv .= $SEP_DIV.$phase;
82
                }
83
        }
84
        if ($subdiv) {
85
                list($poule, $phase) = explode($SEP_DIV, $subdiv);
86
                $path .= "/$subdiv";
87
        }
88
89
        // Récupération des équipes et des journees/tours
90
        $equipes = getEquipes($path);
91
        $journees = getJournees($path);
92
93
        // Récupération des résultats
94
        if ($dir = opendir($path)) {
95
                while (($file = readdir($dir)) !== FALSE) {
96
                        if (is_file("$path/$file") && preg_match("/match-*/", $file)) {
97
                                list($prefix, $journee, $domicile, $visiteur) = explode("-", $file);
98
                                $resu = array_map('rtrim', file("$path/$file"));
99
                                $resu = file_get_contents("$path/$file");
100
                                $rencontres[$journee][] = "$domicile:$visiteur:$resu";
101
                        }
102
                }
103
                closedir($dir);
104
                ksort($rencontres);
105
        }
106
107
        switch ($div1) {
108
                case "C": $titleDiv = "coupe"; break;
109
                case "T": $titleDiv = "tournoi"; break;
110
                default: $titleDiv = "division"; break;
111
        }
112
        $titleSubdiv = (($div1 == "C" || $div1 == "T") && $poule) ? "poule/tableau" : "poule";
113
114
        // Récupération des pénalités
115
        $Pen = getPenalites($path);
116
        // Récupération des ajustements
117
        $Adjust = getAjustements($path);
118
        // Récupération des forfaits généraux
119
        $ForfaitsG = getForfaitsG($path);
120
        // Récupération des commentaires
121
        $Comments = getCommentaires($path);
122
?>
123
<html>
124
<head>
125
        <title>Comp&eacute;titions de tennis de table</title>
126
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
127
        <meta http-equiv="Content-language" content="fr" />
128
        <meta name="copyright" content="Tous droits réservés - All Rights Reserved" />
129
        <meta name="author" content="Romuald DELAVERGNE">
130
        <link rel="stylesheet" type="text/css" href="<?=(authent()) ? "../" : ""?>style/fftt.css" media="screen" title="Normal" />
131
</head>
132
<html>
133
<body>
134
<?php
135
        /*
136
        echo "<pre>\n";
137
        echo "saison  =/$saison/\n";
138
        echo "division=/$division/\n";
139
        echo "div1    =/$div1/\n";
140
        echo "div2    =/$div2/\n";
141
        echo "subdiv  =/$subdiv/\n";
142
        echo "poule   =/$poule/\n";
143
        echo "phase   =/$phase/\n";
144
        echo "equipe1=/".$equipes[0]."/\n";
145
        print_r($equipes);
146
        print_r($rencontres);
147
        //print_r($saisons);
148
        //print_r($divisions);
149
        print_r($subdivs);
150
        echo "</pre>\n";
151
        */
152
?>
153
<?php if ($saisons) { ?>
154
        <form name="resultats" method="post" action="<?=$_SERVER['PHP_SELF']?>">
155
                <div id="boutons-selection">
156
                        Saison :
157
                        <select name="saison" onChange="submit()">
158
<?php
159
                foreach ($saisons as $s) {
160
                        echo "\t\t\t\t<option value=\"$s\"";
161
                        if ($saison == $s) echo " selected";
162
                        echo ">$s/".($s+1)."</option>\n";
163
                }
164
?>
165
                        </select>
166
<?php } ?>
167
<?php if ($divisions) { ?>
168
                        <?=$titleDiv?> :
169
                        <select name="division" onChange="submit()">
170
<?php
171
                foreach ($divisions as $d) {
172
                        list($a, $b) = explode($SEP_DIV, $d);
173
                        echo "\t\t\t\t<option value=\"$d\"";
174
                        if ($d == $division) echo " selected";
175
                        echo ">".(($a == "C" || $a == "T") ? $b : $a.$b)."</option>\n";
176
                }
177
?>
178
                        </select>
179
<?php } ?>
180
<?php if ($poule) { ?>
181
                        <?=$titleSubdiv?> :
182
                        <select name="poule" onChange="submit()">
183
<?php
184
                foreach ($poules as $p) {
185
                        echo "\t\t\t\t<option value=\"$p\"";
186
                        if ($poule == $p) echo " selected";
187
                        echo ">$p</option>\n";
188
                }
189
?>
190
                        </select>
191
<?php } ?>
192
<?php        if ($phase) { ?>
193
                        Phase :
194
                        <select name="phase" onChange="submit()">
195
<?php
196
                foreach ($phases as $p) {
197
                        echo "\t\t\t\t<option value=\"$p\"";
198
                        if ($phase == $p) echo " selected";
199
                        echo ">$p</option>\n";
200
                }
201
?>
202
                        </select>
203
<?php } ?>
204
<?php if ($saisons) { ?>
205
                </div>
206
        </form>
207
<?php } ?>
208
<?php if (IamAdmin() or IamCaptain()) { ?>
209
        <form name="resultats" method="post" action="admin.php">
210
                <input type="hidden" name="saison" value="<?=$saison?>" />
211
                <input type="hidden" name="div1" value="<?=$div1?>" />
212
                <input type="hidden" name="div2" value="<?=$div2?>" />
213
                <input type="hidden" name="poule" value="<?=$poule?>" />
214
                <input type="hidden" name="phase" value="<?=$phase?>" />
215
<?php if (IamAdmin()) { ?>
216
                <div id="boutons-global">
217
                        <select name="typeCompetition">
218
                                <option value="">championnat</option>
219
                                <option value="C"<?=$div1 == "C" ? " selected" : ""?>>coupe</option>
220
                                <option value="T"<?=$div1 == "T" ? " selected" : ""?>>tournoi</option>
221
                        </select>
222
                        <input type="submit" name="championnat" value="ajouter" />
223
<?php         if ($saisons) { ?>
224
                        -
225
                        <input type="submit" name="exporter" value="exporter" />
226
                        -
227
                        <input type="submit" name="importer" value="importer" />
228
<?php if (FALSE) { ?>
229
                        -
230
                        <input type="submit" name="supprimer-tout" value="tout supprimer" />
231
<?php } ?>
232
<?php         } ?>
233
                </div>
234
                <br />
235
<?php if ($saisons) { ?>
236
                <div id="boutons-championnat">
237
                        <input type="submit" name="championnat" value="modifier" />
238
<?php
239
        if ($phase) {
240
                $compet = "la phase";
241
        } elseif ($poule) {
242
                if ($div1 == "C" || $div1 == "T") {
243
                        $compet = "la poule ou le tableau";
244
                } else {
245
                        $compet = "la poule";
246
                }
247
        } else {
248
                $compet = "la division";
249
        }
250
?>
251
                        <input type="submit" name="championnat" value="supprimer" onClick='return confirm("Voulez-vous vraiment effacer <?=$compet?> ?")' />
252
                        <input type="submit" name="championnat" value="p&eacute;nalit&eacute;s" />
253
                        <input type="submit" name="championnat" value="ajustements" />
254
                        <input type="submit" name="championnat" value="forfait g&eacute;n&eacute;ral" />
255
                        <input type="submit" name="championnat" value="commentaires" />
256
                </div>
257
<?php                 } ?>
258
<?php         } ?>
259
<?php }
260
        if ($equipes) foreach ($equipes as $n => $e) {
261
                $Pts[$n] = $Joue[$n] = $Vic[$n] = $Nul[$n] = $Def[$n] = $Fft[$n] = $PG[$n] = $PP[$n] = $Diff[$n] = $Rang[$n] = 0;
262
        }
263
        if ($rencontres) foreach ($rencontres as $j => $rencontre) {
264
                foreach ($rencontre as $r) {
265
                        list($domicile, $visiteur, $ptsDom, $ptsVis, $scoreDom, $scoreVis, $fftDom, $fftVis) = explode(":", $r);
266
                        if ($ptsDom == "" || $ptsVis == "" || $scoreDom == "" || $scoreVis == "") continue;
267
268
                        $Joue[$domicile]++;
269
                        $Joue[$visiteur]++;
270
                        $Pts[$domicile] += $scoreDom;
271
                        $Pts[$visiteur] += $scoreVis;
272
                        $PG[$domicile] += $ptsDom;
273
                        $PP[$domicile] += $ptsVis;
274
                        $PG[$visiteur] += $ptsVis;
275
                        $PP[$visiteur] += $ptsDom;
276
277
                        if ($fftDom == "on") $Fft[$domicile]++;
278
                        if ($fftVis == "on") $Fft[$visiteur]++;
279
                        if ($scoreDom > $scoreVis) {
280
                                $Vic[$domicile]++;
281
                                if ($fftVis == "") $Def[$visiteur]++;
282
                        }
283
                        elseif ($scoreDom < $scoreVis) {
284
                                if ($fftDom == "") $Def[$domicile]++;
285
                                $Vic[$visiteur]++;
286
                        }
287
                        else {
288
                                $Nul[$domicile]++;
289
                                $Nul[$visiteur]++;
290
                        }
291
                }
292
        }
293
        if ($equipes) foreach ($equipes as $n => $e) {
294
                $Pts[$n] -= $Pen[$n];
295
                $Diff[$n] = $PG[$n] - $PP[$n];
296
                $Rang[$n] = $Pts[$n] + $Adjust[$n]/100 + $Diff[$n]/100000;
297
                if ($ForfaitsG[$n]) $Pts[$n] = $Rang[$n] = 0;
298
        }
299
        arsort($Rang);
300
        $sortKeys = array_keys($Rang);
301
?>
302
        <div id="tabClassement">
303
                <table>
304
                        <tr>
305
                                <th class="colClt">Clt</th>
306
<?php if (IamAdmin()) { ?>
307
                                <th class="colAdjust">Ajustement</th>
308
<?php } ?>
309
                                <th class="colEquipe">Equipe</th>
310
                                <th class="colPts">Pts</th>
311
                                <th class="colJoue">Jou&eacute;</th>
312
                                <th class="colVic">Vic</th>
313
                                <th class="colNul">Nul</th>
314
                                <th class="colDef">D&eacute;f</th>
315
                                <th class="colFft">Fft</th>
316
                                <th class="colPen">P&eacute;n</th>
317
                                <th class="colPG">PG</th>
318
                                <th class="colPP">PP</th>
319
                                <th class="colDiff">Diff</th>
320
                        </tr>
321
<?php
322
        if ($equipes) foreach ($sortKeys as $i => $equipe) {
323
                $prev = ($i > 0) ? $sortKeys[$i-1] : -1;
324
                $next = ($i < count($sortKeys)-1) ? $sortKeys[$i+1] : -1;
325
?>
326
                        <tr<?=$Comments[$equipe] ? " title=\"$Comments[$equipe]\"" : ""?>>
327
                                <td class="colClt"><?=($prev != -1 && $Pts[$prev] == $Pts[$equipe]) ? "-" : $i+1?></td>
328
<?php if (IamAdmin()) { ?>
329
                                <td class="colAdjust">
330
<?php if ($prev != -1 && $Pts[$prev] == $Pts[$equipe]) { ?>
331
                                        <input class="adjustBtn" type="submit" name="adjust-<?=$equipe?>" value="&uarr;" />
332
<?php } ?>
333
<?php if ($next != -1 && $Pts[$next] == $Pts[$equipe]) { ?>
334
                                        <input class="adjustBtn" type="submit" name="adjust-<?=$equipe?>" value="&darr;" />
335
<?php } ?>
336
                                </td>
337
<?php } ?>
338
                                <td class="colEquipe">&nbsp;<?=$equipes[$equipe]?></td>
339
                                <td class="colPts"><?=$Pts[$equipe]?></td>
340
                                <td class="colJoue"><?=$Joue[$equipe]?></td>
341
                                <td class="colVic"><?=($Vic[$equipe]) ? $Vic[$equipe] : "0"?></td>
342
                                <td class="colNul"><?=($Nul[$equipe]) ? $Nul[$equipe] : "0"?></td>
343
                                <td class="colDef"><?=($Def[$equipe]) ? $Def[$equipe] : "0"?></td>
344
                                <td class="colFft"><?=($Fft[$equipe]) ? $Fft[$equipe] : "0"?></td>
345
                                <td class="colPen"><?=($Pen[$equipe]) ? $Pen[$equipe] : "0"?></td>
346
                                <td class="colPG"><?=($PG[$equipe]) ? $PG[$equipe] : "0"?></td>
347
                                <td class="colPP"><?=($PP[$equipe]) ? $PP[$equipe] : "0"?></td>
348
                                <td class="colDiff"><?=($Diff[$equipe]) ? $Diff[$equipe] : "0"?></td>
349
                        </tr>
350
<?php } ?>
351
                </table>
352
        </div>
353
        <br />
354
<?php if (IamAdmin() && $equipes) { ?>
355
        <input type="submit" name="rencontre-ajouter" value="ajouter une rencontre" />
356
<?php } ?>
357
<?php
358
        foreach ($rencontres as $j => $rencontre) {
359
?>
360
        <div class="tabJournee">
361
                <table>
362
                        <tr>
363
                                <th class="colJournee" colspan="6"><?=isset($journees[$j]) ? $journees[$j] : "&lt;n&deg;$j sans nom&gt;"?></th>
364
                        <tr>
365
<?php
366
                foreach ($rencontre as $r) {
367
                        list($domicile, $visiteur, $ptsDom, $ptsVis, $scoreDom, $scoreVis, $fftDom, $fftVis) = explode(":", $r);
368
?>
369
                        <tr>
370
                                <td class="colDom"><div<?=($scoreDom != "" && $scoreVis != "" && $scoreDom >= $scoreVis) ? " class=\"vainqueur\"": ""?>><?=$equipes[$domicile]?>&nbsp;</div></td>
371
                                <td class="colPtsDom"><?=$ptsDom?></td>
372
                                <td class="colSep">&nbsp;-&nbsp;</td>
373
                                <td class="colPtsVis"><?=$ptsVis?></td>
374
                                <td class="colVis"><div<?=($scoreDom != "" && $scoreVis != "" && $scoreVis >= $scoreDom) ? " class=\"vainqueur\"": ""?>>&nbsp;<?=$equipes[$visiteur]?></div></td>
375
<?php if (IamAdmin() or IamCaptain()) { ?>
376
                                <td>
377
<?php $value = "$j-$domicile-$visiteur"; ?>
378
                                        <input type="submit" name="rencontre-<?=$value?>" value="modifier" />
379
<?php         if (IamAdmin()) { ?>
380
                                        <input type="submit" name="rencontre-<?=$value?>" value="supprimer" onClick='return confirm("Voulez-vous vraiment effacer cette rencontre entre\n<?=$equipes[$domicile]?> et <?=$equipes[$visiteur]?> ?")' />
381
<?php         } ?>
382
                                </td>
383
<?php } ?>
384
                        </tr>
385
<?php
386
                }
387
?>
388
                </table>
389
        </div>
390
        <br />
391
<?php
392
        }
393
?>
394
<?php if (IamAdmin()) { ?>
395
<?php         if ($equipes) { ?>
396
        <input type="submit" name="rencontre-ajouter" value="ajouter une rencontre" />
397
<?php         } ?>
398
        </form>
399
<?php } ?>
400
</body>
401
</html>