<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
class JournalOfficielController extends AbstractController
{
#[Route('/journal_officiel', name: 'app_journal_officiel')]
public function index(Request $request): Response
{
// Récupérer les paramètres de filtrage
$page = $request->query->getInt('page', 1);
$year = $request->query->get('year', '');
$numero = $request->query->get('numero', '');
// Données simulées - à remplacer par votre base de données
$numeros = [
[
'id' => 1,
'numero' => '2026-015',
'datePublication' => new \DateTime('2026-03-01'),
'nbActes' => 12,
'pdfUrl' => '/pdf/jo-2026-015.pdf',
'htmlUrl' => null,
'description' => 'Lois sur la modernisation administrative'
],
[
'id' => 2,
'numero' => '2026-014',
'datePublication' => new \DateTime('2026-02-25'),
'nbActes' => 8,
'pdfUrl' => '/pdf/jo-2026-014.pdf',
'htmlUrl' => null,
'description' => 'Décrets relatifs aux nominations'
],
[
'id' => 3,
'numero' => '2026-013',
'datePublication' => new \DateTime('2026-02-20'),
'nbActes' => 15,
'pdfUrl' => '/pdf/jo-2026-013.pdf',
'htmlUrl' => null,
'description' => 'Arrêtés interministériels'
],
[
'id' => 4,
'numero' => '2026-012',
'datePublication' => new \DateTime('2026-02-15'),
'nbActes' => 10,
'pdfUrl' => '/pdf/jo-2026-012.pdf',
'htmlUrl' => null,
'description' => 'Annonces légales et appels d\'offres'
],
[
'id' => 5,
'numero' => '2026-011',
'datePublication' => new \DateTime('2026-02-10'),
'nbActes' => 7,
'pdfUrl' => '/pdf/jo-2026-011.pdf',
'htmlUrl' => null,
'description' => 'Textes réglementaires'
],
];
$years = ['2026', '2025', '2024', '2023', '2022'];
return $this->render('journal_officiel/index.html.twig', [
'numeros' => $numeros,
'currentPage' => $page,
'selectedYear' => $year,
'selectedNumero' => $numero,
'years' => $years,
'totalPages' => 1,
]);
}
#[Route('/journal_officiel/{id}', name: 'app_journal_officiel_show')]
public function show(int $id): Response
{
// Données simulées - à remplacer par votre base de données
$numero = [
'id' => $id,
'numero' => '2026-015',
'datePublication' => new \DateTime('2026-03-01'),
'nbActes' => 12,
'pdfUrl' => '/pdf/jo-2026-015.pdf',
'actes' => [
[
'id' => 1,
'type' => 'Loi',
'titre' => 'Loi n° 2026-015/AU portant modernisation du Journal Officiel',
'page_debut' => 2,
'page_fin' => 15,
'institution' => 'Assemblée nationale'
],
[
'id' => 2,
'type' => 'Décret',
'titre' => 'Décret n° 2026-045/PR portant nomination des membres du gouvernement',
'page_debut' => 16,
'page_fin' => 18,
'institution' => 'Présidence de l\'Union'
],
[
'id' => 3,
'type' => 'Arrêté',
'titre' => 'Arrêté n° 2026-089/MF portant fixation du budget 2026',
'page_debut' => 19,
'page_fin' => 25,
'institution' => 'Ministère des Finances'
],
]
];
return $this->render('journal_officiel/show.html.twig', [
'numero' => $numero
]);
}
}