コード例 #1
0
ファイル: GestionController.php プロジェクト: marionj/wequizz
 /**
  * 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]);
 }
コード例 #2
0
ファイル: QuizzController.php プロジェクト: marionj/wequizz
 /**
  * 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é');
     }
 }
コード例 #3
0
ファイル: FrontController.php プロジェクト: marionj/wequizz
 /**
  * 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));
     }
 }
コード例 #4
0
 /**
  * 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']]);
         }
     }
 }