<?php
namespace App\Controller;
use App\Entity\Magazine;
use App\Service\FileUploader;
use App\Repository\MenuRepository;
use App\Repository\MagazineRepository;
use App\Repository\SousmenuRepository;
use App\Repository\Sousmenu2Repository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class MagazineController extends AbstractController
{
private $em;
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
#[Route('/admin/magazine/{id}/desactive-status', name: 'app_magazine_desactive_status', methods: ['GET','POST'])]
public function desactiveStatus(Magazine $magazine, Request $request)
{
$magazine->setStatut(false);
$this->em->persist($magazine);
$this->em->flush();
return $this->redirectToRoute('app_magazine_index', [], Response::HTTP_SEE_OTHER);
}
#[Route('/admin/magazine/{id}/active-status', name: 'app_magazine_active_status', methods: ['GET','POST'])]
public function activeStatus(Magazine $magazine, Request $request)
{
$magazine->setStatut(true);
$this->em->persist($magazine);
$this->em->flush();
return $this->redirectToRoute('app_magazine_index', [], Response::HTTP_SEE_OTHER);
}
#[Route('/admin/magazine', name: 'app_magazine_index', methods: ['GET','POST'])]
public function index(MagazineRepository $magazineRepository): Response
{
return $this->render('magazine/index.html.twig', [
'magazines' => $magazineRepository->findAll(),
]);
}
#[Route('/admin/magazine/new', name: 'app_magazine_new', methods: ['GET', 'POST'])]
public function new(FileUploader $fileUploader, ValidatorInterface $validator, Request $request,Sousmenu2Repository $sousmenu2Repository, SousmenuRepository $sousmenuRepository, MenuRepository $menuRepository, MagazineRepository $magazineRepository): Response
{
$submit = $request->request->get('submit');
$errors = null;
if ($submit) {
//dd($request);
$menu = new Magazine();
$menu->setMenu($menuRepository->find($request->request->get('menu')));
$menu->setSousmenu($sousmenuRepository->find($request->request->get('sousmenu')));
$menu->setPath($request->request->get('path'));
$menu->setSousmenu2($sousmenu2Repository->find($request->request->get('sousmenu2')));
$menu->setSurtitre($request->request->get('surtitre'));
$menu->setTitle($request->request->get('title'));
$menu->setSignature($request->request->get('signature'));
$menu->setSoustitre($request->request->get('soustitre'));
$menu->setStatut($request->request->get('statut'));
/* $menu->setPath($request->request->get('path')); */
$menu->setContent1($request->request->get('content1'));
$menu->setContent2($request->request->get('content2'));
$menu->setContent3($request->request->get('content3'));
$tab = null;
$tabvid = null;
if ($request->files->get('file')) {
foreach ($request->files->get('file') as $value) {
$FileName = $fileUploader->upload($value);
$tab[] = $FileName;
}
$menu->setImages($tab);
}
/* if ($request->files->get('video')) {
foreach ($request->files->get('video') as $value) {
$FileName = $fileUploader->upload($value);
$tabvid[] = $FileName;
}
$menu->setVideo($tabvid);
} */
$errors = $validator->validate($menu);
if (count($errors) > 0) {
$errorsString = (string) $errors;
}else {
$this->em->persist($menu);
$this->em->flush();
return $this->redirectToRoute('app_magazine_index', [], Response::HTTP_SEE_OTHER);
}
}
$sousmenu=$sousmenuRepository->findOneBy(['path' => 'app_sousmenu_formations']);
$sousmenu2=$sousmenuRepository->findOneBy(['path' => 'app_sousmenu_telechargements']);
return $this->renderForm('magazine/new.html.twig', [
'menus' => $menuRepository->findAll(),
'sousmenus'=> $sousmenu,
'sousmenus2'=>$sousmenu2,
'magazines'=> $magazineRepository->findAll(),
'sousmenu2s'=> $sousmenu2Repository->findAll(),
'errors' => $errors,
]);
}
#[Route('/admin/magazine/edit/{id}', name: 'app_magazine_edit', methods: ['GET', 'POST'])]
public function edit(FileUploader $fileUploader,ValidatorInterface $validator, Request $request,Sousmenu2Repository $sousmenu2Repository, SousmenuRepository $sousmenuRepository, MenuRepository $menuRepository, Magazine $magazine): Response
{
$submit = $request->request->get('submit');
/* $oldphoto = $sousmenu->getImage();
$oldvideo = $sousmenu->getVideo(); */
$errors = null;
if ($submit) {
$magazine->setMenu($menuRepository->find($request->request->get('menu')));
$magazine->setSousmenu($sousmenuRepository->find($request->request->get('sousmenu')));
$magazine->setSousmenu2($sousmenu2Repository->find($request->request->get('sousmenu2')));
$magazine->setPath($request->request->get('path'));
$magazine->setSurtitre($request->request->get('surtitre'));
$magazine->setTitle($request->request->get('title'));
$magazine->setSignature($request->request->get('signature'));
$magazine->setSoustitre($request->request->get('soustitre'));
$magazine->setStatut($request->request->get('statut'));
/* $menu->setPath($request->request->get('path')); */
$magazine->setContent1($request->request->get('content1'));
$magazine->setContent2($request->request->get('content2'));
$magazine->setContent3($request->request->get('content3'));
$tab = null;
$tabvid = null;
if ($request->files->get('file')) {
foreach ($request->files->get('file') as $value) {
$FileName = $fileUploader->upload($value);
$tab[] = $FileName;
}
$magazine->setImages($tab);
} /* else {
if ($oldphoto) {
foreach ($oldphoto as $value) {
$tab[] = $value;
}
$sousmenu->setImage($tab);
}
} */
/* if ($request->files->get('video')) {
foreach ($request->files->get('video') as $value) {
$FileName = $fileUploader->upload($value);
$tabvid[] = $FileName;
}
$agenda->setVideo($tabvid);
} *//* else {
if ($oldvideo) {
foreach ($oldvideo as $value) {
$tabvid[] = $value;
}
$sousmenu->setVideo($tabvid);
}
} */
$errors = $validator->validate($magazine);
if (count($errors) > 0) {
$errorsString = (string) $errors;
} else {
$this->em->persist($magazine);
$this->em->flush();
return $this->redirectToRoute('app_magazine_index', [], Response::HTTP_SEE_OTHER);
}
}
return $this->renderForm('magazine/edit.html.twig', [
'idMenu' => $magazine->getMenu()->getId(),
'idSousmenu' => $magazine->getSousmenu()->getId(),
'idSousmenu2' => $magazine->getSousmenu2()->getId(),
'idMagazine'=> $magazine->getId(),
'magazine' => $magazine,
'menus' => $menuRepository->findAll(),
'sousmenus'=> $sousmenuRepository->findAll(),
'sousmenu2s'=> $sousmenu2Repository->findAll(),
'errors' => $errors,
]);
}
#[Route('/admin/magazine/supprimer/{id}', name: 'app_magazine_delete', methods: ['POST'])]
public function delete(Request $request, Magazine $magazine, MenuRepository $menuRepository): Response
{
//dd( $menu);
if ($this->isCsrfTokenValid('delete'.$magazine->getId(), $request->request->get('_token'))) {
$this->em->remove($magazine);
$this->em->flush();
}
return $this->redirectToRoute('app_magazine_index', [], Response::HTTP_SEE_OTHER);
}
}