Révision 16322a9c

b/index.php
1
<?php
2
/*
3
 * index.php - Visualisation du championnat
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
	$Pen = array(); // Points de pénalités
26
	$PG = array();  // Somme des points gagnés
27
	$PP = array();  // Somme des points perdus
28
	$Diff = array();// Diff entre les points gagnés et perdus
29
	$Rang = array();// Nombre de points avec en décimale 'Diff".
30
									// Permet de faire le tri en départageant les ex-aequos
31
	$rencontres = array(); // Rencontres et résultats de chaque journée
32
	$saisons = array();    // Liste des saisons disponibles
33
	$divisions = array();  // Liste des divisions disponibles pour l'année
34
	$subdivs = array();    // Liste des poules/phases disponibles pour la division
35

  
36
	$saison = $_POST['saison'];     // l'année du début de saison
37
	$div1 = $_POST['div1'];         // PRO, N, PN, R, PR ou D
38
	$div2 = $_POST['div2'];         // A, B, 1, 2, 3, ...
39
	$division = $_POST['division']; // PROA, N1, PN, R2, PR ou D4, ...
40
	$poule = $_POST['poule'];       // A, B, ...
41
	$phase = $_POST['phase'];       // 1, 2, ...
42
	if (!$division) $division = $div1; if ($div2) $division .= $SEP_DIV.$div2;
43
	$subdiv = $poule; if ($phase) $subdiv .= $SEP_DIV.$phase;
44

  
45
	$path = (IamAdmin()) ? "../datas" : "datas";
46
	getDirs($path, $saisons);
47
	rsort($saisons);
48
	if (!in_array($saison, $saisons)) unset($saison, $division, $div1, $div2, $subdiv, $poule, $phase);
49
	if (!$saison && $saisons) $saison = $saisons[0];
50

  
51
	if ($saison) {
52
		$path .= "/$saison";
53
		getDirs($path, $divisions);
54
		sort($divisions, SORT_STRING);
55
		if (!in_array($division, $divisions)) unset($division, $div1, $div2);
56
		if (!$division && $divisions) $division = $divisions[0];
57
	}
58

  
59
	if ($division) {
60
		$path .= "/$division";
61
		list($div1, $div2) = explode($SEP_DIV, $division);
62
		getDirs($path, $subdivs);
63
		sort($subdivs, SORT_STRING);
64
		if (!in_array($subdiv, $subdivs)) unset($subdiv, $poule, $phase);
65
		if (!$subdiv && $subdivs) $subdiv = $subdivs[0];
66
	}
67
	if ($subdiv) {
68
		list($poule, $phase) = explode($SEP_DIV, $subdiv);
69
		$path .= "/$subdiv";
70
	}
71

  
72
	// Récupération des équipes
73
	$equipes = getEquipes($path);
74

  
75
	// Récupération des résultats
76
	if ($dir = opendir($path)) {
77
		while (($file = readdir($dir)) !== FALSE) {
78
			if (is_file("$path/$file") && preg_match("/match-*/", $file)) {
79
				list($prefix, $journee, $domicile, $visiteur) = explode("-", $file);
80
				$resu = array_map('rtrim', file("$path/$file"));
81
				$resu = file_get_contents("$path/$file");
82
				$rencontres[$journee][] = "$domicile:$visiteur:$resu";
83
			}
84
		}
85
		ksort($rencontres, SORT_STRING);
86
		closedir($dir);
87
	}
88

  
89
	// Récupération des pénalités
90
	$file = "$path/penalites";
91
	if (file_exists($file) && $penalites = file($file)) {
92
		foreach ($penalites as $n => $p) {
93
			list($equipe, $penalite) = explode(":", rtrim($penalites[$n]));
94
			$Pen[$equipe] = $penalite;
95
		}
96
	}
97
?>
98
<html>
99
<head>
100
	<title>Championnat de tennis de table</title>
101
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
102
	<meta http-equiv="Content-language" content="fr" />
103
	<meta name="copyright" content="Tous droits réservés - All Rights Reserved" />
104
	<meta name="author" content="Romuald DELAVERGNE">
105
	<link rel="stylesheet" type="text/css" href="<?=(IamAdmin()) ? "../" : ""?>style/fftt.css" media="screen" title="Normal" />
106
</head>
107
<html>
108
<body>
109
<?php
110
	/*
111
	echo "<pre>\n";
112
	echo "saison  =/$saison/\n";
113
	echo "division=/$division/\n";
114
	echo "subdiv  =/$subdiv/\n";
115
	echo "poule   =/$poule/\n";
116
	echo "phase   =/$phase/\n";
117
	echo "equipe1=/".$equipes[0]."/\n";
118
	print_r($equipes);
119
	print_r($rencontres);
120
	//print_r($saisons);
121
	//print_r($divisions);
122
	echo "</pre>\n";
123
	*/
