public function joinRun($id) { // securise la page $this->allowTo('member'); // recuperation de l user en session $userId = $this->getUser(); // debug($userId); // test que l id envoyé en parametre correspond bien a un run existant $runningManager = new RunningManager(); $run = $runningManager->find($id); if ($run) { // instanciation d un objet de type User_runningManager $user_runningManager = new User_runningManager(); // test que l user ne participe pas deja a la course $participation = $user_runningManager->findWithUserAndRun($userId['id'], $run['id']); if ($participation) { echo "Vous êtes déjà enregistré pour cette course."; } else { $allRuns = $user_runningManager->insert(['user_id' => $userId['id'], 'running_id' => $run['id']]); $this->redirectToRoute('runProfile', ['id' => $run['id']]); } } else { $this->show('w_errors/404'); } }
public function createrunSubmit() { // echo '$_POST'; debug($_POST); // Affecter une variable à chaque valeur clé de $_POST $address = trim(htmlentities($_POST['address'])); $city = trim(htmlentities($_POST['city'])); $country = trim(htmlentities($_POST['country'])); $runName = trim(htmlentities($_POST['runName'])); $description = trim(htmlentities($_POST['runDescription'])); $departureDate = trim(htmlentities($_POST['departureDate'])); $departureTime = trim(htmlentities($_POST['departureTime'])); $distance = trim(htmlentities($_POST['distance'])); $speed = trim(htmlentities($_POST['speed'])); // Initialisation d'un tableau d'erreurs (associatif) $errors = []; // recuperation de l user en session pour identifier l'organisateur du run $userId = $this->getUser(); // echo '$userId'; debug($userId); // check que les champs d adresse ne sont pas empty if (empty($address)) { $errors['address'] = "Merci de vérifier l'adresse."; } if (empty($city)) { $errors['city'] = "Merci de vérifier la ville."; } if (empty($country)) { $errors['country'] = "Merci de vérifier la pays."; } if (empty($runName)) { $errors['runName'] = "Merci de compléter le nom de la course."; } if (empty($departureDate)) { $errors['departureDate'] = "Merci de renseigner la date."; } if ($departureTime == 0) { $errors['departureTime'] = "Merci de renseigner l'heure de départ."; } if ($distance == 0) { $errors['distance'] = "Merci de renseigner la distance."; } if ($speed == 0) { $errors['speed'] = "Merci de renseigner la vitesse prévue."; } // si tous les champs pour l adresse sont ok -> concatenation de l adresse pour la geocoder if (empty($errors)) { $fullAddress = $address . ' ' . $city . ' ' . $country; // recuperation dans une variable des coords envoyees par la fct geocode $coords = $this->geocode($fullAddress); // echo '$coords'; debug($coords); if (empty($coords)) { $errors['coords'] = "Adresse introuvable. Merci de vérifier l'adresse."; } if (empty($errors)) { // instanciation d'un object de type RunningManager $runningManager = new RunningManager(); // objet datetime $date = new DateTime(); $run = $runningManager->insert(['address' => $address, 'city' => $city, 'country' => $country, 'latitude' => $coords['lat'], 'longitude' => $coords['lng'], 'run_name' => $runName, 'description' => $description, 'departure_date' => $departureDate, 'departure_time' => $departureTime, 'distance' => $distance, 'speed' => $speed, 'created_at' => $date->format('Y-m-d H:i:s'), 'updated_at' => $date->format('Y-m-d H:i:s'), 'user_id' => $userId['id']]); // echo '$run'; debug($run); if ($run) { $_SESSION['message'] = "Vos modifications ont bien été enregistrées."; } else { $_SESSION['message'] = "Une erreur est intervenue. La course n'a pas été enregistrée."; } $this->redirectToRoute('seekrun'); } } else { $this->show('run/createrun', ['errors' => $errors]); } }