ClassementArc
boite à outils PHP pour les classements sportifs
ClassementArc est un script PHP permettant de classer n'importe quel groupe d'archers sur n'importe quels critères sans avoir à tout redévelopper à chaque fois. La raison de ce script est l'évolution rapide des classements, les règles changeant chaque année, il était difficile de faire un programme à chaque fois. D'où l'idée de faire une boite à outils d'opérations possibles sur les classements.
Voilà un exemple de traitement :
<?
error_reporting(E_ALL);
include 'code/classement.lib.php';
include 'quotas.php';
$clef=array('licence', 'arme');
//chargement d'un fichier EXCEL extrait via l'extranet FFTA
ChargerClassementFFTA($classement, 'SALLE20050201.xls');
//chargement de fichiers textes contenant des informations additionelles
ChargerFichierCSV($jeunes, 'infos_jeunes.csv', array('licence', 'arme', 'souhait', 'preselection', 'selection'));
ChargerFichierCSV($pre_adultes, 'preselection_adultes.csv', array('licence', 'arme', 'code', 'preselection'));
ChargerFichierCSV($souhaits, 'souhaits_adultes.csv', array('licence', 'arme', 'souhait'));
//correction des catégories (Cadets Poulies passent en Juniors, par exemple, pour simplifier)
CorrectionCategories($classement);
//vérifie que certains groupes de clefs sont uniques
VerifieUniciteClef($classement, $clef, $ligne) or die("clef (licence,arme) non unique pour le classement (".$classement[$ligne]['licence'].")<br>");
VerifieUniciteClef($souhaits, $clef, $ligne) or die("clef (licence,arme) non unique pour les souhaits (".$souhaits[$ligne]['licence'].")<br>");
VerifieUniciteClef($jeunes, $clef, $ligne) or die("clef (licence,arme) non unique pour les jeunes (".$jeunes[$ligne]['licence'].")<br>");
VerifieUniciteClef($pre_adultes, $clef, $ligne) or die("clef (licence,arme) non unique pour les adultes (".$pre_adultes[$ligne]['licence'].")<br>");
VerifieUniciteClef($pre_adultes, array('code'), $ligne) or die("clef (code) non unique pour les jeunes (".$pre_adultes[$ligne]['licence'].")<br>");
//intégrer les données venant d'autres fichiers
Integration($classement, $jeunes, $clef);
Integration($classement, $pre_adultes, $clef);
Integration($classement, $souhaits, $clef);
//faire le classement final
ClassementTotal($classement, true);
//sauver le classement au format CSV pour l'envoi vers le module ligue2 d'un site tournant sous RAT
Sauver('SALLE2005.rat', ClassementCSV($classement, array(
'france'=>'France', 'position'=>'N°', 'licence'=>'Licence', 'nom'=>'Nom', 'prenom'=>'Prenom',
'cat'=>'Cat', 'genre'=>'Genre', 'arme'=>'Arme',
'agreement'=>'Agreement', 'club'=>'Club',
'score1'=>'1', 'score2'=>'2', 'score3'=>'3', 'moyenne'=>'Moyenne',
'code'=>'Code', 'preselection'=>'Preselection', 'souhait'=>'Souhait'), '$'));
//sauver sous une forme HTML
Sauver('salle20050201.html', ClassementHTML($classement, array(
'souhait'=>'Souhait', 'position'=>'N°', 'france'=>'France', 'prenom+nom'=>'Archer',
'club'=>'Club',
'score1'=>'1', 'score2'=>'2', 'score3'=>'3', 'moyenne'=>'Moy')));
?>
L'interet du système est par exemple de pouvoir faire le classement à une date, en sélectionnant les N premiers archers de chaque catégorie selon des quotas réglables, de mémoriser cet état et de l'injecter dans une version ultérieure du classement. Autre exemple, permettre aux archers de confirmer leur venue via un site internet et de sélectionner les archers pour le championnat régional en fonction de ceux qui ont répondu et des quotas définis.
Il y a quelques scripts dans le style de celui du dessus, vous pouvez vous en inspirer.
Fichier(s)
- Code source PHP - (classementarc.zip, 208.45ko)
15/02/2005 - Cédric Girard