index.php
Le catalogue : lit le paramètre de domaine, demande la liste au DAO, affiche les cartes.
<?php require_once 'accesseur/ContratDAO.php'; // Dictionnaire de traduction (Slug -> Valeur en BDD) $traductionsDomaines = [ 'developpement-web' => 'Développement Web', 'mobile' => 'Mobile', 'cybersecurite' => 'Cybersécurité', 'logiciels-pro' => 'Logiciels Pro' ]; $domaineFiltreSlug = null; $domaineFiltreBDD = null; if (isset($_GET['domaine']) && !empty($_GET['domaine'])) { $domaineFiltreSlug = $_GET['domaine']; // Si le slug existe dans notre dictionnaire, on filtre if (isset($traductionsDomaines[$domaineFiltreSlug])) { $domaineFiltreBDD = $traductionsDomaines[$domaineFiltreSlug]; $listeContrats = ContratDAO::listerContratsParDomaineActifs($domaineFiltreBDD); } else { // Fallback si URL invalide $listeContrats = ContratDAO::listerContratsActifs(); } } else { $listeContrats = ContratDAO::listerContratsActifs(); } include 'entete.php'; ?> <section id="contenu"> <aside id="panneau-lateral"> <h3>Filtrer par domaine</h3> <ul id="liste-categories"> <li class="categorie-item"><a href="index.php" style="color: inherit; text-decoration: <?= !$domaineFiltreSlug ? 'underline' : 'none' ?>;">Tous les contrats</a></li> <li class="categorie-item"><a href="index.php?domaine=developpement-web" style="color: inherit; text-decoration: <?= ($domaineFiltreSlug === 'developpement-web') ? 'underline' : 'none' ?>;">Développement Web</a></li> <li class="categorie-item"><a href="index.php?domaine=mobile" style="color: inherit; text-decoration: <?= ($domaineFiltreSlug === 'mobile') ? 'underline' : 'none' ?>;">Applications Mobile</a></li> <li class="categorie-item"><a href="index.php?domaine=cybersecurite" style="color: inherit; text-decoration: <?= ($domaineFiltreSlug === 'cybersecurite') ? 'underline' : 'none' ?>;">Cybersécurité</a></li> <li class="categorie-item"><a href="index.php?domaine=logiciels-pro" style="color: inherit; text-decoration: <?= ($domaineFiltreSlug === 'logiciels-pro') ? 'underline' : 'none' ?>;">Logiciels Pro</a></li> </ul> </aside> <main id="affichage-principal"> <div id="navigation-historique"><a href="index.php">Accueil</a> > Tous les contrats > <span><?= $domaineFiltreBDD ? htmlspecialchars($domaineFiltreBDD) : 'Nouveautés' ?></span></div> <div id="liste-contrats"> <?php if(empty($listeContrats)): ?> <p style="padding: 20px;">Aucun contrat disponible dans ce domaine pour le moment.</p> <?php else: ?> <?php foreach($listeContrats as $contrat): ?> <article class="contrat" onclick="window.location.href='contrat.php?id=<?= $contrat->id ?>';"> <a href="contrat.php?id=<?= $contrat->id ?>" class="contrat-lien"> <div class="contrat-client"><?= $contrat->icone ?></div> <div class="contrat-reference"><?= $contrat->reference ?> | <?= $contrat->typeService ?></div> <h4><?= $contrat->titre ?></h4> <div class="contrat-evaluation"><?= $contrat->etoilesCalculees ?> <span>(<?= $contrat->nombreEvaluations ?> évaluations)</span></div> <div class="contrat-prix"> <span class="contrat-prix-symbole">$</span><?= $contrat->prixDollars ?><span class="contrat-prix-cents"><?= $contrat->prixCents ?></span> </div> <button class="action-contrat-ajout">Ajouter au panier</button> </a> </article> <?php endforeach; ?> <?php endif; ?> </div> </main> </section> <?php include 'pied-page.php'; ?>