src/Controller/Front/CourseForumController.php line 65

  1. <?php
  2. namespace App\Controller\Front;
  3. use App\Entity\Cours;
  4. use App\Entity\Forum;
  5. use App\Entity\Membre;
  6. use App\Entity\Sujet;
  7. use App\Form\SujetType;
  8. use App\Repository\ForumRepository;
  9. use App\Repository\MembreRepository;
  10. use App\Repository\SujetRepository;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. #[Route('/course-forum')]
  15. class CourseForumController extends AbstractController
  16. {
  17.     #[Route('/{slug}'name'app_front_course_forum_index')]
  18.     public function index(Cours $coursMembreRepository $membreRepositorySujetRepository $sujetRepositoryForumRepository $forumRepository): Response
  19.     {
  20.         if (!$cours->getForum()) {
  21.             if ($cours->isIsValidated()) {
  22.                 $forum = new Forum();
  23.                 $forum->setCours($cours);
  24.                 $cours->setForum($forum);
  25.                 $membre $membreRepository->findOneBy(['utilisateur' => $cours->getEnseignant()->getUtilisateur()]);
  26.                 if (!$membre) {
  27.                     $membre = new Membre();
  28.                     $membre->setUtilisateur($cours->getEnseignant()->getUtilisateur());
  29.                     $forum->addMembre($membre);
  30.                 }
  31.                 $membre->addForum($forum);
  32.                 $forumRepository->save($forumtrue);
  33.             }
  34.             else {
  35.                 throw $this->createNotFoundException();
  36.             }
  37.         }
  38.         
  39.         $heIsMembre false;
  40.         $membre $membreRepository->findOneBy(['utilisateur' => $this->getUser()]);
  41.         if ($membre !== null && $membre->getForums()->contains($cours->getForum())) {
  42.             $heIsMembre true;
  43.         }
  44.         $sujet = new Sujet();
  45.         $sujetForm $this->createForm(SujetType::class, $sujet, [
  46.             'action' => $heIsMembre $this->generateUrl('app_front_course_new_forum', ['id' => $membre->getId(), 'slug' => $cours->getSlug()])  : '',
  47.         ]);
  48.         return $this->render('front/course_forum/index.html.twig', [
  49.             'controller_name' => 'CourseForumController',
  50.             'course' => $cours,
  51.             'heIsMembre' => $heIsMembre,
  52.             'sujetForm' => $sujetForm,
  53.             'membre' => $membre,
  54.             'isForumPage' => true,
  55.         ]);
  56.     }
  57.     #[Route('/{slug}/{reference}'name'app_front_course_forum_subject_message')]
  58.     public function subjectMessage(Cours $coursSujet $sujetMembreRepository $membreRepository)
  59.     {
  60.         $heIsMembre false;
  61.         $membre $membreRepository->findOneBy(['utilisateur' => $this->getUser()]);
  62.         if ($membre !== null) {
  63.            // if ($membre !== null && $membre->getForums()->contains($cours->getForum())) {
  64.             $heIsMembre true;
  65.         }
  66.         return $this->render('front/course_forum/subject_message.html.twig', [
  67.             'controller_name' => 'CourseForumController',
  68.             'course' => $cours,
  69.             'sujet' => $sujet,
  70.             'heIsMembre' => $heIsMembre,
  71.             'membre' => $membre,
  72.             'isForumPage' => true,
  73.         ]);
  74.     }
  75. }