Exemplo n.º 1
0
 /**
  * Permet de dupliquer un quizz
  *
  * @param $id
  * @return \Illuminate\Http\RedirectResponse
  */
 public function duplicate($id)
 {
     $quizz = Quizz::id($id);
     // Vérification que le slug n'existe pas déjà
     $slugExist = Quizz::slugExist($quizz->slug);
     /**
      * Si le slug existe déjà on rajoute un suffixe pour ne pas avoir de doublon
      */
     if ($slugExist->count() != 0) {
         $nb = $slugExist->count() + 1;
         $quizzFolderSlug = $quizz->folder . '-' . $nb;
     } else {
         $quizzFolderSlug = $quizz->slug;
     }
     // Chemin de création du fichier
     $quizzFolderPath = public_path() . '/image/quizz/' . $quizzFolderSlug . '/';
     $quizzFolderPath = str_replace('\\', '/', $quizzFolderPath);
     // Création du dossier du quizz
     File::makeDirectory($quizzFolderPath);
     Quizz::create(['title' => $quizz->title, 'theme' => $quizz->theme, 'folder' => $quizzFolderSlug, 'picture' => $quizz->picture, 'date_begin' => Carbon::now()->toDateString(), 'date_end' => Carbon::now()->toDateString(), 'chrono' => $quizz->chrono, 'status' => 3, 'prize' => $quizz->prize, 'prize_image' => $quizz->prize_image]);
     // Récupération des questions du quizz courrant pour les copiers dans le nouveaux quizz
     $question = Question::liste($id);
     // Récupération des informations du nouveau quizz
     $newQuizz = Quizz::slug($quizzFolderSlug);
     foreach ($question as $element) {
         Question::create(['id_quizz' => $newQuizz->id, 'title' => $element->title, 'choice' => $element->choice, 'picture' => $element->picture, 'description' => $element->description, 'delete' => 0]);
     }
     return redirect(route('admin.home'))->with('success', 'Le quizz a bien été dupliqué');
 }