MA GALAXIE WEB

LETTRE D'INFORMATION

Nom

Courriel (e-mail)


RECHERCHER



Mon blog d'écrivain

RSS

flux RSS
RSS Commentaires

"Poor Lonesome Coder", parce que pendant longtemps j'ai codé seul, sans collégue. Et je m'en allais
dans la lumiére de l'écran couchant, sur mon fidèle Jolly Clavieur, en chantant une chanson... ;-)

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($classementtrue);
    
//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)

15/02/2005 - Cédric Girard