{source}
getTag(); // fr-FR $user = JFactory::getUser(); $groups = $user->get('groups'); $mode='user'; foreach ($groups as $group) { if($group==8){$mode='admin';} } $txt_ouverture = "2022-06-26 08:00:00"; $txt_fermeture = "2022-09-01 23:59:59"; // date ouverture $ouverture=strtotime($txt_ouverture); $fermeture=strtotime($txt_fermeture); if(strtotime('now')<$ouverture || strtotime('now')>$fermeture){ // vérification de la date d'ouverture $ouvert=false; echo "Les inscriptions ne sont pas encore ouvertes, ouverture des inscriptions entre le ".$txt_ouverture." et le ".$txt_fermeture." "; if($mode=='admin'){ // les admins ont le droit de continuer quand même $ouvert=true; echo "
Mode admin, inscriptions toujours ouvertes."; }else{ // on est pas admin donc stop exit(); } }else{ $ouvert=true; } if($mode=='admin'){ // les admins ont le droit de continuer quand même $ouvert=true; echo "
Mode admin, nombre maximum d'inscription augmenté +1000
"; } // references bancaires /* $rib = "10278 37193 00020453803 32"; $bic = "CMCIFR2A"; $banque = "CM CHAMBRAY LES TOURS"; $iban = "FR76 1027 8371 9300 0204 5380 332"; */ $rib = "10278 37487 00020453803 84"; $bic = "CMCIFR2A"; $banque = "CM TOURS VAL SUD EST"; $iban = "FR76 1027 8374 8700 0204 5380 384"; // cout des inscriptions $cout_repas=0; $cout_indiv=25; $cout_tandem=50; $cout_relai=100; $cout_pack_equipe=150; // 1 relai + 5 individuel // nombre max d'inscriptions $nb_max_indiv=250; $nb_max_tandem=50; $nb_max_relai=40; // recuperation des variables par lien GET direct (mode clic sur un lien de connexion) $gid=@$_GET['gid']; $mdp_md5=@$_GET['mdp_md5']; $connexion_groupe=@$_GET['connexion_groupe']; // recuperations des variables POST de formulaires if($gid=="") $gid=@$_POST['gid']; $pid=@$_POST['pid']; $iid=@$_POST['iid']; $pid1=@$_POST['pid1']; $pid2=@$_POST['pid2']; $pid3=@$_POST['pid3']; $pid4=@$_POST['pid4']; $pid5=@$_POST['pid5']; $groupe=@$_POST['groupe']; $prenom=@$_POST['prenom']; $nom=@$_POST['nom']; $sexe=@$_POST['sexe']; $date_naissance=@$_POST['date_naissance']; $tref_minutes=@$_POST['tref_minutes']; $tref_secondes=@$_POST['tref_secondes']; $repas=@$_POST['repas']; $dn_jour=@$_POST['dn_jour']; $dn_mois=@$_POST['dn_mois']; $dn_annee=@$_POST['dn_annee']; $telephone=@$_POST['telephone']; $email=@$_POST['email']; $tshirt=@$_POST['tshirt']; $mdp=@$_POST['mdp']; if($mdp_md5=="") $mdp_md5=@$_POST['mdp_md5']; $adresse_num=@$_POST['adresse_num']; $adresse_rue=@$_POST['adresse_rue']; $adresse_cp=@$_POST['adresse_cp']; $adresse_ville=@$_POST['adresse_ville']; $adresse_pays=@$_POST['adresse_pays']; $creer_groupe=@$_POST['creer_groupe']; if($connexion_groupe=="") $connexion_groupe=@$_POST['connexion_groupe']; $mdp_perdu=@$_POST['mdp_perdu']; $modifier_groupe=@$_POST['modifier_groupe']; $supprimer_groupe=@$_POST['supprimer_groupe']; $ajouter_participant=@$_POST['ajouter_participant']; $modifier_participant=@$_POST['modifier_participant']; $supprimer_participant=@$_POST['supprimer_participant']; $selectionner_participant=@$_POST['selectionner_participant']; $ajouter_individuel=@$_POST['ajouter_individuel']; $ajouter_tandem=@$_POST['ajouter_tandem']; $ajouter_relai=@$_POST['ajouter_relai']; $nom_tandem=@$_POST['nom_tandem']; $nom_relai=@$_POST['nom_relai']; $valider_inscription=@$_POST['valider_inscription']; $valider_paiement=@$_POST['valider_paiement']; $refuser_paiement=@$_POST['refuser_paiement']; $valider_rgpd=@$_POST['valider_rgpd']; $tarif=@$_POST['tarif']; $enc_tarif=@$_POST['enc_tarif']; $mode='consultation'; // ***************************** FONCTIONS ***************************** function nb_participants_restant($type,$nb_max_indiv=250,$nb_max_tandem=50,$nb_max_relai=40){ // recupere le nombre d'inscrits en type individuel ou tandem ou relai $db = JFactory::getDbo(); $q=$db->getQuery(true); $q->select('count(*) as nb') ->from($db->quoteName('le_inscription')) ->where($db->quoteName('type') . ' = '. $db->quote($type)); $db->setQuery($q); $nb = 0; $nbi = $db->loadResult(); if($type=='individuel') $nb = $nb_max_indiv-($nbi); if($type=='tandem') $nb = $nb_max_tandem-($nbi); if($type=='relai') $nb = $nb_max_relai-($nbi); return $nb; } // mise à jour du nombre de places restantes $nb_individuel_restant = nb_participants_restant('individuel'); $nb_tandem_restant = nb_participants_restant('tandem'); $nb_relai_restant = nb_participants_restant('relai'); function send_email($email,$titre,$texte,$copy_adm=true){ $mailer = JFactory::getMailer(); $mailer->isHtml(true); $mailer->Encoding = 'base64'; if($copy_adm){ $liste_email = array($email,
Attention, l'email de confirmation n'a pas pu être envoyé à l'adresse $email
"; }else{ echo "
Warning, email could not be sent to $email
"; } } else { if($lang=='fr-FR'){ echo "
Un email vous a été envoyé à l'adresse $email (pensez à vérifier votre dossier SPAM si vous n'avez pas reçu l'email)
"; }else{ echo "
An email was sent to $email (please check your spam folder if you did not get this email)
"; } } } function get_groupe_id($groupe,$mdp, $mdp_md5=""){ // recupere le gid du groupe s'il existe sinon renvoie 0 $pass_md5 = md5($mdp); $db = JFactory::getDbo(); $q=$db->getQuery(true); $q->select($db->quoteName('gid')) ->from($db->quoteName('le_groupe')) ->where($db->quoteName('groupe') . ' LIKE '. $db->quote($groupe) . ' AND ( ' . $db->quoteName('mdp') . ' = '. $db->quote($mdp) . ' OR ' . $db->quoteName('mdp') . ' = '. $db->quote($pass_md5) . ' OR ' . $db->quoteName('mdp') . ' = '. $db->quote($mdp_md5) . ' ) ') ->order('gid ASC'); $db->setQuery($q); $gid = 0+$db->loadResult(); return $gid; } function verif_groupe_id($gid,$mdp, $mdp_md5=""){ // recupere le gid du groupe s'il existe sinon renvoie 0 $pass_md5 = md5($mdp); $db = JFactory::getDbo(); $q=$db->getQuery(true); $q->select($db->quoteName('gid')) ->from($db->quoteName('le_groupe')) ->where($db->quoteName('gid') . ' = '. $db->quote($gid) . ' AND ( ' . $db->quoteName('mdp') . ' = '. $db->quote($mdp) . ' OR ' . $db->quoteName('mdp') . ' = '. $db->quote($pass_md5) . ' OR ' . $db->quoteName('mdp') . ' = '. $db->quote($mdp_md5) . ' ) ') ->order('gid ASC'); $db->setQuery($q); $gid = 0+$db->loadResult(); return $gid; } function get_groupe_info($gid){ // recupere les informations du groupe s'il existe sinon renvoie null $db = JFactory::getDbo(); $q=$db->getQuery(true); $q->select('le_groupe.*') ->from($db->quoteName('le_groupe')) ->where($db->quoteName('gid') . ' = '. $db->quote($gid)) ->order('gid ASC'); $db->setQuery($q); $ginfo = $db->loadAssoc(); return $ginfo; } function get_nom_participant($pid){ // recupere les informations prenom nom du participant $db = JFactory::getDbo(); $q=$db->getQuery(true); $q->select('le_participant.*') ->from($db->quoteName('le_participant')) ->where($db->quoteName('pid') . ' = '. $db->quote($pid)); $db->setQuery($q); $ginfo = $db->loadAssoc(); return "".@$ginfo['prenom']." ".@$ginfo['nom']; } function get_participant($pid){ // recupere les informations prenom nom du participant $db = JFactory::getDbo(); $q=$db->getQuery(true); $q->select('le_participant.*') ->from($db->quoteName('le_participant')) ->where($db->quoteName('pid') . ' = '. $db->quote($pid)); $db->setQuery($q); $ginfo = $db->loadAssoc(); return $ginfo; } function nb_tandem($gid,$pid,$sexe){ // vérifie le nombre de tandems avec un partenaire d'un certaine sexe pour un participant $db = JFactory::getDbo(); $q=$db->getQuery(true); $q->select('count(*) as nb_tandem') ->from($db->quoteName('le_inscription')) ->where( " gid=$gid AND type='tandem' AND ( pid1 = $pid AND pid2 IN (SELECT pid FROM le_participant WHERE gid=$gid AND sexe='$sexe' AND type='tandem') ) OR ( pid2 = $pid AND pid1 IN (SELECT pid FROM le_participant WHERE gid=$gid AND sexe='$sexe' AND type='tandem') ) " ); $db->setQuery($q); $ginfo = $db->loadAssoc(); return $ginfo['nb_tandem']; } function autorisation_nouveau_tandem($gid,$pid1,$pid2){ // vérifie si les pid1 et pid2 peuvent faire un nouveau tandem ? $p1=get_participant($pid1); $p2=get_participant($pid2); $nbp1=nb_tandem($gid,$pid1,$p2['sexe']); // nombre de tandem de p1 avec un partenaire du même sexe que p2 $nbp2=nb_tandem($gid,$pid2,$p1['sexe']); // nombre de tandem de p2 avec un partenaire du même sexe que p1 if($nbp1==0 && $nbp2==0){ return true; // p1 et p2 n'on pas déjà un tandem en cours avec un partenaire de ce sexe, inscription autorisée }else{ return false; // p1 ou p2 on déjà un tandem en cours, inscription interdite } } // ***************************** ACTIONS ***************************** // ETAPE 1 GESTION DES GROUPES // ETAPE 1.1 CREER UN GROUPE if($creer_groupe!=""){ // on a cliqué sur le bouton de création de groupe // creation d'un nouveau groupe // verification des informations minimales requises if($groupe!='' && $mdp!='' && $email!=''){ $gid=get_groupe_id($groupe,$mdp); // vérifier si le groupe n'existe pas déjà if($gid==0){ // le groupe n'existe pas if($valider_rgpd==''){ if($lang=='fr-FR'){ echo "L'acceptation des conditions de traitement des données du formulaire est nécessaire à la création de votre groupe et à la gestion des courses, veuillez s'il vous plait vous assurer de cocher la case d'acceptation dans le formulaire d'enregistrement."; }else{ echo "The process of the data collected by this form is requiered to register to this event, please ensure you checked the acceptation box in the form."; } }else{ if(filter_var($email, FILTER_VALIDATE_EMAIL)!=FALSE){ $pass_md5=md5($mdp); // crypter le mot de passe $query = $database->getQuery(true); // Préparer les colonnes $columns = array('groupe','mdp','responsable_prenom','responsable_nom','responsable_telephone','responsable_email','adresse_num','adresse_rue','adresse_cp','adresse_ville','adresse_pays', 'ts'); // Préparer les valeurs à ajouter $values = array($database->quote($groupe), $database->quote($pass_md5), $database->quote($prenom), $database->quote($nom), $database->quote($telephone), $database->quote($email), $database->quote($adresse_num), $database->quote($adresse_rue), $database->quote($adresse_cp), $database->quote($adresse_ville), $database->quote($adresse_pays), ' NOW() '); // Réaliser l'insertion dans la base de données $query ->insert($database->quoteName('le_groupe')) ->columns($database->quoteName($columns)) ->values(implode(',', $values)); // Executer la requête $database->setQuery($query); $database->execute(); $gid=get_groupe_id($groupe,$mdp); // récupérer l'identifiant du nouveau groupe créé $g=get_groupe_info($gid); if($lang=='fr-FR'){ echo "Groupe $groupe [$gid] créé !"; $titre = "[FCC37] Création de votre groupe ".$g['groupe']; $texte = "Bonjour,
Nous vous confirmons la création de votre groupe ".$g['groupe']."
Vous pouvez cliquer sur le lien ci-dessous pour gérer votre groupe:
http://www.firefighterteam37.com/index.php?option=com_content&view=article&id=19&connexion_groupe=connexion_groupe&gid=".$g['gid']."&mdp_md5=".$g['mdp']."
L'équipe du FireFighter Tours 37 "; }else{ echo "Team $groupe [$gid] created !"; $titre = "[FCC37] Team ".$g['groupe']." created"; $texte = "Hello,
Your Team ".$g['groupe']." was created on our website
You can update your team details using the link below:
http://www.firefighterteam37.com/index.php?option=com_content&view=article&id=19&connexion_groupe=connexion_groupe&gid=".$g['gid']."&mdp_md5=".$g['mdp']."
The FireFighter Tours 37 organisation team "; } @send_email($email,$titre,$texte); }else{ if($lang=='fr-FR'){ echo "Adresse email incorrecte ($email) !"; }else{ echo "Wrong email address ($email) !"; } } } } else{ // Attention groupe déjà existant, renvoyer le gid if($lang=='fr-FR'){ echo "Groupe déjà existant !"; }else{ echo "Team already existing !"; } } }else{ // Attention informations manquantes if($lang=='fr-FR'){ echo "Informations manquantes (nom du groupe + mot de passe + email requis au minimum)
"; }else{ echo "Missing informations (name of the team + password + contact email required)
"; } } $mode='creation'; } if($mdp_perdu!=""){ // on a cliqué sur le bouton de perte de mot de passe // envoyer un email avec le lien de connexion if($groupe!='' || $email!=''){ $db = JFactory::getDbo(); $q=$db->getQuery(true); $where=""; if($groupe!=''){ $where = "( ".$db->quoteName('groupe') . ' LIKE '. $db->quote($groupe). " ) "; } if($email!=''){ if($where!=''){ $where.= " OR "; } $where .= " responsable_email LIKE ".$db->quote($email); } $q->select('le_groupe.*') ->from('le_groupe') ->where($where) ->order('gid ASC'); $db->setQuery($q); $gp = $db->loadAssocList(); // liste ordonnée des groupe foreach ($gp as $key => $g) { // email titre text $email = $g['responsable_email']; if($lang=='fr-FR'){ $titre = "[FCC37] Mot de passe perdu pour ".$g['groupe']; $texte = "Bonjour,
Vous avez demandé la réinitialisation du mot de passe de connection pour le groupe ".$g['groupe']."
Veuillez cliquer sur le lien ci-dessous pour changer votre mot de passe:
http://www.firefighterteam37.com/index.php?option=com_content&view=article&id=19&connexion_groupe=connexion_groupe&gid=".$g['gid']."&mdp_md5=".$g['mdp']."
L'équipe du FireFighter Tours 37 "; echo "Demande de réinitialisationde mot de passe pour le groupe ".$g['groupe']."
"; }else{ $titre = "[FCC37] Lost password request Team ".$g['groupe']; $texte = "Hello,
You requested a link to fix a lost password for your Team : ".$g['groupe']."
Clic the link below to change your password:
http://www.firefighterteam37.com/index.php?option=com_content&view=article&id=19&connexion_groupe=connexion_groupe&gid=".$g['gid']."&mdp_md5=".$g['mdp']."
The FireFighter Tours 37 organisation team "; echo "Lost password request initiated for Team ".$g['groupe']."
"; } @send_email($email,$titre,$texte); } } $mode='creation'; $groupe=''; $gid!=''; } // ETAPE 1.2 SE CONNECTER A UN GROUPE if(($groupe!='' || $gid!='')){ // tentative de connexion a un groupe existant $gid_verif=verif_groupe_id($gid,$mdp,$mdp_md5); // tentative de connexion au groupe avec le mot de passe if($gid_verif!=$gid || $gid==0){ $gid=get_groupe_id($groupe,$mdp,$mdp_md5); // tentative de connexion au groupe avec le mot de passe } if($gid>0){ // groupe trouvé OK ! //echo "Groupe $groupe [$gid] trouvé !"; } else{ // erreur de connexion if($lang=='fr-FR'){ echo "Groupe non trouvé ou mot de passe erroné !"; }else{ echo "Unknown Team or Wrong password !"; } } } // ETAPE 1.3 MODIFIER UN GROUPE // GESTION DES DROITS D'ACCES SUR LE GROUPE // vérifier si le groupe sélectionné est en mode payement ou création ou admin $ginfo = @get_groupe_info($gid); // vérifier si le user est un admin ? $user = JFactory::getUser(); $groups = $user->get('groups'); foreach ($groups as $group){if($group==8){ $mode='admin'; // nombre max d'inscriptions forcage admin $nb_max_indiv=1250; $nb_max_tandem=1050; $nb_max_relai=1040; }} if($mode!='admin'){ if(@$ginfo=='' || @$ginfo['compta']==""){ // mode creation $mode='creation'; }else{ $etat_compta=$ginfo['compta']; // mode consultation $mode='consultation'; } } if($mode!='consultation' && $modifier_groupe!="" && $gid>0 && $groupe!='' && ($mdp_md5!="" || $mdp!="")){ // modification d'un groupe $query = $database->getQuery(true); if($mdp!=""){ // changement de mot de passe $mdp_md5=md5($mdp); } // sinon le mot de passe actuel est conserve if(filter_var($email, FILTER_VALIDATE_EMAIL)!=FALSE){ $p = new stdClass(); // modifie un groupe avec les nouvelles valeurs $p->gid = $gid; $p->groupe = $groupe; $p->mdp = $mdp_md5; $p->responsable_prenom = $prenom; $p->responsable_nom = $nom; $p->responsable_telephone = $telephone; $p->responsable_email = $email; $p->adresse_num = $adresse_num; $p->adresse_rue = $adresse_rue; $p->adresse_cp = $adresse_cp; $p->adresse_ville = $adresse_ville; $p->adresse_pays = $adresse_pays; // mise à jour en utilisant gid comme clé primaire. $result = JFactory::getDbo()->updateObject('le_groupe', $p, 'gid'); if($lang=='fr-FR'){ echo "Groupe $groupe modifié !"; }else{ echo "Team $groupe updated !"; } }else{ if($lang=='fr-FR'){ echo "Adresse email invalide ($email) !"; }else{ echo "Wrong email address ($email) !"; } } } // ETAPE 1.4 ENVOYER LE FORMULAIRE D'INSCRIPION DE GROUPE (passage en mode consultation) if($valider_inscription!="" && $gid>0 && ($mdp!="" || $mdp_md5!="") && $tarif>0){ // verification de securite pour la finalisation de l'inscription // validation du tarif $gid_verif = get_groupe_id($groupe,$mdp,$mdp_md5); if($gid_verif!=$gid){ // erreur de groupe ! echo "Erreur de mot de passe de groupe !"; }else{ // ok bon groupe // vérification du tarif $verif_tarif = md5("FCC37_".$tarif); if($verif_tarif!=$enc_tarif){ // erreur de tarif if($lang=='fr-FR'){ echo "Erreur de validation de tarif !"; }else{ echo "Error validating the rate !"; } }else{ // tarif valide // passer la commande en mode en attente de paiement $query = $database->getQuery(true); $p = new stdClass(); $p->gid = $gid; $p->tarif = $tarif; $p->compta = 'en attente de paiement'; $result = JFactory::getDbo()->updateObject('le_groupe', $p, 'gid'); if($lang=='fr-FR'){ echo "L'inscription de votre team a bien été enregistrée.
Votre inscription sera validée à réception du payement ($tarif €)."; }else{ echo "Your team was registered.
This registration will be fully validated once payement received ($tarif €)."; } // envoyer l'email d'information $ginfo=get_groupe_info($gid); $email = $ginfo['responsable_email']; $groupe = $ginfo['groupe']; $currentTime = new JDate('now'); $url = "http://www.firefighterteam37.com?option=com_content&view=article&id=19&connexion_groupe=connexion_groupe&gid=".$ginfo['gid']."&mdp_md5=".$ginfo['mdp']; if($lang=='fr-FR'){ $titre="[FCC37] Inscription envoyée pour le groupe ".$groupe; $texte = " Bonjour,
Nous vous confirmons la demande d'inscription du groupe ".$groupe." au FireFighter Tours les 1 et 2 octobre 2022 à Tours.
Vous pouvez consulter l'état de votre dossier d'inscription en cliquant sur le lien suivant:
".$groupe."
Votre dossier sera validé à réception de votre paiement par virement bancaire (RIB PDF).
L'équipe du FireFighter Tours 37
FireFighter Team 37
Formulaire d'inscription reçu le ".$currentTime." "; }else{ $titre="[FCC37] Registration sent for Team ".$groupe; $texte = " Hello,
The registration of the Team ".$groupe." to the FireFighter Tours (1-2 october 2022 in Tours) was sent.
You can check your team registration status using the link below:
".$groupe."
Your registration will be validated once the paiement received (please use bank wire transfer (RIB PDF)).
The FireFighter Tours 37 organising team
FireFighter Team 37
Registration sent on ".$currentTime." "; } @send_email($email,$titre,$texte,true); } } } // ETAPE 1.5 VALIDATION DE L'INSCRIPION DE GROUPE (paiement validé) if($mode=='admin' && $valider_paiement!="" && $gid>0 && ($mdp!="" || $mdp_md5!="")){ // validation du paiement par un admin $gid_verif = get_groupe_id($groupe,$mdp,$mdp_md5); if($gid_verif!=$gid){ // erreur de groupe ! if($lang=='fr-FR'){ echo "Erreur de mot de passe de groupe !"; }else{ echo "Wrong Team password !"; } }else{ // ok bon groupe // tarif valide // passer la commande en mode en paiement validé $query = $database->getQuery(true); $p = new stdClass(); $p->gid = $gid; $p->compta = 'paiement validé'; $result = JFactory::getDbo()->updateObject('le_groupe', $p, 'gid'); if($lang=='fr-FR'){ echo "Paiement FCC37_".sprintf('%04d',$gid)." validé."; }else{ echo "Payement FCC37_".sprintf('%04d',$gid)." validated."; } // envoyer l'email d'information $ginfo=get_groupe_info($gid); $email = $ginfo['responsable_email']; $groupe = $ginfo['groupe']; $currentTime = new JDate('now'); $url = "http://www.firefighterteam37.com?option=com_content&view=article&id=19&connexion_groupe=connexion_groupe&gid=".$ginfo['gid']."&mdp_md5=".$ginfo['mdp']; if($lang=='fr-FR'){ $titre="[FCC37] Inscription validée pour le groupe ".$groupe; $texte = " Bonjour,
Nous vous confirmons la bonne réception du paiement de l'inscription de votre groupe ".$groupe." au FireFighter Tours les 1 et 2 octobre 2022 à Tours.
Vous pouvez consulter l'état de votre dossier d'inscription en cliquant sur le lien suivant:
".$groupe."
A très bientôt.
L'équipe du FireFighter Tours 37
FireFighter Team 37
Inscription validée le ".$currentTime." "; }else{ $titre="[FCC37] Registration validated for Team ".$groupe; $texte = " Hello,
We just validated the payement for Team ".$groupe." to the FireFighter Tours (1-2 october 2022 in Tours).
You can check your registration status using the following link:
".$groupe."
See you very soon.
The FireFighter Tours 37 organising team
FireFighter Team 37
Registration validated on ".$currentTime." "; } @send_email($email,$titre,$texte,true); } } // ETAPE 1.6 MODIFICATION DE L'INSCRIPION DE GROUPE (passage en mode création / dossier incomplet) if($mode=='admin' && $refuser_paiement!="" && $gid>0 && ($mdp!="" || $mdp_md5!="")){ // invalidation du paiement par un admin $gid_verif = get_groupe_id($groupe,$mdp,$mdp_md5); if($gid_verif!=$gid){ // erreur de groupe ! if($lang=='fr-FR'){ echo "Erreur de mot de passe de groupe !"; }else{ echo "Wrong team password !"; } }else{ // ok bon groupe // tarif valide // re-passer la commande en mode creation (non envoyé) $query = $database->getQuery(true); $p = new stdClass(); $p->gid = $gid; $p->compta = ''; $result = JFactory::getDbo()->updateObject('le_groupe', $p, 'gid'); if($lang=='fr-FR'){ echo "Dossier d'inscription FCC37_".sprintf('%04d',$gid)." non validé."; }else{ echo "Registration FCC37_".sprintf('%04d',$gid)." discarded."; } // envoyer l'email d'information $ginfo=get_groupe_info($gid); $email = $ginfo['responsable_email']; $groupe = $ginfo['groupe']; $currentTime = new JDate('now'); $url = "http://www.firefighterteam37.com?option=com_content&view=article&id=19&connexion_groupe=connexion_groupe&gid=".$ginfo['gid']."&mdp_md5=".$ginfo['mdp']; if($lang=='fr-FR'){ $titre="[FCC37] Dossier d'inscription modifié pour le groupe ".$groupe; $texte = " Bonjour,
L'inscription de votre groupe ".$groupe." au FireFighter Tours les 1 et 2 octobre 2022 à Tours a été modifiée.
Votre dossier est désormais en mode création, vous pouvez modifier votre dossier d'inscription en cliquant sur le lien suivant:
".$groupe."
Pensez à valider votre inscription une fois votre dossier complet.
L'équipe du FireFighter Tours 37
FireFighter Team 37
Inscription modifiée le ".$currentTime." "; }else{ $titre="[FCC37] Registration updated for Team ".$groupe; $texte = " Hello,
The registration for the Team ".$groupe." to the FireFighter Tours (1-2 october 2022 in Tours) was updated.
Please check your Team registration status using the following link:
".$groupe."
Please validate your registration form once fullfiled.
The FireFighter Tours 37 organising team
FireFighter Team 37
Registration updated on ".$currentTime." "; } @send_email($email,$titre,$texte,true); } } // ETAPE 1.7 SUPPRESSION DE GROUPE if($mode=='admin' && $supprimer_groupe!="" && $gid>0 && ($mdp!="" || $mdp_md5!="")){ // invalidation du paiement par un admin $gid_verif = get_groupe_id($groupe,$mdp,$mdp_md5); if($gid_verif!=$gid){ // erreur de groupe ! if($lang=='fr-FR'){ echo "Erreur de mot de passe de groupe !"; }else{ echo "Wrong team password !"; } }else{ // ok bon groupe // envoyer l'email d'information $ginfo=get_groupe_info($gid); $email = $ginfo['responsable_email']; $groupe = $ginfo['groupe']; $currentTime = new JDate('now'); $url = "http://www.firefighterteam37.com"; // 1 supprimer les courses $query = $db->getQuery(true); $conditions = $db->quoteName('gid') . ' = ' . $gid; $query->delete($db->quoteName('le_inscription')); $query->where($conditions); $db->setQuery($query); $result = $db->execute(); // 2 supprimer les participants $query = $db->getQuery(true); $query->delete($db->quoteName('le_participant')); $query->where($conditions); $db->setQuery($query); $result = $db->execute(); // 3 supprimer le groupe $query = $db->getQuery(true); $query->delete($db->quoteName('le_groupe')); $query->where($conditions); $db->setQuery($query); $result = $db->execute(); if($lang=='fr-FR'){ echo "Groupe FCC37_".sprintf('%04d',$gid)." supprimé."; }else{ echo "Team FCC37_".sprintf('%04d',$gid)." deleted."; } if($lang=='fr-FR'){ $titre="[FCC37] Groupe ".$groupe." supprimé"; $texte = " Bonjour,
L'inscription de votre groupe ".$groupe." au FireFighter Tours les 1 et 2 octobre 2022 à Tours a été supprimée.
L'équipe du FireFighter Tours 37
FireFighter Team 37
Inscription supprimée le ".$currentTime." "; }else{ $titre="[FCC37] Team ".$groupe." deleted"; $texte = " Hello,
The registration for the Team ".$groupe." to the FireFighter Tours (1-2 october 2022 in Tours) was deleted.
The FireFighter Tours 37 organising team
FireFighter Team 37
Registration updated on ".$currentTime." "; } @send_email($email,$titre,$texte,true); } $gid=0; } // ETAPE 2 GESTION DES PARTICIPANTS // ETAPE 2.1 AJOUTER PARTICIPANT // ajouter un participant ou directement créer le team leader comme participant if($mode!='consultation' && ($ajouter_participant!="" || $creer_groupe!="") && $gid>0){ // ajout d'un participant $query = $database->getQuery(true); // Préparer les colonnes $columns = array('gid','prenom','nom','sexe','date_naissance', 'telephone','email','adresse_num','adresse_rue','adresse_cp','adresse_ville','adresse_pays','taille_tshirt','ts','tref_minutes','tref_secondes','repas'); // calculer la date de naissance yyyy-mm-dd $date_naissance = $dn_annee."-".$dn_mois."-".$dn_jour; // Préparer les valeurs à ajouter $values = array($database->quote($gid), $database->quote($prenom), $database->quote($nom), $database->quote($sexe), $database->quote($date_naissance), $database->quote($telephone), $database->quote($email), $database->quote($adresse_num), $database->quote($adresse_rue), $database->quote($adresse_cp), $database->quote($adresse_ville), $database->quote($adresse_pays), $database->quote($tshirt), ' NOW() ', $database->quote($tref_minutes),$database->quote($tref_secondes),$database->quote($repas)); // Réaliser l'insertion dans la base de données $query ->insert($database->quoteName('le_participant')) ->columns($database->quoteName($columns)) ->values(implode(',', $values)); // Executer la requête $database->setQuery($query); $database->execute(); if($lang=='fr-FR'){ echo "Participant $prenom $nom ajouté au groupe $groupe !"; }else{ echo "User $prenom $nom added to Team $groupe !"; } } // ETAPE 2.2 SELECTIONNER PARTICIPANT if($mode!='consultation' && $selectionner_participant!="" && $gid>0 && $pid>0){ // selection des informations d'un participant $db = JFactory::getDbo(); $q=$db->getQuery(true); $q->select('le_participant.*') ->from($db->quoteName('le_participant')) ->where($db->quoteName('pid') . ' = '. $db->quote($pid)) ->order('pid ASC'); $db->setQuery($q); $pinfo = $db->loadAssoc(); $pid=$pinfo['pid']; // clee primaire utilisee pour modifier le participant $gid=$pinfo['gid']; $prenom=$pinfo['prenom']; $nom=$pinfo['nom']; $sexe=$pinfo['sexe']; $telephone=$pinfo['telephone']; $email=$pinfo['email']; $adresse_num=$pinfo['adresse_num']; $adresse_rue=$pinfo['adresse_rue']; $adresse_cp=$pinfo['adresse_cp']; $adresse_ville=$pinfo['adresse_ville']; $adresse_pays=$pinfo['adresse_pays']; $tshirt=$pinfo['taille_tshirt']; $tref_minutes=$pinfo['tref_minutes']; $tref_secondes=$pinfo['tref_secondes']; $repas=$pinfo['repas']; // date naissance à decouper en 3 morceaux $pdate = explode('-',$pinfo['date_naissance']); $dn_jour=$pdate[2]; $dn_mois=$pdate[1]; $dn_annee=$pdate[0]; if($lang=='fr-FR'){ echo "Participant $prenom $nom sélectionné !"; }else{ echo "User $prenom $nom selected !"; } } // ETAPE 2.3 MODIFIER PARTICIPANT if($mode!='consultation' && $modifier_participant!="" && $gid>0 && $pid>0){ // modification d'un participant $query = $database->getQuery(true); // calculer la date de naissance yyyy-mm-dd $date_naissance = $dn_annee."-".$dn_mois."-".$dn_jour; $p = new stdClass(); // cree un participant avec les nouvelles valeurs $p->pid = $pid; // clee primaire utilisee pour modifier le participant $p->gid = $gid; $p->prenom = $prenom; $p->nom = $nom; $p->sexe = $sexe; $p->date_naissance = $date_naissance; $p->telephone = $telephone; $p->email = $email; $p->adresse_num = $adresse_num; $p->adresse_rue = $adresse_rue; $p->adresse_cp = $adresse_cp; $p->adresse_ville = $adresse_ville; $p->adresse_pays = $adresse_pays; $p->taille_tshirt = $tshirt; $p->tref_minutes = $tref_minutes; $p->tref_secondes = $tref_secondes; $p->repas = $repas; // Update their details in the users table using id as the primary key. $result = JFactory::getDbo()->updateObject('le_participant', $p, 'pid'); if($lang=='fr-FR'){ echo "Participant $prenom $nom modifié !"; }else{ echo "User $prenom $nom updated !"; } } // ETAPE 2.4 SUPPRIMER PARTICIPANT if($mode!='consultation' && $supprimer_participant!="" && $pid>0){ // suppression d'un participant $db = JFactory::getDbo(); $query = $db->getQuery(true); // delete all custom keys for user 1001. $conditions = array($db->quoteName('pid') . ' = ' . $pid); $query->delete($db->quoteName('le_participant')); $query->where($conditions); $db->setQuery($query); $result = $db->execute(); // supprimer aussi toutes les courses ou il était inscrit $query = $db->getQuery(true); $conditions = $db->quoteName('pid1') . ' = ' . $pid. " OR ". $db->quoteName('pid2') . ' = ' . $pid. " OR ". $db->quoteName('pid3') . ' = ' . $pid. " OR ". $db->quoteName('pid4') . ' = ' . $pid. " OR ". $db->quoteName('pid5') . ' = ' . $pid ; $query->delete($db->quoteName('le_inscription')); $query->where($conditions); $db->setQuery($query); $result = $db->execute(); if($lang=='fr-FR'){ echo "Participant $pid supprimé !"; }else{ echo "User $pid deleted !"; } } // ETAPE 3 GESTION DES COURSES // ETAPE 3.1 AJOUTER UNE COURSE // ETAPE 3.1.1 AJOUTER UNE COURSE INDIVIDUELLE if($mode!='consultation' && $ajouter_individuel!="" && $gid>0 && $pid1>0){ // ajout d'une participation individuelle // vérification du nombre de places restantes if($nb_individuel_restant>0){ $inscription = new stdClass(); $inscription->gid=$gid; $inscription->type='individuel'; $inscription->pid1=$pid1; $result = JFactory::getDbo()->insertObject('le_inscription', $inscription); if($lang=='fr-FR'){ echo "Inscription individuelle du participant $pid1 ajoutée !"; }else{ echo "User $pid1 individual registration added !"; } }else{ if($lang=='fr-FR'){ echo "Inscription individuelle du participant $pid1 refusée (nombre maximum d'inscriptions atteint) !"; }else{ echo "User $pid1 individual registration rejected (maximum registration reached) !"; } } } // ETAPE 3.1.2 AJOUTER UNE COURSE EN TANDEM if($mode!='consultation' && $ajouter_tandem!="" && $gid>0 && $pid1>0 && $pid2>0 && $pid1!=$pid2){ // ajout d'une participation tandem // vérification le pid1 peut il participer ? $ok = autorisation_nouveau_tandem($gid,$pid1,$pid2) && autorisation_nouveau_tandem($gid,$pid2,$pid1); // verification, le pid2 peut il participer ? if($nb_tandem_restant>0){ if($ok){ $inscription = new stdClass(); $inscription->gid=$gid; $inscription->type='tandem'; $inscription->pid1=$pid1; $inscription->pid2=$pid2; $inscription->equipe=$nom_tandem; $result = JFactory::getDbo()->insertObject('le_inscription', $inscription); if($lang=='fr-FR'){ echo "Inscription tandem des participants $pid1 et $pid2 ajoutée !"; }else{ echo "Tandem registration for users $pid1 and $pid2 added !"; } }else{ if($lang=='fr-FR'){ echo "Inscription tandem des participants $pid1 et $pid2 interdite (un seul tandem par participant) !"; }else{ echo "Tandem registration for users $pid1 and $pid2 forbidden (only one tandem per user) !"; } } }else{ if($lang=='fr-FR'){ echo "Inscription tandem des participants $pid1 et $pid2 refusée (nombre maximum d'inscriptions atteint) !"; }else{ echo "Tandem registration for users $pid1 and $pid2 rejected (maximum registration reached) !"; } } } // ETAPE 3.1.3 AJOUTER UNE COURSE EN RELAI if($mode!='consultation' && $ajouter_relai!="" && $gid>0 && $pid1>0 && $pid2>0 && $pid3>0 && $pid1!=$pid2 && $pid1!=$pid3 && ($pid1!=$pid4 || $pid4=='') && ($pid1!=$pid5 || $pid5=='') && $pid2!=$pid3 && ($pid2!=$pid4 || $pid4=='') && ($pid2!=$pid5 || $pid5=='') && ($pid3!=$pid4 || $pid4=='') && ($pid3!=$pid5 || $pid5=='') && ($pid4!=$pid5 || $pid5=='') ){ // ajout d'une participation relai if($nb_relai_restant>0){ $inscription = new stdClass(); $inscription->gid=$gid; $inscription->type='relai'; $inscription->pid1=$pid1; $inscription->pid2=$pid2; $inscription->pid3=$pid3; $inscription->pid4=$pid4; $inscription->pid5=$pid5; $inscription->equipe=$nom_relai; $result = JFactory::getDbo()->insertObject('le_inscription', $inscription); if($lang=='fr-FR'){ echo "Inscription relai ajoutée !"; }else{ echo "Relay registration added !"; } }else{ if($lang=='fr-FR'){ echo "Inscription relai des participants refusée (nombre maximum d'inscriptions atteint) !"; }else{ echo "Relay registration rejected (maximum registration reached) !"; } } } // ETAPE 3.2 SUPPRIMER UNE COURSE if($mode!='consultation' && $iid>0 && $gid>0){ // suppression d'une inscription $db = JFactory::getDbo(); $query = $db->getQuery(true); $conditions = array($db->quoteName('iid') . ' = ' . $iid); $query->delete($db->quoteName('le_inscription')); $query->where($conditions); $db->setQuery($query); $result = $db->execute(); if($lang=='fr-FR'){ echo "Inscription $iid supprimée !"; }else{ echo "Registration $iid deleted !"; } } // ***************************** AFFICHAGES ***************************** // VARIABLES D'AFFICHAGES COMMUNES AUX FORMULAIRES (Sexe, Tshirt, Jours) $sel_sexe="
"; }else{ $sel_sexe.="MF"; } /* modif pas de repas cette annee if($lang=='fr-FR'){ $sel_repas="
"; }else{ $sel_repas.="OuiNon"; } }else{ $sel_repas="
"; }else{ $sel_repas.="YesNo"; } } */ $sel_repas="Pas de repas cette année"; $sel_tshirt="
"; $sel_jour="
"; $sel_mois="
"; $sel_annee="
"; $sel_tref_minutes="
"; $sel_tref_secondes="
"; // AFFICHAGE 1 : FORMULAIRE DE CREATION DE GROUPE OU DE CONNEXION if($gid==0){ if($lang=='fr-FR'){ if($mode=='admin'){ echo "
Tarifs | Nombre de places restantes | Nombre de places totales | |
---|---|---|---|
Individuel | ".$cout_indiv." € | ".nb_participants_restant('individuel',$nb_max_indiv,$nb_max_tandem,$nb_max_relai)." | ".$nb_max_indiv." |
Tandem | ".$cout_tandem." € | ".nb_participants_restant('tandem',$nb_max_indiv,$nb_max_tandem,$nb_max_relai)." | ".$nb_max_tandem." |
Relai | ".$cout_relai." € | ".nb_participants_restant('relai',$nb_max_indiv,$nb_max_tandem,$nb_max_relai)." | ".$nb_max_relai." |
Pack spécial équipe (1 relai + 5 individuels) |
".$cout_pack_equipe." € | Ouverture des inscriptions du ".strftime('%d/%m/%Y %T',$ouverture)." au ".strftime('%d/%m/%Y %T',$fermeture)." Les inscriptions non réglées sous une semaine seront annulées |
|
Repas | Pas de repas cette année |
"; }else{ echo "
Tarifs | Nombre de places totales | |
---|---|---|
Individuel | ".$cout_indiv." € | ".$nb_max_indiv." |
Tandem | ".$cout_tandem." € | ".$nb_max_tandem." |
Relai | ".$cout_relai." € | ".$nb_max_relai." |
Pack spécial équipe (1 relai + 5 individuels) |
".$cout_pack_equipe." € | Ouverture des inscriptions du ".strftime('%d/%m/%Y %T',$ouverture)." au ".strftime('%d/%m/%Y %T',$fermeture)." Les inscriptions non réglées sous une semaine seront annulées |
Repas | Pas de repas cette année |
"; } echo "
"; }else{ if($mode=='admin'){ echo "
Rates | Remaining racings | Total racings | |
---|---|---|---|
Individual | ".$cout_indiv." € | ".nb_participants_restant('individuel',$nb_max_indiv,$nb_max_tandem,$nb_max_relai)." | ".$nb_max_indiv." |
Tandem | ".$cout_tandem." € | ".nb_participants_restant('tandem',$nb_max_indiv,$nb_max_tandem,$nb_max_relai)." | ".$nb_max_tandem." |
Relay | ".$cout_relai." € | ".nb_participants_restant('relai',$nb_max_indiv,$nb_max_tandem,$nb_max_relai)." | ".$nb_max_relai." |
Special Team Pack (1 relay + 5 individuals) |
".$cout_pack_equipe." € | Registration opening date : ".strftime('%d/%m/%Y %T',$ouverture)." Payement must be sent within one week (unpaid registrations will be discarded) |
|
Meal | No meal this year |
"; }else{ echo "
Rates | Total racings | |
---|---|---|
Individual | ".$cout_indiv." € | ".$nb_max_indiv." |
Tandem | ".$cout_tandem." € | ".$nb_max_tandem." |
Relay | ".$cout_relai." € | ".$nb_max_relai." |
Special Team Pack (1 relay + 5 individuals) |
".$cout_pack_equipe." € | Registration opening date : ".strftime('%d/%m/%Y %T',$ouverture)." Payement must be sent within one week (unpaid registrations will be discarded) |
Meal | No meal this year |
"; } echo "
"; } } // AFFICHAGE 2 : GROUPE SELECTIONNE, affichage mode groupe function nb_repas($gid){ // recupere les informations des participants du groupe $db = JFactory::getDbo(); $q=$db->getQuery(true); $q->select('(0+sum(repas)) as nb_repas') ->from($db->quoteName('le_participant')) ->where($db->quoteName('gid') . ' = '. $db->quote($gid)); $db->setQuery($q); $gp = $db->loadAssoc(); // liste ordonnée des participants return $gp['nb_repas']; } function liste_participants($gid,$pid){ // liste des participants de la team // recupere les informations des participants du groupe $db = JFactory::getDbo(); $q=$db->getQuery(true); $q->select('le_participant.*') ->from($db->quoteName('le_participant')) ->where($db->quoteName('gid') . ' = '. $db->quote($gid)) ->order('pid ASC'); $db->setQuery($q); $gp = $db->loadAssocList(); // liste ordonnée des participants $liste_part=""; foreach ($gp as $key => $p) { if($pid==$p['pid']){ $selected=" selected "; }else{ $selected=""; } $liste_part.="".$p['nom']." ".$p['prenom'].""; } return $liste_part; } function tableau_participants($gid,$mdp_md5){ // liste des participants de la team // recupere les informations des participants du groupe $db = JFactory::getDbo(); $q=$db->getQuery(true); $q->select('le_participant.*') ->from($db->quoteName('le_participant')) ->where($db->quoteName('gid') . ' = '. $db->quote($gid)) ->order('pid ASC'); $db->setQuery($q); $gp = $db->loadAssocList(); // liste ordonnée des participants $lang = JFactory::getLanguage()->getTag(); if($lang=='fr-FR'){ $tableau_participants=" "; }else{ $tableau_participants="
N° | Nom | Prénom | S | Age | Téléphone | Adresse | T | R | Ref | Modif | Inscriptions |
---|
"; } foreach ($gp as $key => $p) { // rechercher ses inscriptions à des courses $q=$db->getQuery(true); $q->select('le_inscription.*') ->from($db->quoteName('le_inscription')) ->where($db->quoteName('pid1') . ' = '. $db->quote($p['pid']) . " OR " . $db->quoteName('pid2') . ' = '. $db->quote($p['pid']) . " OR " . $db->quoteName('pid3') . ' = '. $db->quote($p['pid']) . " OR " . $db->quoteName('pid4') . ' = '. $db->quote($p['pid']) . " OR " . $db->quoteName('pid5') . ' = '. $db->quote($p['pid']) ) ->order('iid ASC'); $db->setQuery($q); $pi = $db->loadAssocList(); // liste ordonnée des participants $liste_insc="";// variable contant la liste de ses inscriptions foreach ($pi as $ikey => $insc) { $liste_insc.=" "; if($insc['type']=='individuel'){ $liste_insc.=""; } if($insc['type']=='relai'){ $liste_insc.=""; } if($insc['type']=='tandem'){ $liste_insc.=""; } $liste_insc.=""; } $tableau_participants.= ""; } $tableau_participants.="
N° | Last name | First name | S | Age | Phone | Address | T | R | Ref | Updated | Registrations | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
".$p['nom']." | ".$p['prenom']." | ".$p['sexe']." | ".$p['date_naissance']." (".$p['age'].") | ".$p['telephone']." | ".$p['email']." | ".$p['adresse_num']." ".$p['adresse_rue']." ".$p['adresse_cp']." ".$p['adresse_ville']." ".$p['adresse_pays']." | ".$p['taille_tshirt']." | ".$p['repas']." | ".$p['tref_minutes'].":".$p['tref_secondes']." | ".$p['ts']." | ".$liste_insc." |
"; return $tableau_participants; } if($gid>0){ // groupe connecté, mode gestion des participants $ginfo = get_groupe_info($gid); $groupe = $ginfo['groupe']; $mdp_md5=$ginfo['mdp']; if($lang=='fr-FR'){ echo "
Bienvenue ".$ginfo['responsable_prenom'].", Team Leader du groupe ".$ginfo['groupe']." (FCC37_".sprintf('%04d',$gid).") en mode ".$mode; echo " ".strftime('%d/%m/%Y %T'); if($mode=='admin'){ echo "
Il reste ".nb_participants_restant('individuel',$nb_max_indiv,$nb_max_tandem,$nb_max_relai)."/".$nb_max_indiv." places individuelles, ". nb_participants_restant('tandem',$nb_max_indiv,$nb_max_tandem,$nb_max_relai)."/".$nb_max_tandem." tandems, ". nb_participants_restant('relai',$nb_max_indiv,$nb_max_tandem,$nb_max_relai)."/".$nb_max_relai." relais."; } }else{ echo "
Welcome ".$ginfo['responsable_prenom'].", Team Leader of ".$ginfo['groupe']." (FCC37_".sprintf('%04d',$gid).") mode ".$mode; echo " ".strftime('%d/%m/%Y %T'); if($mode=='admin'){ echo "
".nb_participants_restant('individuel',$nb_max_indiv,$nb_max_tandem,$nb_max_relai)."/".$nb_max_indiv." individuals, ". nb_participants_restant('tandem',$nb_max_indiv,$nb_max_tandem,$nb_max_relai)."/".$nb_max_tandem." tandems, ". nb_participants_restant('relai',$nb_max_indiv,$nb_max_tandem,$nb_max_relai)."/".$nb_max_relai." relays registrations remaining."; } } $tableau_participants = tableau_participants($gid, $mdp_md5); // liste des participants if($lang=='fr-FR'){ $sel_part="
"; }else{ $sel_part="
"; } if($lang=='fr-FR'){ $frm_gestion_groupe = "
"; // formulaire d'ajout de participants $frm_gestion_participants = "
"; }else{ $frm_gestion_groupe = "
"; // formulaire d'ajout de participants $frm_gestion_participants = "
"; } // listing des inscriptions de la team et calcul des couts $q=$db->getQuery(true); $q->select('le_inscription.*') ->from($db->quoteName('le_inscription')) ->where($db->quoteName('gid') . ' = '. $db->quote($gid)) ->order('type, iid'); $db->setQuery($q); $pi = $db->loadAssocList(); // liste ordonnée des inscriptions if($lang=='fr-FR'){ $tableau_courses = " "; }else{ $tableau_courses = "
Type de course | Nom équipe | Participants |
---|
"; } $nb_indiv=0; $nb_tandem=0; $nb_relai=0; foreach ($pi as $ikey => $insc) { $liste_insc=" "; if($insc['type']=='individuel'){ $liste_insc.=""; $nom_eq='Indiv '.$insc['iid']; $nom_part = get_nom_participant($insc['pid1']); $nb_indiv++; } if($insc['type']=='tandem'){ $liste_insc.=""; if($insc['equipe']!=""){ $nom_eq=$insc['equipe']; }else{ $nom_eq='Tandem '.$insc['iid']; } $nom_part = get_nom_participant($insc['pid1'])." / ".get_nom_participant($insc['pid2']); $nb_tandem++; } if($insc['type']=='relai'){ $liste_insc.=""; if($insc['equipe']!=""){ $nom_eq=$insc['equipe']; }else{ $nom_eq='Relai '.$insc['iid']; } $nom_part = get_nom_participant($insc['pid1'])." / ".get_nom_participant($insc['pid2'])." / ".get_nom_participant($insc['pid3'])." / ".get_nom_participant($insc['pid4'])." / ".get_nom_participant($insc['pid5']); $nb_relai++; } $liste_insc.=""; $tableau_courses.= ""; } if($lang=='fr-FR'){ $tableau_courses.= "
Race type | Race team name | Registered users |
---|---|---|
".$liste_insc." | ".$nom_eq." | ".$nom_part." |
Cliquez sur le bouton gris de la course pour la supprimer.
"; }else{ $tableau_courses.= "
Click the gray buttons to delete race registration.
"; } // calcul du tarif $nb_repas=nb_repas($gid); $total_sans_pack=(($nb_repas*$cout_repas)+($cout_indiv*$nb_indiv)+($cout_tandem*$nb_tandem)+($cout_relai*$nb_relai)); // gestion des packs équipes $total_min_avec_pack=$total_sans_pack; $nb_pack_equipe=0; $nb_indiv_restant=$nb_indiv; $nb_tandem_restant=$nb_tandem; $nb_relai_restant=$nb_relai; $quota_indiv_ajoutable=0; for($pack_relai=1;$pack_relai<=$nb_relai;$pack_relai++){ // on tente d'ajouter un pack pour chaque relai $nb_relai_restant=$nb_relai-(1*$pack_relai); $nb_indiv_restant=$nb_indiv-(5*$pack_relai); $nb_tandem_restant=$nb_tandem-(0*$pack_relai); if($nb_indiv_restant<0){ $nb_indiv_restant=0; }else{ $quota_indiv_ajoutable=0; } if($nb_tandem_restant<0){ $nb_tandem_restant=0;} if($nb_relai_restant<0){ $nb_relai_restant=0;} $total_avec_pack=($nb_repas*$cout_repas)+($pack_relai*$cout_pack_equipe)+($cout_indiv*$nb_indiv_restant)+($cout_tandem*$nb_tandem_restant)+($cout_relai*$nb_relai_restant); if($total_avec_pack<=$total_min_avec_pack){ // meilleure solution trouvée $total_min_avec_pack=$total_avec_pack; $nb_pack_equipe=$pack_relai; $quota_indiv_ajoutable=abs($nb_indiv-(5*$pack_relai)); } } if($lang=='fr-FR'){ $liste_detail_nb_courses=""; $liste_detail_nb_courses.= "Nombre de repas : $nb_repas * $cout_repas € = ".($cout_repas*$nb_repas)." €
"; $liste_detail_nb_courses.= "Nombre de courses individuelles : $nb_indiv * $cout_indiv € = ".($cout_indiv*$nb_indiv)." €
"; $liste_detail_nb_courses.= "Nombre de tandems : $nb_tandem * $cout_tandem € = ".($cout_tandem*$nb_tandem)." €
"; $liste_detail_nb_courses.= "Nombre de relais : $nb_relai * $cout_relai € = ".($cout_relai*$nb_relai)." €
"; $liste_detail_nb_courses.= "Nombre de pack spécial équipe (1 relai + 5 individuels) : $nb_pack_equipe * $cout_pack_equipe € = ".($nb_pack_equipe*$cout_pack_equipe)." €
"; $liste_detail_nb_courses.= "Total sans pack spécial équipe : ".$total_sans_pack." €
"; if($nb_pack_equipe>0){ $liste_detail_nb_courses.= "Total à payer avec $nb_pack_equipe pack(s) spécial équipe : ".$total_min_avec_pack." €
"; if($quota_indiv_ajoutable>0){ $liste_detail_nb_courses.= "pour le même prix vous pouvez encore ajouter ".$quota_indiv_ajoutable." course(s) individuelle(s) !
"; } }else{ $liste_detail_nb_courses.= "Total à payer : ".$total_sans_pack." €
"; } }else{ $liste_detail_nb_courses=""; $liste_detail_nb_courses.= "Number of Meals : $nb_repas * $cout_repas € = ".($cout_repas*$nb_repas)." €
"; $liste_detail_nb_courses.= "Number of individual races : $nb_indiv * $cout_indiv € = ".($cout_indiv*$nb_indiv)." €
"; $liste_detail_nb_courses.= "Number of tandem races : $nb_tandem * $cout_tandem € = ".($cout_tandem*$nb_tandem)." €
"; $liste_detail_nb_courses.= "Number of relay races : $nb_relai * $cout_relai € = ".($cout_relai*$nb_relai)." €
"; $liste_detail_nb_courses.= "Nombre Special Team Packs (1 relay + 5 individuals) : $nb_pack_equipe * $cout_pack_equipe € = ".($nb_pack_equipe*$cout_pack_equipe)." €
"; $liste_detail_nb_courses.= "Total without special team pack : ".$total_sans_pack." €
"; if($nb_pack_equipe>0){ $liste_detail_nb_courses.= "Total to pay with $nb_pack_equipe special team pack(s) : ".$total_min_avec_pack." €
"; if($quota_indiv_ajoutable>0){ $liste_detail_nb_courses.= "you can still add ".$quota_indiv_ajoutable." individual(s) race(s) for the same price !
"; } }else{ $liste_detail_nb_courses.= "Total to pay : ".$total_sans_pack." €
"; } } // encryptage du tarif pour éviter la fraude $frm_gestion_paiement=""; $tarif=$total_min_avec_pack; $enc_tarif = md5("FCC37_".$total_min_avec_pack); if($mode!='consultation'){ if($lang=='fr-FR'){ $frm_gestion_paiement= "
Montant final à régler:
$total_min_avec_pack €
Merci d'indiquer le code suivant dans votre virement bancaire:
FCC37_".sprintf('%04d',$gid)."
"; }else{ $frm_gestion_paiement= "
Total to pay (Euros):
$total_min_avec_pack €
Please use the following code in your wire transfer label:
FCC37_".sprintf('%04d',$gid)."
"; } if($mode=='admin'){ if($lang=='fr-FR'){ $frm_gestion_paiement.= "
"; }else{ $frm_gestion_paiement.= "
"; } } }else{ if($lang=='fr-FR'){ $frm_gestion_paiement= "
Montant final à régler:
$total_min_avec_pack €
Merci d'indiquer le code suivant dans votre virement bancaire:
FCC37_".sprintf('%04d',$gid)."
Etat de l'inscription :
$etat_compta"; }else{ $frm_gestion_paiement= "
Total to pay (Euros):
$total_min_avec_pack €
Please use the following code in your wire transfer label:
FCC37_".sprintf('%04d',$gid)."
Regsitration status :
$etat_compta"; } } // LE RIB if($lang=='fr-FR'){ $frm_gestion_paiement.= "
RIB PDF
Titulaire:Union Departementale Sapeurs Pompiers 37
IBAN : $iban
BIC : $bic
RIB : $rib
Banque : $banque
"; }else{ $frm_gestion_paiement.= "
RIB PDF
Owner:Union Departementale Sapeurs Pompiers 37
IBAN : $iban
BIC : $bic
RIB : $rib
Bank : $banque
"; } // formulaire d'ajout de competitions $frm_course_indiv=""; $frm_course_tandem=""; $frm_course_relai=""; $sel_part1=""; $sel_part2=""; $sel_part3=""; $sel_part4=""; $sel_part5=""; // individuel $q=$db->getQuery(true); // proposer uniquement les compétiteur non déjà inscrit en individuel $sel_part1=""; if($lang=='fr-FR'){ $frm_course_indiv.="
"; }else{ $frm_course_indiv.="
"; } // tandem $q=$db->getQuery(true); // proposer uniquement les compétiteurs non déjà inscrit en tandem comme participant $liste_part=""; $q->select('le_participant.*') ->from($db->quoteName('le_participant')) ->where($db->quoteName('gid') . ' = '. $db->quote($gid) . " AND " . $db->quoteName('pid') . " NOT IN (SELECT pid1 FROM le_inscription WHERE gid=".$gid." AND type='tandem' UNION SELECT pid2 FROM le_inscription WHERE gid=".$gid." AND type='tandem') " ) ->order('pid ASC'); $db->setQuery($q); $pp = $db->loadAssocList(); // liste ordonnée des participants foreach ($pp as $ikey => $p) { if($pid==$p['pid']){ $selected=" selected "; }else{ $selected=""; } $liste_part.="".$p['nom']." ".$p['prenom'].""; } $sel_part1=""; // proposer tous les compétiteurs comme 2eme participant $q=$db->getQuery(true); $liste_part=""; $q->select('le_participant.*') ->from($db->quoteName('le_participant')) ->where($db->quoteName('gid') . ' = '. $db->quote($gid) ) ->order('pid ASC'); $db->setQuery($q); $pp = $db->loadAssocList(); // liste ordonnée des participants foreach ($pp as $ikey => $p) { if($pid==$p['pid']){ $selected=" selected "; }else{ $selected=""; } $liste_part.="".$p['nom']." ".$p['prenom'].""; } $sel_part2=""; // tandem if($lang=='fr-FR'){ $frm_course_tandem.= "
"; }else{ $frm_course_tandem.= "
"; } // relai // proposer uniquement les compétiteurs non déjà inscrit en relai comme participants $q=$db->getQuery(true); $liste_part=""; $q->select('le_participant.*') ->from($db->quoteName('le_participant')) ->where($db->quoteName('gid') . ' = '. $db->quote($gid) . " AND " . $db->quoteName('pid') . " NOT IN ( SELECT pid1 FROM le_inscription WHERE gid=".$db->quote($gid)." AND type='relai' UNION SELECT pid2 FROM le_inscription WHERE gid=".$db->quote($gid)." AND type='relai' UNION SELECT pid3 FROM le_inscription WHERE gid=".$db->quote($gid)." AND type='relai' UNION SELECT pid4 FROM le_inscription WHERE gid=".$db->quote($gid)." AND type='relai' UNION SELECT pid5 FROM le_inscription WHERE gid=".$db->quote($gid)." AND type='relai' ) " ) ->order('pid ASC'); $db->setQuery($q); $pp = $db->loadAssocList(); // liste ordonnée des participants foreach ($pp as $ikey => $p) { if($pid==$p['pid']){ $selected=" selected "; }else{ $selected=""; } $liste_part.="".$p['nom']." ".$p['prenom'].""; } $sel_part1=""; $sel_part2=""; $sel_part3=""; $sel_part4=""; $sel_part5=""; if($lang=='fr-FR'){ $frm_course_relai.= "
"; }else{ $frm_course_relai.= "
"; } // inscription à des courses impossibles si la date n'est pas ouverte if(!$ouvert && $lang=='fr-FR' && $mode!='admin'){ $frm_course_indiv="Inscriptions individuelles fermées
Ouverture des inscriptions le ".strftime('%d/%m/%Y %T',$ouverture).""; $frm_course_tandem="Inscriptions tandems fermées
Ouverture des inscriptions le ".strftime('%d/%m/%Y %T',$ouverture).""; $frm_course_relai="Inscriptions relais fermées
Ouverture des inscriptions le ".strftime('%d/%m/%Y %T',$ouverture).""; $frm_gestion_paiement=""; } if(!$ouvert && $lang!='fr-FR' && $mode!='admin'){ $frm_course_indiv="Individual registration close
Registration will open on ".strftime('%d/%m/%Y %T',$ouverture).""; $frm_course_tandem="Tandem registration close
Registration will open on ".strftime('%d/%m/%Y %T',$ouverture).""; $frm_course_relai="Relay registration close
Registration will open on ".strftime('%d/%m/%Y %T',$ouverture).""; $frm_gestion_paiement=""; } // tableau des différentes zones d'information de la page de gestion de groupes if($lang=='fr-FR'){ echo "
".$frm_gestion_groupe." | |
ETAPE 1 : Saisissez tous les membres de votre équipe
|
|
Liste des participants | Gestion des participants |
---|---|
".$tableau_participants." | ".$frm_gestion_participants." |
ETAPE 2 : Constituez vos équipes de courses
|
|
Liste des courses | Gestion des courses |
".$tableau_courses." | ".$frm_course_indiv." |
".$frm_course_tandem." | |
".$frm_course_relai." | |
ETAPE 3 : Finalisez et envoyez votre formulaire pour valider votre inscription
|
|
Nombres de courses totales | Validation de l'inscription |
".$liste_detail_nb_courses." | ".$frm_gestion_paiement." |
"; }else{ echo "
".$frm_gestion_groupe." | |
STEP 1 : Add all your team competitors
|
|
List of the team competitors | Competitors management |
---|---|
".$tableau_participants." | ".$frm_gestion_participants." |
STEP 2 : Build your racing teams
|
|
List of the races | Races management |
".$tableau_courses." | ".$frm_course_indiv." |
".$frm_course_tandem." | |
".$frm_course_relai." | |
STEP 3 : Validate and send your registration
|
|
Total number of races | Registration validation |
".$liste_detail_nb_courses." | ".$frm_gestion_paiement." |