/** * Page Inscription d'une formation */ public function formationregister() { $error = array(); // si l'utilisateur n'est pas connecté => on redirige vers la page de connexion $authentificationManager = new \W\Security\AuthentificationManager(); if (!$authentificationManager->getLoggedUser()) { $this->show('user/login'); } else { $loggedUser = $this->getUser(); } if ($_POST) { $title = $_POST['title']; $description = $_POST['description']; $dateform = $_POST['dateform']; $duration = $_POST['duration']; $nbrplace = $_POST['nbrplace']; $address = $_POST['address']; $zip = $_POST['codepostal']; $city = $_POST['city']; $country = $_POST['country']; $isValid = true; // Contrôle des champs obligatoires sur la formation $validator = new \Utils\FormValidator(); $validator->validateNotEmpty($title, "title", "Saisir un titre !"); $validator->validateNotEmpty($description, "description", "Saisir une description !"); $validator->validateNotEmpty($dateform, "dateform", "Saisir une date !"); $validator->validateNotEmpty($duration, "duration", "Saisir une durée !"); $validator->validateNotEmpty($nbrplace, "nbrplace", "Saisir un nombre de place !"); $validator->validateNotEmpty($address, "address", "Saisir une adresse !"); $validator->validateNotEmpty($zip, "codepostal", "Saisir un code postal !"); $validator->validateNotEmpty($city, "city", "Saisir une ville !"); $validator->validateNotEmpty($country, "country", "Saisir un pays !"); if (!$validator->isValid()) { $error = $validator->getErrors(); $isValid = false; } if ($_FILES['image']['size'] != 0) { $file = new \Utils\ImageUpload($_FILES['image'], 'assets/img/formations/src/'); $file->uploadFile(); if (!$file->isValid()) { $isValid = false; $error['image'] = $file->getErrors(); } else { // transforme le fichier au bon format $file->reduceImage('assets/img/formations/thumbnail/'); $error['image'] = 'img/formations/src/' . $file->getFileName(); $_SESSION['image_formation'] = $file->getFileName(); } } if ($isValid) { $newformation = new \Manager\FormationManager(); $date = \DateTime::createFromFormat('j/m/Y', $dateform); $title = $validator->convertSpecialCaractere($title); $description = $validator->convertSpecialCaractere($description); if ($_SESSION['image_formation']) { $file_name = $_SESSION['image_formation']; } else { $file_name = ''; } // 2 - on appelle la méthode insert $newformation->insert(["title" => $title, "dateFormation" => $date->format('Y-m-d H:i:s'), "duration" => $duration, "userId" => $loggedUser['id'], "dateCreated" => date("Y-m-d H:i:s"), "description" => $description, "image" => $file_name, "totalNumberPlace" => $nbrplace, "address" => $address, "zip" => $zip, "city" => $city, "country" => $country]); unset($_SESSION['image_formation']); $id = $newformation->lastInsertFormation()['id']; // on redirige l'utilisateur vers la page $this->redirectToRoute("detail_formation", ['id' => $id]); } } $this->show('formation/formationregister', ['error' => $error]); }
/** * Page de modification du profil */ public function profile($username) { $error = array(); $isValid = true; // on crée l'instance UserManager $userManager = new \Manager\UserManager(); // on crée une instance security manager $authentificationManager = new \W\Security\AuthentificationManager(); // - on récupère l'utilisateur connecté $userConnect = $authentificationManager->getLoggedUser(); // formulaire soumis ? if ($_POST) { $username = $_POST['username']; $lastname = $_POST['lastname']; $firstname = $_POST['firstname']; $birthyear = $_POST['birthyear']; $sex = $_POST['sex']; $job = $_POST['job']; $instructorDescription = $_POST['instructorDescription']; $studentDescription = $_POST['studentDescription']; // validation des données => à coder $isValid = true; // Contrôle des champs obligatoires sur la formation $validator = new \Utils\FormValidator(); $validator->validateNotEmpty($username, "username", "Le pseudo est obligatoire !"); $validator->validateNotEmpty($lastname, "lastname", "Saisir votre nom !"); $validator->validateNotEmpty($firstname, "firstname", "Saisir votre prénom !"); $validator->validateNotEmpty($birthyear, "birthyear", "Saisir votre année de naissance !"); $validator->validateNotEmpty($sex, "sex", "Indiquer votre sexe !"); $validator->validateNotEmpty($job, "job", "Saisir votre métier !"); $validator->validateNotEmpty($instructorDescription, "instructorDescription", "Saisir votre description en tant que formateur !"); $validator->validateNotEmpty($studentDescription, "studentDescription", "Saisir votre description en tant qu'étudiant !"); if ($validator->isValid()) { $validator->validateYear($birthyear, "birthyear", "Votre année de naissance doit être comprise entre 1900-2099 !"); $validator->validateCharacter($username, "username", "Le pseudo comporte des caractères interdits !"); } if (!$validator->isValid()) { $error = $validator->getErrors(); $isValid = false; } if ($isValid) { // 1 - on crée l'instance $userManager = new \Manager\UserManager(); if ($userConnect['username'] != $username) { if ($userManager->usernameExists($username)) { $isValid = false; $error['username'] = '******'; } } } // upload du fichier if ($_FILES['image']['size'] != 0) { $file = new \Utils\ImageUpload($_FILES['image'], 'assets/img/users/'); $file->uploadFile(); $file->reduceImage(false); if (!$file->isValid()) { $isValid = false; $error['image'] = $file->getErrors(); } else { $error['image'] = 'img/users/' . $file->getFileName(); $_SESSION['image_user'] = $file->getFileName(); } } else { $_SESSION['image_user'] = '******'; } // si c'est valide if ($isValid) { // Mise à jour dans la base de données // 2 - on appelle la méthode update $user = $userManager->update(["username" => $_POST['username'], "lastname" => $_POST['lastname'], "firstname" => $_POST['firstname'], "birthyear" => $_POST['birthyear'], "sex" => $_POST['sex'], "job" => $_POST['job'], "instructorDescription" => $_POST['instructorDescription'], "studentDescription" => $_POST['studentDescription'], "image" => $_SESSION['image_user']], $userConnect['id']); // on met à jour les données utilisateurs $authentificationManager->refreshUser(); $userConnect = $authentificationManager->getLoggedUser(); } } else { $_POST = $userConnect; } // 3 - on affiche la page si user trouvé if ($userConnect) { if ($userConnect['image'] == '') { $error['image'] = 'imageprofildefaut.png'; } else { $error['image'] = $userConnect['image']; } if ($userConnect['username'] == $username) { $this->show('user/profile', ['error' => $error]); } } // Sinon on redirige vers une page erreur $this->showForbidden(); }