diff --git a/sources/AppBundle/Controller/Admin/Site/AddRubriqueAction.php b/sources/AppBundle/Controller/Admin/Site/AddRubriqueAction.php index 380fb1e83..9f3ce9736 100644 --- a/sources/AppBundle/Controller/Admin/Site/AddRubriqueAction.php +++ b/sources/AppBundle/Controller/Admin/Site/AddRubriqueAction.php @@ -5,9 +5,9 @@ namespace AppBundle\Controller\Admin\Site; use AppBundle\AuditLog\Audit; +use AppBundle\Site\Entity\Repository\RubriqueRepository; +use AppBundle\Site\Entity\Rubrique; use AppBundle\Site\Form\RubriqueType; -use AppBundle\Site\Model\Repository\RubriqueRepository; -use AppBundle\Site\Model\Rubrique; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\DependencyInjection\Attribute\Autowire; use Symfony\Component\HttpFoundation\Request; @@ -36,13 +36,13 @@ public function __invoke(Request $request): Response $safeFilename = hash('sha1', $originalFilename); $newFilename = $safeFilename . '.' . $file->guessExtension(); $file->move($this->storageDir, $newFilename); - $rubrique->setIcone($newFilename); + $rubrique->icone = $newFilename; } $this->rubriqueRepository->save($rubrique); - $this->audit->log('Ajout de la rubrique ' . $rubrique->getNom()); - $this->addFlash('notice', 'La rubrique ' . $rubrique->getNom() . ' a été ajoutée'); + $this->audit->log('Ajout de la rubrique ' . $rubrique->nom); + $this->addFlash('notice', 'La rubrique ' . $rubrique->nom . ' a été ajoutée'); return $this->redirectToRoute('admin_site_rubriques_list', [ - 'filter' => $rubrique->getNom(), + 'filter' => $rubrique->nom, ]); } diff --git a/sources/AppBundle/Controller/Admin/Site/DeleteRubriqueAction.php b/sources/AppBundle/Controller/Admin/Site/DeleteRubriqueAction.php index 5226c4082..18cc57d4b 100644 --- a/sources/AppBundle/Controller/Admin/Site/DeleteRubriqueAction.php +++ b/sources/AppBundle/Controller/Admin/Site/DeleteRubriqueAction.php @@ -5,7 +5,7 @@ namespace AppBundle\Controller\Admin\Site; use AppBundle\AuditLog\Audit; -use AppBundle\Site\Model\Repository\RubriqueRepository; +use AppBundle\Site\Entity\Repository\RubriqueRepository; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\Security\Csrf\CsrfToken; @@ -25,8 +25,8 @@ public function __invoke(int $id, string $token): RedirectResponse $this->addFlash('error', 'Token invalide'); return $this->redirectToRoute('admin_site_rubriques_list'); } - $rubrique = $this->rubriqueRepository->get($id); - $name = $rubrique->getNom(); + $rubrique = $this->rubriqueRepository->find($id); + $name = $rubrique->nom; $this->rubriqueRepository->delete($rubrique); $this->audit->log('Suppression de la Rubrique ' . $name); $this->addFlash('notice', 'La rubrique ' . $name . ' a été supprimée'); diff --git a/sources/AppBundle/Controller/Admin/Site/EditRubriqueAction.php b/sources/AppBundle/Controller/Admin/Site/EditRubriqueAction.php index 75470ab69..ae77b756c 100644 --- a/sources/AppBundle/Controller/Admin/Site/EditRubriqueAction.php +++ b/sources/AppBundle/Controller/Admin/Site/EditRubriqueAction.php @@ -5,8 +5,8 @@ namespace AppBundle\Controller\Admin\Site; use AppBundle\AuditLog\Audit; +use AppBundle\Site\Entity\Repository\RubriqueRepository; use AppBundle\Site\Form\RubriqueType; -use AppBundle\Site\Model\Repository\RubriqueRepository; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\DependencyInjection\Attribute\Autowire; use Symfony\Component\HttpFoundation\Request; @@ -21,9 +21,9 @@ public function __construct( private readonly Audit $audit, ) {} - public function __invoke(int $id,Request $request): Response + public function __invoke(int $id, Request $request): Response { - $rubrique = $this->rubriqueRepository->get($id); + $rubrique = $this->rubriqueRepository->find($id); $form = $this->createForm(RubriqueType::class, $rubrique); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { @@ -33,16 +33,16 @@ public function __invoke(int $id,Request $request): Response $safeFilename = hash('sha1', $originalFilename); $newFilename = $safeFilename . '.' . $file->guessExtension(); $file->move($this->storageDir, $newFilename); - $rubrique->setIcone($newFilename); + $rubrique->icone = $newFilename; } $this->rubriqueRepository->save($rubrique); - $this->audit->log('Modification de la Rubrique ' . $rubrique->getNom()); - $this->addFlash('notice', 'La rubrique ' . $rubrique->getNom() . ' a été modifiée'); + $this->audit->log('Modification de la Rubrique ' . $rubrique->nom); + $this->addFlash('notice', 'La rubrique ' . $rubrique->nom . ' a été modifiée'); return $this->redirectToRoute('admin_site_rubriques_list', [ - 'filter' => $rubrique->getNom(), + 'filter' => $rubrique->nom, ]); } - $icone = $rubrique->getIcone() !== null ? '/templates/site/images/' . $rubrique->getIcone() : false; + $icone = $rubrique->icone !== null ? '/templates/site/images/' . $rubrique->icone : false; return $this->render('admin/site/rubrique_form.html.twig', [ 'form' => $form->createView(), diff --git a/sources/AppBundle/Controller/Admin/Site/ListRubriquesAction.php b/sources/AppBundle/Controller/Admin/Site/ListRubriquesAction.php index ee7bd87ca..4b36d4a51 100644 --- a/sources/AppBundle/Controller/Admin/Site/ListRubriquesAction.php +++ b/sources/AppBundle/Controller/Admin/Site/ListRubriquesAction.php @@ -4,7 +4,7 @@ namespace AppBundle\Controller\Admin\Site; -use AppBundle\Site\Model\Repository\RubriqueRepository; +use AppBundle\Site\Entity\Repository\RubriqueRepository; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Twig\Environment; diff --git a/sources/AppBundle/Controller/Website/Cms/DisplayAction.php b/sources/AppBundle/Controller/Website/Cms/DisplayAction.php index 45b6f152c..620e42762 100644 --- a/sources/AppBundle/Controller/Website/Cms/DisplayAction.php +++ b/sources/AppBundle/Controller/Website/Cms/DisplayAction.php @@ -6,8 +6,8 @@ use AppBundle\Site\Model\Article; use AppBundle\Site\Model\Repository\ArticleRepository; -use AppBundle\Site\Model\Repository\RubriqueRepository; -use AppBundle\Site\Model\Rubrique; +use AppBundle\Site\Entity\Repository\RubriqueRepository; +use AppBundle\Site\Entity\Rubrique; use AppBundle\Twig\ViewRenderer; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; @@ -32,7 +32,7 @@ public function __invoke(string $code): Response throw $this->createAccessDeniedException(); } - $rubrique = $this->rubriqueRepository->get($article->getRubricId()); + $rubrique = $this->rubriqueRepository->find($article->getRubricId()); if (!$this->isRubriqueAllowed($rubrique)) { throw $this->createNotFoundException(); @@ -46,6 +46,6 @@ public function __invoke(string $code): Response protected function isRubriqueAllowed(Rubrique $rubrique): bool { - return in_array($rubrique->getId(), [Rubrique::ID_RUBRIQUE_ASSOCIATION, Rubrique::ID_RUBRIQUE_ANTENNES, Rubrique::ID_RUBRIQUE_INFORMATIONS_PRATIQUES, Rubrique::ID_RUBRIQUE_NOS_ACTIONS]); + return in_array($rubrique->id, [Rubrique::ID_RUBRIQUE_ASSOCIATION, Rubrique::ID_RUBRIQUE_ANTENNES, Rubrique::ID_RUBRIQUE_INFORMATIONS_PRATIQUES, Rubrique::ID_RUBRIQUE_NOS_ACTIONS]); } } diff --git a/sources/AppBundle/Site/Entity/Repository/RubriqueRepository.php b/sources/AppBundle/Site/Entity/Repository/RubriqueRepository.php new file mode 100644 index 000000000..6032a7cfa --- /dev/null +++ b/sources/AppBundle/Site/Entity/Repository/RubriqueRepository.php @@ -0,0 +1,43 @@ + + */ +final class RubriqueRepository extends EntityRepository +{ + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, Rubrique::class); + } + + /** + * @return Rubrique[] + */ + public function getAllRubriques(string $ordre = 'nom', string $direction = 'asc', string $filtre = ''): array + { + $allowedColumns = ['nom', 'date', 'etat', 'id', 'position']; + + if ($direction !== 'desc' && $direction !== 'asc') { + $direction = 'asc'; + } + + if (!in_array($ordre, $allowedColumns, true)) { + $ordre = 'nom'; + } + + return $this->createQueryBuilder('r') + ->where('r.nom LIKE :filtre') + ->setParameter('filtre', '%' . $filtre . '%') + ->orderBy('r.' . $ordre, $direction) + ->getQuery() + ->getResult(); + } +} diff --git a/sources/AppBundle/Site/Entity/Rubrique.php b/sources/AppBundle/Site/Entity/Rubrique.php new file mode 100644 index 000000000..5f3037c42 --- /dev/null +++ b/sources/AppBundle/Site/Entity/Rubrique.php @@ -0,0 +1,60 @@ += -(self::POSITIONS_RUBRIQUES); $i--) { + for ($i = self::POSITIONS_RUBRIQUES; $i >= -(self::POSITIONS_RUBRIQUES); $i--) { $positions[$i] = $i; } $rubriques = []; - foreach ($this->rubriqueRepository->getAll() as $rubrique) { - $rubriques[$rubrique->getNom()] = $rubrique->getId(); + foreach ($this->rubriqueRepository->findAll() as $rubrique) { + $rubriques[$rubrique->nom] = $rubrique->id; } $events = []; diff --git a/sources/AppBundle/Site/Form/RubriqueType.php b/sources/AppBundle/Site/Form/RubriqueType.php index b2084462e..ec4e9c256 100644 --- a/sources/AppBundle/Site/Form/RubriqueType.php +++ b/sources/AppBundle/Site/Form/RubriqueType.php @@ -6,7 +6,7 @@ use AppBundle\Association\Model\Repository\UserRepository; use AppBundle\Site\Entity\Repository\FeuilleRepository; -use AppBundle\Site\Model\Repository\RubriqueRepository; +use AppBundle\Site\Entity\Repository\RubriqueRepository; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\DateType; @@ -43,8 +43,8 @@ public function buildForm(FormBuilderInterface $builder, array $options): void $positions[$i] = $i; } $rubriques = []; - foreach ($this->rubriqueRepository->getAll() as $rubrique) { - $rubriques[$rubrique->getNom()] = $rubrique->getId(); + foreach ($this->rubriqueRepository->findAll() as $rubrique) { + $rubriques[$rubrique->nom] = $rubrique->id; } $builder ->add('nom', TextType::class, [