/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // Récupération de tous les administrateurs $admins = Admin::all()->where('delete', 0); // Récupération de tous les utilisateur $users = User::all()->where('delete', 0); // Récupération de tous les quizz $quizzes = Quizz::all()->where('delete', 0); return view('admin/gestion', ['admins' => $admins, 'users' => $users, 'quizzes' => $quizzes]); }
/** * Marque un quizz comme étant supprimé * * @param $id * @return \Illuminate\Http\RedirectResponse */ public function delete($id) { // Récupération du quizz $quizzExist = Quizz::id($id); /** * Vérification de l'existance du quizz */ if ($quizzExist->count() === 0) { return redirect(route('admin.home'))->with('erreur', 'Ce quizz n\'existe pas'); } else { // Suppression des questions associés au quizz $questionListe = Question::liste($id); foreach ($questionListe as $element) { $question = Question::id($element['id']); $question->update(['delete' => 1, 'updated_at' => date('Y-m-d')]); } // Suppression du quizz $quizzExist->update(['delete' => 1, 'updated_at' => date('Y-m-d')]); return redirect(route('admin.home'))->with('success', 'Le quizz a bien été supprimé'); } }
/** * Affiche la liste des gagnants/meilleurs joueurs */ public function winners(Request $request) { $quizz = Quizz::where('status', 2)->first(); if (is_null($quizz)) { return redirect(route('front.index')); } else { $idQuizz = $quizz->id; $winners = Game::where('id_quizz', $idQuizz)->select()->orderBy('id_facebook', 'desc')->get(); $winners_order = array(); foreach ($winners as $key => $value) { $one = Game::select()->where('id_facebook', $value['id_facebook'])->where('id_quizz', $idQuizz)->orderBy('score')->first()->toArray(); if (array_search($value['id_facebook'], $winners_order)) { echo 'déjààà'; } else { array_push($winners_order, $one); } } var_dump($winners_order); return view('front.winners', array('pageName' => 'winners', 'winners' => $winners, 'quizz' => $quizz)); } }
/** * Met à jour les informations d'une question * * @param Request $request * @param $idQuizz * @param $idQuestion * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View */ public function update(Request $request, $idQuizz, $idQuestion) { //dd($request); /** * On vérifie l'existance de laquestion, Si elle n'existe pas on renvoie à la vue de modification de quizz * Sinon on fais la vérification de la modification de question */ $question = Question::QuestionQuizz($idQuizz, $idQuestion); if ($question->count() === 0) { return redirect(route('admin.quizzEdit', $idQuizz))->with('erreur', 'La question que vous souhaitez modifier n\'existe pas'); } else { // Récupération de chaque élément $title = trim($request->title); $description = trim($request->description); $picture = $request->picture; $pictureActive = $request->pictureActive; $answer1 = trim($request->answer1); $answer2 = trim($request->answer2); $answer3 = trim($request->answer3); $answer4 = trim($request->answer4); $answer1Image = $request->answer1Image; $answer1Active = $request->answer1Active; $answer2Image = $request->answer2Image; $answer2Active = $request->answer2Active; $answer3Image = $request->answer3Image; $answer3Active = $request->answer3Active; $answer4Image = $request->answer4Image; $answer4Active = $request->answer4Active; // Récupération des réponses existantes $choice = unserialize($question->choice); /** * Vérification du formulaire */ if ((!empty($title) || $title != '' || strlen($title) > 0) && (!empty($description) || $description != '' || strlen($description) > 0)) { /** * Vérification des champs titre et description qui sont obligatoire */ if (strlen($title) > 100) { $erreur = 'Le titre est trop long (100 caractères maximum)'; } elseif (strlen($description) > 100) { $erreur = 'La description est trop longue (100 caractères maximum)'; } /** * Si il n'y pas d'erreur on continue le traitement * Sinon on renvoie à la vue avec les erreurs */ if (!isset($erreur)) { /** * Si l'utilisateur ne coche pas la case l'image de fond n'est pas activer, n'enregistre aucune image */ if (empty($pictureActive)) { $picture = ''; } /** * Si l'utilisateur à activer l'image de fond et n'en sélectionne pas une nouvelle on garde l'ancienne */ if (!empty($pictureActive) && empty($picture)) { $picture = $question->picture; } /** * Si l'utilisateur ne coche pas la case l'image 1 n'est pas activer, n'enregistre aucune image */ if (empty($answer1Active)) { $answer1Image = ''; } /** * Si l'utilisateur à activer l'image 1 et n'en sélectionne pas une nouvelle on garde l'ancienne */ if (!empty($answer1Active) && empty($answer1Image) && isset($choice[0]['image_path'])) { $answer1Image = $choice[0]['image_path']; } /** * Si l'utilisateur ne coche pas la case l'image 2 n'est pas activer, n'enregistre aucune image */ if (empty($answer2Active)) { $answer2Image = ''; } /** * Si l'utilisateur à activer l'image 2 et n'en sélectionne pas une nouvelle on garde l'ancienne */ if (!empty($answer2Active) && empty($answer2Image) && isset($choice[1]['image_path'])) { $answer2Image = $choice[1]['image_path']; } /** * Si l'utilisateur ne coche pas la case l'image 3 n'est pas activer, n'enregistre aucune image */ if (empty($answer3Active)) { $answer3Image = ''; } /** * Si l'utilisateur à activer l'image 3 et n'en sélectionne pas une nouvelle on garde l'ancienne */ if (!empty($answer3Active) && empty($answer3Image) && isset($choice[2]['image_path'])) { $answer3Image = $choice[2]['image_path']; } /** * Si l'utilisateur ne coche pas la case l'image 4 n'est pas activer, n'enregistre aucune image */ if (empty($answer4Active)) { $answer4Image = ''; } /** * Si l'utilisateur à activer l'image 4 et n'en sélectionne pas une nouvelle on garde l'ancienne */ if (!empty($answer4Active) && empty($answer4Image) && isset($choice[3]['image_path'])) { $answer4Image = $choice[3]['image_path']; } // Récupération du dossier du quizz courrant $quizz = Quizz::SlugRecover($idQuizz); $quizzFolderSlug = $quizz[0]['folder']; /** * Vérification de l'existance et de la conformité de l'image de fond de la question */ if ($request->hasFile('picture') && $request->file('picture')->isValid() && !empty($picture)) { // Récupération du fichier $picture = $request->file('picture'); // Récupération de l'extension de l'image $extension = $picture->getClientOriginalExtension(); // Renommage du fichier $pictureImageName = str_random(20) . '.' . $extension; // Dossier de réception du fichier $pictureFolder = 'image/quizz/' . $quizzFolderSlug . '/'; // Téléchargement de l'image $picture->move($pictureFolder, $pictureImageName); // Chemin de l'image $picture = $pictureFolder . $pictureImageName; } /** * Vérification de l'existance et de la conformité de l'image de la réponse 1 */ if ($request->hasFile('answer1Image') && $request->file('answer1Image')->isValid() && !empty($answer1Image)) { // Récupération du fichier $answer1Image = $request->file('answer1Image'); // Récupération de l'extension de l'image $extension = $answer1Image->getClientOriginalExtension(); // Renommage du fichier $answer1ImageName = str_random(20) . '.' . $extension; // Dossier de réception du fichier $pictureFolder = 'image/quizz/' . $quizzFolderSlug . '/'; // Téléchargement de l'image $answer1Image->move($pictureFolder, $answer1ImageName); // Chemin de l'image $answer1Image = $pictureFolder . $answer1ImageName; } /** * Vérification de l'existance et de la conformité de l'image de la réponse 2 */ if ($request->hasFile('answer2Image') && $request->file('answer2Image')->isValid() && !empty($answer2Image)) { // Récupération du fichier $answer2Image = $request->file('answer2Image'); // Récupération de l'extension de l'image $extension = $answer2Image->getClientOriginalExtension(); // Renommage du fichier $answer2ImageName = str_random(20) . '.' . $extension; // Dossier de réception du fichier $pictureFolder = 'image/quizz/' . $quizzFolderSlug . '/'; // Téléchargement de l'image $answer2Image->move($pictureFolder, $answer2ImageName); // Chemin de l'image $answer2Image = $pictureFolder . $answer2ImageName; } /** * Vérification de l'existance et de la conformité de l'image de la réponse 3 */ if ($request->hasFile('answer3Image') && $request->file('answer3Image')->isValid() && !empty($answer3Image)) { // Récupération du fichier $answer3Image = $request->file('answer3Image'); // Récupération de l'extension de l'image $extension = $answer3Image->getClientOriginalExtension(); // Renommage du fichier $answer3ImageName = str_random(20) . '.' . $extension; // Dossier de réception du fichier $pictureFolder = 'image/quizz/' . $quizzFolderSlug . '/'; // Téléchargement de l'image $answer3Image->move($pictureFolder, $answer3ImageName); // Chemin de l'image $answer3Image = $pictureFolder . $answer3ImageName; } /** * Vérification de l'existance et de la conformité de l'image de la réponse 4 */ if ($request->hasFile('answer4Image') && $request->file('answer4Image')->isValid() && !empty($answer4Image)) { // Récupération du fichier $answer4Image = $request->file('answer4Image'); // Récupération de l'extension de l'image $extension = $answer4Image->getClientOriginalExtension(); // Renommage du fichier $answer4ImageName = str_random(20) . '.' . $extension; // Dossier de réception du fichier $pictureFolder = 'image/quizz/' . $quizzFolderSlug . '/'; // Téléchargement de l'image $answer4Image->move($pictureFolder, $answer4ImageName); // Chemin de l'image $answer4Image = $pictureFolder . $answer4ImageName; } // Création et serialisation du tableau contenant les réponses $tab = serialize([0 => ['image_path' => $answer1Image, 'title' => $answer1], 1 => ['image_path' => $answer2Image, 'title' => $answer2], 2 => ['image_path' => $answer3Image, 'title' => $answer3], 3 => ['image_path' => $answer4Image, 'title' => $answer4]]); // Modification de la question $question->update(['id_quizz' => $idQuizz, 'title' => $title, 'choice' => $tab, 'picture' => $picture, 'description' => $description]); return redirect(route('admin.quizzEdit', $idQuizz))->with('success', 'La question a bien été modifié'); } else { // Récupération du quizz $quizz = Quizz::id($idQuizz); // Récupération des questions du quizz $questions = Question::liste($idQuizz); $tab = []; $compt = 1; // Récupération des question et désérialisation du tableau des réponses foreach ($questions as $key => $value) { $question = ['question' . $compt => ['id' => $value['id'], 'title' => $value['title'], 'description' => $value['description'], 'picture' => $value['picture'], 'choice' => unserialize($value['choice'])]]; $tab = array_merge($tab, $question); $compt++; } return view('admin/quizzEdit', ['questionEditErreur' => $erreur, 'style' => 'display:none', 'styleEdit' => 'display:block', 'quizz' => $quizz, 'title' => $title, 'description' => $description, 'questions' => $tab, 'idQuestion' => $idQuestion, 'answer1' => $answer1, 'answer2' => $answer2, 'answer3' => $answer3, 'answer4' => $answer4, 'answer1Image' => $choice[0]['image_path'], 'answer2Image' => $choice[1]['image_path'], 'answer3Image' => $choice[2]['image_path'], 'answer4Image' => $choice[3]['image_path']]); } } else { // Récupération du quizz $quizz = Quizz::id($idQuizz); // Récupération des questions du quizz $questions = Question::liste($idQuizz); $tab = []; $compt = 1; // Récupération des question et désérialisation du tableau des réponses foreach ($questions as $key => $value) { $question = ['question' . $compt => ['id' => $value['id'], 'title' => $value['title'], 'description' => $value['description'], 'picture' => $value['picture'], 'choice' => unserialize($value['choice'])]]; $tab = array_merge($tab, $question); $compt++; } return view('admin/quizzEdit', ['questionEditErreur' => 'Le tire et la description son obligatoire', 'style' => 'display:none', 'styleEdit' => 'display:block', 'quizz' => $quizz, 'title' => $title, 'description' => $description, 'questions' => $tab, 'idQuestion' => $idQuestion, 'answer1' => $answer1, 'answer2' => $answer2, 'answer3' => $answer3, 'answer4' => $answer4, 'answer1Image' => $choice[0]['image_path'], 'answer2Image' => $choice[1]['image_path'], 'answer3Image' => $choice[2]['image_path'], 'answer4Image' => $choice[3]['image_path']]); } } }