124
?>
125
<?php if ($saisons) { ?>
126
	<form name="resultats" method="post" action="<?=$_SERVER['PHP_SELF']?>">
127
		<div id="boutons-selection">
128
		Saison :
129
		<select name="saison">
130
<?php
131
		foreach ($saisons as $s) {
132
			echo "\t\t\t<option value=\"$s\"";
133
			if ($saison == $s) echo " selected";
134
			echo ">$s/".($s+1)."</option>\n";
135
		}
136
?>
137
		</select>
138
<?php } ?>
139
<?php if ($divisions) { ?>
140
		Division :
141
		<select name="division">
142
<?php
143
		foreach ($divisions as $d) {
144
			list($a, $b) = explode($SEP_DIV, $d);
145
			echo "\t\t\t<option value=\"$d\"";
146
			if ($d == $division) echo " selected";
147
			echo ">".$a.$b."</option>\n";
148
		}
149
?>
150
		</select>
151
<?php } ?>
152
<?php if ($poule) { ?>
153
		Poule :
154
		<select name="poule">
155
<?php
156
		foreach ($subdivs as $s) {
157
			list($a, $b) = explode($SEP_DIV, $s);
158
			echo "\t\t\t<option value=\"$a\"";
159
			if ($poule == $a) echo " selected";
160
			echo ">$a</option>\n";
161
		}
162
?>
163
		</select>
164
<?php } ?>
165
<?php	if ($phase) { ?>
166
		Phase :
167
		<select name="phase">
168
<?php
169
		foreach ($subdivs as $s) {
170
			list($a, $b) = explode($SEP_DIV, $s);
171
			echo "\t\t\t<option value=\"$b\"";
172
			if ($phase == $b) echo " selected";
173
			echo ">$b</option>\n";
174
		}
175
?>
176
		</select>
177
<?php } ?>
178
<?php if ($saisons) { ?>
179
		<input type="submit" name="action" value="s&eacute;lectionner" />
180
		</div>
181
	</form>
182
<?php } ?>
183
<?php if (IamAdmin()) { ?>
184
	<form name="resultats" method="post" action="admin.php">
185
		<input type="hidden" name="saison" value="<?=$saison?>" />
186
		<input type="hidden" name="div1" value="<?=$div1?>" />
187
		<input type="hidden" name="div2" value="<?=$div2?>" />
188
		<input type="hidden" name="poule" value="<?=$poule?>" />
189
		<input type="hidden" name="phase" value="<?=$phase?>" />
190
		<div id="championnat-ajouter">
191
			<input type="submit" name="championnat" value="ajouter un championnat" />
192
<?php 	if ($saisons) { ?>
193
			<input type="submit" name="exporter-tout" value="tout exporter" />
194
<?php if (FALSE) { ?>
195
			<input type="submit" name="importer-tout" value="tout importer" />
196
			<input type="submit" name="supprimer-tout" value="tout supprimer" />
197
<?php } ?>
198
<?php 	} ?>
199
		</div>
200
<?php 	if ($saisons) { ?>
201
		<div id="boutons-championnat">
202
			<input type="submit" name="championnat" value="modifier" />
203
			<input type="submit" name="championnat" value="supprimer" onClick='return confirm("Voulez-vous vraiment effacer tout le championnat ?")' />
204
			<input type="submit" name="championnat" value="exporter" />
205
		</div>
206
<?php 	} ?>
207
<?php }
208
	if ($equipes) foreach ($equipes as $n => $e) {
209
		$Pts[$n] -= $Pen[$n];
210
		$Joue[$n] = 0;
211
		$Vic[$n] = 0;
212
		$Nul[$n] = 0;
213
		$Def[$n] = 0;
214
		$PG[$n] = 0;
215
		$PP[$n] = 0;
216
		$Diff[$n] = 0;
217
		$Rang[$n] = 0;
218
	}
219
	if ($rencontres) foreach ($rencontres as $j => $rencontre) {
220
		foreach ($rencontre as $r) {
221
			list($domicile, $visiteur, $ptsDom, $ptsVis, $scoreDom, $scoreVis) = explode(":", $r);
222
			if ($ptsDom == "" || $ptsVis == "" || $scoreDom == "" || $scoreVis == "") continue;
223

  
224
			$Joue[$domicile]++;
225
			$Joue[$visiteur]++;
226
			$Pts[$domicile] += $scoreDom;
227
			$Pts[$visiteur] += $scoreVis;
228
			$PG[$domicile] += $ptsDom;
229
			$PP[$domicile] += $ptsVis;
230
			$PG[$visiteur] += $ptsVis;
231
			$PP[$visiteur] += $ptsDom;
232

  
233
			if ($scoreDom > $scoreVis) {
234
				$Vic[$domicile]++;
235
				$Def[$visiteur]++;
236
			}
237
			elseif ($ptsDom < $ptsVis) {
238
				$Def[$domicile]++;
239
				$Vic[$visiteur]++;
240
			}
241
			else {
242
				$Nul[$domicile]++;
243
				$Nul[$visiteur]++;
244
			}
245
		}
246
	}
