-
Notifications
You must be signed in to change notification settings - Fork 0
/
AdminFigureController.php
128 lines (112 loc) · 3.63 KB
/
AdminFigureController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
namespace App\Controller\Admin;
use App\Entity\Figures;
use App\Entity\Picture;
use App\Form\FigureType;
use App\Form\PictureType;
use App\Repository\FiguresRepository;
use Symfony\Component\HttpFoundation\Request;
use Doctrine\Common\Persistence\ObjectManager;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class AdminFigureController extends AbstractController
{
/**
* @var FiguresRepository
*/
private $repository;
/**
* @var ObjectManager
* @var \Doctrine\ORM\EntityManager
*/
private $em;
public function __construct(FiguresRepository $repository, ObjectManager $em)
{
$this->repository = $repository;
$this->em = $em;
}
/**
* @Route("/admin/figure/create", name="admin.figure.new")
*/
public function new(Request $request)
{
$figure = new Figures();
$form = $this->createForm(FigureType::class, $figure);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$date = new \DateTime();
$figure->setCreatedAt($date);
$figure->setUpdatedAt($date);
$this->em->persist($figure);
$this->em->flush();
$this->addFlash('success', 'La figure a bien été créée');
return $this->redirectToRoute('home');
}
$lastId = $this->repository->getLastId()->getId();
return $this->render('admin/figure/new.html.twig', [
'figure' => $figure,
'idFigure' => $lastId + 1,
'form' => $form->createView(),
'current_menu' => 'admin.figure.new',
]);
}
/**
* @Route("/admin/figure/{id}", name="admin.figure.edit", methods="GET|POST")
* @param Figures $figure
* @param Request $request
* @return \Symfony\Component\HttpFoundation\Response
*/
public function edit(Figures $figure, Request $request)
{
$form = $this->createForm(FigureType::class, $figure);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$date = new \DateTime();
$figure->setUpdatedAt($date);
$this->em->flush();
$this->addFlash('success', 'La figure a bien été modifiée');
return $this->redirectToRoute('home');
}
return $this->render('admin/figure/edit.html.twig', [
'figure' => $figure,
'form' => $form->createView(),
'current_menu' => 'admin.figure.edit',
]);
}
/**
* @Route("/admin/figure/{id}", name="admin.figure.delete", methods="DELETE")
* @param Figures $figure
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
public function delete(Figures $figure, Request $request)
{
if ($this->isCsrfTokenValid('delete' . $figure->getId(), $request->get('_token'))) {
$this->em->remove($figure);
$this->em->flush();
$this->addFlash('success', 'La figure a bien été supprimée');
} else {
$this->addFlash('error', 'La figure n\'a pas été supprimée, un problème est survenu');
return $this->redirectToRoute('home');
}
return $this->redirectToRoute('home');
}
/**
* @Route("/admin/figure/mainImg/{id}", name="admin.figure.mainImg.delete", methods="DELETE")
* @param Figures $figure
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
public function deleteMainImg(Figures $figure, Request $request)
{
if ($this->isCsrfTokenValid('delete' . $figure->getId(), $request->get('_token'))) {
$figure->setMainImage(null);
$figure->setUpdatedAt(new \DateTime());
$this->em->flush();
$this->addFlash('success', 'L\'image principale de la figure a bien été supprimée');
} else {
$this->addFlash('error', 'La figure n\'a pas été supprimée, un problème est survenu');
return $this->redirectToRoute('home');
}
return $this->redirectToRoute('home');
}
}