@extends('layouts.app') @section('title', 'Catalogue des formations — Concept X Formation') @section('meta_description', 'Découvrez nos 40+ formations certifiantes : développement web, community management, graphisme, bureautique, IA. Toutes éligibles CPF, OPCO, Pôle Emploi ou apprentissage.') @section('content') {{-- BREADCRUMB --}} {{-- HERO --}}
Toutes nos formations

Un catalogue
pensé pour votre métier.

{{ $formations->total() }} formations certifiantes, en distanciel ou en présentiel. Toutes éligibles à un financement (CPF, OPCO, Pôle Emploi, alternance).

{{-- FILTRES + GRILLE --}}
@php $filterUrl = function (array $changes) { $params = array_merge(request()->except('page'), $changes); foreach ($params as $key => $value) { if ($value === null || $value === '' || $value === 'tous') { unset($params[$key]); } } return route('catalogue', $params); }; @endphp {{-- Filtre Univers --}}
Univers Tous @foreach($univers as $u) {{ $u->libelle }} @endforeach
{{-- Filtre Format + Financement --}}
Format @foreach(['tous' => 'Tous', 'distanciel' => 'Distanciel', 'presentiel' => 'Présentiel', 'hybride' => 'Hybride'] as $val => $label) {{ $label }} @endforeach Financement Tous @foreach($financements as $f) {{ $f->libelle }} @endforeach
Tri @foreach(['pertinence' => 'Pertinence', 'prix' => 'Prix croissant', 'duree' => 'Durée croissante', 'popularite' => 'Popularité'] as $val => $label) {{ $label }} @endforeach
{{-- GRILLE --}}
@forelse($formations as $f) @php $imgClass = match($f->univers?->slug) { 'creatif' => 'creative', 'bureautique' => 'bureau', default => '', }; $badgePrincipal = $f->financements->first()?->libelle ?? ($f->code_rs ? 'RS' : ($f->code_rncp ? 'RNCP' : '')); $icone = mb_strtoupper(mb_substr($f->titre_court ?? $f->titre, 0, 2)); @endphp
@if($badgePrincipal) {{ $badgePrincipal }} @endif {{ $icone }}
{{ $f->univers?->libelle }} @if($f->code_rs) · RS{{ $f->code_rs }}@endif @if($f->code_rncp) · RNCP{{ $f->code_rncp }}@endif

{{ $f->titre }}

{{ $f->accroche }}

@if($f->duree_libelle){{ $f->duree_libelle }}@endif {{ ucfirst($f->format) }}
@if($f->prix_ttc_de) {{ number_format($f->prix_ttc_de, 0, ',', ' ') }} € @endif @foreach($f->financements->take(2) as $fin) ✓ {{ $fin->libelle }} @endforeach
@empty

Aucune formation ne correspond à ces critères.

Réinitialiser les filtres →
@endforelse
{{-- PAGINATION --}} @if($formations->hasPages())
Page {{ $formations->currentPage() }} sur {{ $formations->lastPage() }} · @if($formations->hasMorePages()) Voir plus de formations → @endif
{{ $formations->links() }} @endif
@endsection