src/Controller/JournalOfficielController.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Component\HttpFoundation\Request;
  7. class JournalOfficielController extends AbstractController
  8. {
  9. #[Route('/journal_officiel', name: 'app_journal_officiel')]
  10. public function index(Request $request): Response
  11. {
  12. // Récupérer les paramètres de filtrage
  13. $page = $request->query->getInt('page', 1);
  14. $year = $request->query->get('year', '');
  15. $numero = $request->query->get('numero', '');
  16. // Données simulées - à remplacer par votre base de données
  17. $numeros = [
  18. [
  19. 'id' => 1,
  20. 'numero' => '2026-015',
  21. 'datePublication' => new \DateTime('2026-03-01'),
  22. 'nbActes' => 12,
  23. 'pdfUrl' => '/pdf/jo-2026-015.pdf',
  24. 'htmlUrl' => null,
  25. 'description' => 'Lois sur la modernisation administrative'
  26. ],
  27. [
  28. 'id' => 2,
  29. 'numero' => '2026-014',
  30. 'datePublication' => new \DateTime('2026-02-25'),
  31. 'nbActes' => 8,
  32. 'pdfUrl' => '/pdf/jo-2026-014.pdf',
  33. 'htmlUrl' => null,
  34. 'description' => 'Décrets relatifs aux nominations'
  35. ],
  36. [
  37. 'id' => 3,
  38. 'numero' => '2026-013',
  39. 'datePublication' => new \DateTime('2026-02-20'),
  40. 'nbActes' => 15,
  41. 'pdfUrl' => '/pdf/jo-2026-013.pdf',
  42. 'htmlUrl' => null,
  43. 'description' => 'Arrêtés interministériels'
  44. ],
  45. [
  46. 'id' => 4,
  47. 'numero' => '2026-012',
  48. 'datePublication' => new \DateTime('2026-02-15'),
  49. 'nbActes' => 10,
  50. 'pdfUrl' => '/pdf/jo-2026-012.pdf',
  51. 'htmlUrl' => null,
  52. 'description' => 'Annonces légales et appels d\'offres'
  53. ],
  54. [
  55. 'id' => 5,
  56. 'numero' => '2026-011',
  57. 'datePublication' => new \DateTime('2026-02-10'),
  58. 'nbActes' => 7,
  59. 'pdfUrl' => '/pdf/jo-2026-011.pdf',
  60. 'htmlUrl' => null,
  61. 'description' => 'Textes réglementaires'
  62. ],
  63. ];
  64. $years = ['2026', '2025', '2024', '2023', '2022'];
  65. return $this->render('journal_officiel/index.html.twig', [
  66. 'numeros' => $numeros,
  67. 'currentPage' => $page,
  68. 'selectedYear' => $year,
  69. 'selectedNumero' => $numero,
  70. 'years' => $years,
  71. 'totalPages' => 1,
  72. ]);
  73. }
  74. #[Route('/journal_officiel/{id}', name: 'app_journal_officiel_show')]
  75. public function show(int $id): Response
  76. {
  77. // Données simulées - à remplacer par votre base de données
  78. $numero = [
  79. 'id' => $id,
  80. 'numero' => '2026-015',
  81. 'datePublication' => new \DateTime('2026-03-01'),
  82. 'nbActes' => 12,
  83. 'pdfUrl' => '/pdf/jo-2026-015.pdf',
  84. 'actes' => [
  85. [
  86. 'id' => 1,
  87. 'type' => 'Loi',
  88. 'titre' => 'Loi n° 2026-015/AU portant modernisation du Journal Officiel',
  89. 'page_debut' => 2,
  90. 'page_fin' => 15,
  91. 'institution' => 'Assemblée nationale'
  92. ],
  93. [
  94. 'id' => 2,
  95. 'type' => 'Décret',
  96. 'titre' => 'Décret n° 2026-045/PR portant nomination des membres du gouvernement',
  97. 'page_debut' => 16,
  98. 'page_fin' => 18,
  99. 'institution' => 'Présidence de l\'Union'
  100. ],
  101. [
  102. 'id' => 3,
  103. 'type' => 'Arrêté',
  104. 'titre' => 'Arrêté n° 2026-089/MF portant fixation du budget 2026',
  105. 'page_debut' => 19,
  106. 'page_fin' => 25,
  107. 'institution' => 'Ministère des Finances'
  108. ],
  109. ]
  110. ];
  111. return $this->render('journal_officiel/show.html.twig', [
  112. 'numero' => $numero
  113. ]);
  114. }
  115. }