src/Controller/parc/ParcController.php line 416

Open in your IDE?
  1. <?php
  2. namespace App\Controller\parc;
  3. use App\Entity\Classification;
  4. use App\Entity\Evenement;
  5. use App\Entity\Media;
  6. use App\Entity\User;
  7. use App\Form\MediaType;
  8. use App\Form\ProfilImageType;
  9. use App\Repository\ClassificationRepository;
  10. use App\Repository\EvenementRepository;
  11. use App\Repository\MediaRepository;
  12. use App\Repository\UserRepository;
  13. use Doctrine\ORM\EntityManagerInterface;
  14. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  15. use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
  16. use function Sodium\add;
  17. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  18. use Symfony\Component\HttpFoundation\File\UploadedFile;
  19. use Symfony\Component\HttpFoundation\Request;
  20. use Symfony\Component\HttpFoundation\RequestStack;
  21. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  22. use Symfony\Component\Routing\Annotation\Route;
  23. use Symfony\Component\HttpFoundation\JsonResponse;
  24. use Symfony\Component\HttpFoundation\Response;
  25. use Symfony\Component\Security\Core\Security;
  26. class ParcController extends AbstractController
  27. {
  28.     /**
  29.      * @var SessionInterface
  30.      */
  31.     private $user;
  32.     /**
  33.      * @var User|null
  34.      */
  35.     private $userConnecter;
  36.     private $baseUrl;
  37.     public function __construct(Security $security,UserRepository $repositoryRequestStack $requestStack)
  38.     {
  39.         $this->user $security->getUser();
  40.         $this->baseUrl $requestStack->getCurrentRequest()->getSchemeAndHttpHost();
  41.         $this->userConnecter $repository->find($this->user->getId());
  42.     }
  43.     /**
  44.      * @Route("/parc/confirmation",name="parc.confirmation.compte")
  45.      * @param UserRepository $repository
  46.      * @return Response
  47.      */
  48.     public function cofirmationCompte(UserRepository $repository):Response
  49.     {
  50.         $id $this->user->getId();
  51.         if (!is_dir("users/" $id)) {
  52.             mkdir("users/" $id);
  53.             mkdir("users/" $id "/images");
  54.             mkdir("users/" $id "/medias");
  55.             $repository->EtatCompteUpdt($id);
  56.             if ($this->userConnecter->getTypeCompteUser() === 1) {
  57.                 return $this->redirectToRoute('parc.image');
  58.             }
  59.             return $this->redirectToRoute('parc.image.signature');
  60.             // }
  61.             // return $this->redirectToRoute('parc.index');
  62.         }
  63.     }
  64.     /**
  65.      * @Route("/parc",name="parc.index")
  66.      * @IsGranted("ROLE_ADMIN")
  67.      * @param UserRepository $userRepository
  68.      * @return Response
  69.      */
  70.     public function index(UserRepository $userRepository){
  71.         $id $this->user->getId();
  72.         if(!is_dir("users/".$id)) {
  73.             return $this->redirectToRoute('parc.confirmation.compte');
  74.         }
  75.         $media = new Media();
  76.         $form $this->createForm(MediaType::class,$media);
  77.         if($this->userConnecter->getTypeCompteUser() === 1){
  78.             $UserInfo1 $userRepository->UserMembrePrefereChoeur(12,$id);
  79.             $count $userRepository->count(['id' => $userRepository->UserMembrePrefereChoeurCount($id)]);
  80.             return $this->render('parc/index.html.twig',[
  81.                 'User' => $this->user,
  82.                 'UserInfo2'        => $UserInfo1,
  83.                 'form' => $form->createView(),
  84.                 'totalPreference' => $count
  85.             ]);
  86.         }
  87.         $count $userRepository->count(['id' => $userRepository->UserMembreSignateurCount()]);
  88.         $UserInfo2 $userRepository->UserMembre(12);
  89.         return $this->render('parc/profil_signature/index.html.twig',[
  90.             'UserInfo2'        => $UserInfo2,
  91.             'totalPreference' => $count,
  92.             'User' => $this->user
  93.         ]);
  94.     }
  95.     /**
  96.      * @Route("/parc/nouveau/{i}",name="edit.profilImage")
  97.      * @param UserRepository $repository
  98.      * @param Request $request
  99.      * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response
  100.      * @throws \Doctrine\ORM\NonUniqueResultException
  101.      */
  102.     public function edit(UserRepository $repository,Request $request)
  103.     {
  104.         $user = new  User();
  105.         $id $this->user->getId();
  106.         $flag $request->get('i');
  107.         $form $this->createForm(ProfilImageType::class, $user);
  108.         $form->handleRequest($request);
  109.         if ($form->isSubmitted() && $form->isValid()) {
  110.             $fichier explode(','$user->getBase64img());
  111.             $decode base64_decode($fichier[1]);
  112.             $default $this->uniqueId() . '.jpg';
  113.             if(!is_dir("users/".$id)) {
  114.                 mkdir("users/" $id);
  115.                 mkdir("users/" $id "/images");
  116.                 mkdir("users/" $id "/medias");
  117.             }
  118.             $fp fopen('users/'.$id.'/images/'$default'w');
  119.             fwrite($fp$decode);
  120.             fclose($fp);
  121.             if($flag === '0'){
  122.                 $repository->UserUpdt('http://chovie.afisarl.com/users/'.$id.'/images/'.$default,$id);
  123.             }
  124.             else{
  125.                 $repository->UserUpdtSignature('http://chovie.afisarl.com/users/'.$id.'/images/'.$default,$id);
  126.             }
  127.             $id $request->get('id');
  128.             return $this->redirectToRoute('parc.index',[
  129.                 'id' => $id,
  130.             ]);
  131.         }
  132.         if($flag === '0'){
  133.             return $this->redirectToRoute('parc.image');
  134.         }
  135.         return $this->redirectToRoute('parc.image.signature');
  136.     }
  137.     /**
  138.      * @Route("/parc/new_media/q?=dy4hixwwH{slug}btred45",name="parc.new_media",requirements={"slug": "[a-z0-9\-]*"})
  139.      * @param Request $request
  140.      * @param EntityManagerInterface $em
  141.      * @param EvenementRepository $evenementRepository
  142.      * @param ClassificationRepository $classificationRepository
  143.      * @return JsonResponse
  144.      */
  145.     public function new_media(Request $request,EntityManagerInterface $emEvenementRepository $evenementRepositoryClassificationRepository $classificationRepository){
  146.         $media = new Media();
  147.         $form $this->createForm(MediaType::class,$media);
  148.         $form->handleRequest($request);
  149.         if($form->isSubmitted() && $form->isValid()){
  150.             $md5 md5(uniqid());
  151.             if(!is_dir("users/" $media->getUserPub()->getId())){
  152.                 mkdir("users/" $media->getUserPub()->getId());
  153.                 mkdir("users/" $media->getUserPub()->getId() . "/images");
  154.                 mkdir("users/" $media->getUserPub()->getId() . "/medias");
  155.                 mkdir("users/" $media->getUserPub()->getId() . "/images/couverture");
  156.             }
  157.             if(!is_dir("users/" $media->getUserPub()->getId() . "/images/couverture")){
  158.                 mkdir("users/" $media->getUserPub()->getId() . "/images/couverture");
  159.             }
  160.             $type $_FILES['FichierMp4']['type'];
  161.             $file $_FILES['FichierMp4']['tmp_name'];
  162.             $filename $this->uniqueId().'-'.$media->getUserPub()->getId();
  163.             mkdir('users/'.$media->getUserPub()->getId().'/medias/'.$filename);
  164.             $path 'users/'.$media->getUserPub()->getId().'/medias/'.$filename.'/';
  165.             $path_couverture 'users/'.$media->getUserPub()->getId().'/images/couverture/';
  166.             $fname $_FILES['FichierMp4']['name'];
  167.             $files = new UploadedFile($file,$fname,$type);
  168.             $fileN $filename.'.'.$files->guessExtension();
  169.             $files->move(
  170.                 $path,
  171.                 $fileN
  172.             );
  173.             $media->setNomExtMedia($filename);
  174.             if(!is_dir("users/" $media->getUserPub()->getId() . "/images/couverture/".$md5)){
  175.                 mkdir("users/" $media->getUserPub()->getId() . "/images/couverture/".$md5);
  176.             }
  177.             $total count($_FILES['FichierImages']['name']);
  178.             $pathCouverture 'users/'.$media->getUserPub()->getId().'/images/couverture/'.$md5.'/';
  179.             $AllNameImage '';
  180.             for( $i=$i $total $i++ ) {
  181.                 $tmpFilePath $_FILES['FichierImages']['tmp_name'][$i];
  182.                 $file_extension $_FILES['FichierImages']['type'][$i];
  183.                 $validextensions = array("image/jpeg""image/jpg""image/png");
  184.                 $ext explode('/'basename($file_extension));
  185.                 $filename $pathCouverture $md5 "-".$i."."$ext[0];
  186.                 if (($_FILES["FichierImages"]["size"][$i] < 1000000)
  187.                     && in_array($file_extension$validextensions)) {
  188.                     move_uploaded_file($tmpFilePath$filename);
  189.                     $flag $total == $i '' :'#-@';
  190.                     $AllNameImage .= $this->baseUrl.'/'.$filename.$flag;
  191.                 }
  192.             }
  193.             $media->setUrlCouverture($AllNameImage);
  194.             $media->setUser($media->getUserPub()->getId());
  195.             if($media->getEvenements()->current())
  196.             $evenementRepository->find($media->getEvenements()->current())->addMedium($media);
  197.             if($media->getClassifications()->current())
  198.             $classificationRepository->find($media->getClassifications()->current())->addMedium($media);
  199.             $em->persist($media);
  200.             $em->flush();
  201.             return $this->json(['message' => '1'],200);
  202.         }
  203.         return $this->json(['message' => '0'], 200);
  204.     }
  205.     /**
  206.      * Permet d'afficher les publications du parc
  207.      *
  208.      * @Route("/parc/monparc/php?q=1x09yb88z{q}", name="monp.parc")
  209.      * @ParamConverter("user", options={"id" = "q"})
  210.      * @param MediaRepository $repository
  211.      * @param Request $request
  212.      * @return Response
  213.      */
  214.     public function monparc(MediaRepository $repository,Request $request):Response
  215.     {
  216.         $user $this->user->getId();
  217.         $flag 5;
  218.         $visi $request->get('q');
  219.         $req_user $repository->getMedia($user,$flag,$visi);
  220.         return $this->render('parc/_play_media_parc.html.twig',[
  221.             'q' => $flag,
  222.             'Media' => $req_user,
  223.             'User' => $this->user
  224.         ]);
  225.     }
  226.     /**
  227.      * Permet d'afficher les publications du clan
  228.      *
  229.      * @Route("/parc/monclan/clan/php?q=2x09yb88z{q}", name="monclan.parc")
  230.      * @ParamConverter("user", options={"id" = "q"})
  231.      * @param MediaRepository $repository
  232.      * @param UserRepository $userRepository
  233.      * @param Request $request
  234.      * @return Response
  235.      */
  236.     public function monclan(MediaRepository $repository,UserRepository $userRepository,Request $request):Response
  237.     {
  238.         $user $this->user->getId();
  239.         $clan $userRepository->find($user);
  240.         $clan_id $clan->getClan()->getId();
  241.         $req_user $repository->getMediaClan($clan_id,2,$user);
  242.         return $this->render('parc/_play_media_parc.html.twig',[
  243.             'q' => '6',
  244.             'Media' => $req_user,
  245.             'User' => $this->user
  246.         ]);
  247.     }
  248.     /**
  249.      *  Permet d'afficher les publications de la congrĂ©gation (Eglise)
  250.      *
  251.      * @Route("/parc/monEglise/eglise/php?q=3x09yb88z{q}", name="monEglise.parc")
  252.      * @ParamConverter("user", options={"id" = "q"})
  253.      * @param MediaRepository $repository
  254.      * @param UserRepository $userRepository
  255.      * @param Request $request
  256.      * @return Response
  257.      */
  258.     public function monEglise(MediaRepository $repository,UserRepository $userRepository,Request $request):Response
  259.     {
  260.         $user $this->user->getId();
  261.         $Eglise $userRepository->find($user);
  262.         $eglise_id $Eglise->getEglise()->getId();
  263.         $req_user $repository->getMediaClan($eglise_id,3,$user);
  264.         return $this->render('parc/_play_media_parc.html.twig',[
  265.             'q' => '7',
  266.             'Media' => $req_user,
  267.             'User' => $this->user
  268.         ]);
  269.     }
  270.     /**
  271.      * @Route("/parc/edit_profil_image", name="parc.image")
  272.      * @param UserRepository $userRepository
  273.      * @return Response
  274.      */
  275.     public function edit_profil_image(UserRepository $userRepository):Response
  276.     {
  277.         $user $this->user->getId();
  278.         $UserInfo $userRepository->find($user);
  279.         $user = new User();
  280.         $FormProfil $this->createForm(ProfilImageType::class,$user);
  281.         return $this->render('parc/editerImageProfil/profil_image.html.twig',[
  282.             'q' => $user->getId(),
  283.             'form' => $FormProfil->createView(),
  284.             'User' => $UserInfo
  285.         ]);
  286.     }
  287.     /**
  288.      * @Route("/parc/edit_profil_image_signature", name="parc.image.signature")
  289.      * @param UserRepository $userRepository
  290.      * @return Response
  291.      */
  292.     public function edit_profil_image_signature(UserRepository $userRepository):Response
  293.     {
  294.         $user $this->user->getId();
  295.         $UserInfo $userRepository->find($user);
  296.         $user = new User();
  297.         $FormProfil $this->createForm(ProfilImageType::class,$user);
  298.         return $this->render('parc/editerImageProfil/profil_image_signature.html.twig',[
  299.             'q' => $user->getId(),
  300.             'form' => $FormProfil->createView(),
  301.             'User' => $UserInfo
  302.         ]);
  303.     }
  304.     /**
  305.      * @return string
  306.      */
  307.     private function uniqueId():string {
  308.         return md5(uniqid());
  309.     }
  310. }