247
	if ($equipes) foreach ($equipes as $n => $e) {
248
		$Diff[$n] = $PG[$n] - $PP[$n];
249
		$Rang[$n] = $Pts[$n] + $Diff[$n]/1000;
250
	}
251
	arsort($Rang);
252
	if ($equipes) {
253
?>
254
		<div id="tabClassement">
255
		<table>
256
			<tr>
257
				<th class="colClt">Clt</th>
258
				<th class="colEquipe">Equipe</th>
259
				<th class="colPts">Pts</th>
260
				<th class="colJoue">Jou&eacute;</th>
261
				<th class="colVic">Vic</th>
262
				<th class="colNul">Nul</th>
263
				<th class="colDef">D&eacute;f</th>
264
				<th class="colPen">P&eacute;n</th>
265
				<th class="colPG">PG</th>
266
				<th class="colPP">PP</th>
267
				<th class="colDiff">Diff</th>
268
			</tr>
269
<?php
270
	}
271
	$i = 0;
272
	foreach ($Rang as $equipe => $r) {
273
		$i++;
274
?>
275
			<tr>
276
				<td class="colClt"><?=(isset($last) && $last == $Pts[$equipe]) ? "-" : $i?></td>
277
				<td class="colEquipe"><?=$equipes[$equipe]?></td>
278
				<td class="colPts"><?=$Pts[$equipe]?></td>
279
				<td class="colJoue"><?=$Joue[$equipe]?></td>
280
				<td class="colVic"><?=($Vic[$equipe]) ? $Vic[$equipe] : "0"?></td>
281
				<td class="colNul"><?=($Nul[$equipe]) ? $Nul[$equipe] : "0"?></td>
282
				<td class="colDef"><?=($Def[$equipe]) ? $Def[$equipe] : "0"?></td>
283
				<td class="colPen"><?=($Pen[$equipe]) ? $Pen[$equipe] : "0"?></td>
284
				<td class="colPG"><?=($PG[$equipe]) ? $PG[$equipe] : "0"?></td>
285
				<td class="colPP"><?=($PP[$equipe]) ? $PP[$equipe] : "0"?></td>
286
				<td class="colDiff"><?=($Diff[$equipe]) ? $Diff[$equipe] : "0"?></td>
287
			</tr>
288
<?php
289
		$last = $Pts[$equipe];
290
	}
291
?>
292
<?php if ($equipes) { ?>
293
		</table>
294
		</div>
295
		<br />
296
<?php } ?>
297
<?php
298
	$j = 0;
299
	foreach ($rencontres as $j => $rencontre) {
300
?>
301
	<div class="tabJournee">
302
	<table>
303
		<tr>
304
			<th class="colJournee" colspan="6">Journ&eacute;e <?=$j?></th>
305
		<tr>
306
<?php
307
		foreach ($rencontre as $r) {
308
			list($domicile, $visiteur, $ptsDom, $ptsVis) = explode(":", $r);
309
?>
310
		<tr>
311
			<td class="colDom"><div<?=($ptsDom != "" && $ptsVis != "" && $ptsDom >= $ptsVis) ? " class=\"vainqueur\"": ""?>><?=$equipes[$domicile]?></div></td>
312
			<td class="colSep">&nbsp;-&nbsp;</td>
313
			<td class="colVis"><div<?=($ptsDom != "" && $ptsVis != "" && $ptsVis >= $ptsDom) ? " class=\"vainqueur\"": ""?>><?=$equipes[$visiteur]?></div></td>
314
			<td class="colPtsDom"><?=$ptsDom?></td>
315
			<td class="colPtsVis"><?=$ptsVis?></td>
316
<?php if (IamAdmin()) { ?>
317
			<td>
318
<?php $value = "$j-$domicile-$visiteur"; ?>
319
				<input type="submit" name="rencontre-<?=$value?>" value="modifier" />
320
				<input type="submit" name="rencontre-<?=$value?>" value="supprimer" onClick='return confirm("Voulez-vous vraiment effacer cette rencontre entre\n<?=$equipes[$domicile]?> et <?=$equipes[$visiteur]?> ?")' />
321
			</td>
322
<?php } ?>
323
		</tr>
324
<?php
325
		}
326
?>
327
		</table>
328
		</div>
329
		<br />
330
<?php
331
	}
332
?>
333
<?php if (IamAdmin()) { ?>
334
<?php 	if ($equipes) { ?>
335
		<div id="rencontre-ajouter">
336
			<input type="submit" name="rencontre-ajouter" value="ajouter une rencontre" />
337
		</div>
338
<?php 	} ?>
339
	</form>
340
<?php } ?>
341
</body>
342
</html>

Formats disponibles : Unified diff