Loading index.php +7 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,8 @@ // Le retour se chargera aussi de gérer les exceptions avec un try / catch require_once 'src/controllers/controleur.php'; require_once 'src/controllers/listeRecettes.php'; require_once 'src/controllers/accueil.php'; try{ Loading @@ -19,6 +21,11 @@ try{ // Si ça ne correspond à aucune page, on renvoie vers la page d'erreur // (pour l'instant on a pas d'autre page, donc on retourne forcément une erreur) switch($_GET['action']){ case 'listeRecettes': $controller = new ListeRecettesControleur; $controller->executer(); break; default: throw new Exception("la page demandée n'a pas été trouvée"); } Loading src/controllers/listeRecettes.php +5 −1 Original line number Diff line number Diff line Loading @@ -3,9 +3,13 @@ require_once 'src/model/recetteManager.php'; require_once 'src/controllers/controleur.php'; require_once 'templates/carteRecette.php'; require_once 'templates/nosRecettes.php'; class ListeRecettesControleur extends Controleur{ public function executer() { $recettes = (new RecetteManager)->getRecettes(); afficherListeRecettes($recettes); } } No newline at end of file templates/carteRecette.php 0 → 100644 +28 −0 Original line number Diff line number Diff line <?php // Ceci est une vue bidon // Une vue se contente de récupérer les variables qu'on lui donne est de formatter la page html // Le code HTML sera placé en énorme majorité dans les vues et le layout require_once('./src/model/recette.php'); function afficher($recette){?> <div class="col"> <div class="d-flex flex-column flex-lg-row"> <div class="w-100" style="max-width: initial;"><img class="rounded img-fluid d-block w-100 fit-cover" style="height: 200px;" src= "<?=$recette->getUrlImage()?>"> <ul style="background: transparent;padding-left: 0;border: 2px none var(--bs-primary-text-emphasis) ;border-left-color: var(--bs-primary-text-emphasis);"> <li style="background: var(--bs-primary-border-subtle);border-radius: 54px;border-top-left-radius: 0;border-bottom-left-radius: 0;text-align: center;border-style: solid;border-color: var(--bs-primary);">tag 1</li> <li style="background: var(--bs-primary-border-subtle);border-radius: 54px;border-top-left-radius: 0;border-bottom-left-radius: 0;text-align: center;border-style: solid;border-color: var(--bs-primary);">tag 1</li> <li style="background: var(--bs-primary-border-subtle);border-radius: 54px;border-top-left-radius: 0;border-bottom-left-radius: 0;text-align: center;border-style: solid;border-color: var(--bs-primary);">tag 1</li> <li style="background: var(--bs-primary-border-subtle);border-radius: 54px;border-top-left-radius: 0;border-bottom-left-radius: 0;text-align: center;border-style: solid;border-color: var(--bs-primary);">tag 1</li> </ul> </div> <div class="py-4 py-lg-0 px-lg-4" style="width: 100%;"> <h4><?= $recette->getTitre() ?></h4> <p></p> <p><?= $recette->getResume()?></p> </div> </div> </div> <?php } templates/layout.php +2 −2 Original line number Diff line number Diff line Loading @@ -27,8 +27,8 @@ <div class="container"><a class="navbar-brand d-flex align-items-center" href="#" style="width: 200px;height: 70px;padding: 0px;margin: 0px;"><span class="bs-icon-sm bs-icon-rounded bs-icon-primary d-flex justify-content-center align-items-center me-2 bs-icon" style="transform: translate(0px);width: inherit;height: inherit;margin: 5mm;background: transparent;margin-right: 5mm;"><img src="assets/img/Logo.png" style="width: inherit;display: flex;position: static;overflow: auto;height: inherit;margin: initial;"></span></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navcol-5"><span class="visually-hidden">Toggle navigation</span><span class="navbar-toggler-icon"></span></button> <div class="collapse navbar-collapse" id="navcol-5" style="font-family: sans-serif;font-size: 25px;"> <ul class="navbar-nav ms-auto"> <li class="nav-item"><a class="nav-link active" href="#">Accueil</a></li> <li class="nav-item"><a class="nav-link" href="#">Nos recettes</a></li> <li class="nav-item"><a class="nav-link active" href=".">Accueil</a></li> <li class="nav-item"><a class="nav-link" href=".?action=listeRecettes">Nos recettes</a></li> <li class="nav-item"></li> <li class="nav-item dropdown show"><a class="dropdown-toggle nav-link" aria-expanded="true" data-bs-toggle="dropdown" href="#">Filtres </a> <div class="dropdown-menu" data-bs-popper="none" style="--bs-body-bg: var(--bs-primary);background: var(--bs-secondary);" data-bs-theme="light"><a class="dropdown-item" href="#" data-bs-theme="light"><span style="color: rgb(42, 57, 144); background-color: rgba(42, 57, 144, 0);">Catégories</span></a><a class="dropdown-item" href="#"><span style="color: rgb(42, 57, 144);">Titre</span></a><a class="dropdown-item" href="#"><span style="color: rgb(42, 57, 144);">Ingredients</span></a></div> Loading templates/nosRecettes.php 0 → 100644 +42 −0 Original line number Diff line number Diff line <?php // Ceci est une vue bidon // Une vue se contente de récupérer les variables qu'on lui donne est de formatter la page html // Le code HTML sera placé en énorme majorité dans les vues et le layout require_once 'templates/carteRecette.php'; require_once 'src/model/recette.php'; function afficherListeRecettes($recettes){ $titre = 'Nos Recettes'; // ob_start crée un buffer qui va récupérer tout ce qui est censé être affiché (echo + HTML) ob_start(); ?> <div class="container py-4 py-xl-5"> <div class="row mb-5"> <div class="col-md-8 col-xl-6 text-center mx-auto"> <h2>Nos recettes</h2> <p class="w-lg-50">Les recettes pour vos p'tits gloutons, certifiées savoureux par notre équipe de cuistots du dimanche</p> </div> </div> <div class="row gy-4 row-cols-1 row-cols-md-2"> <?php foreach($recettes as $recette){ if($recette->estValide()){ afficher($recette); } } ?> </div> </div> <div class="container py-4 py-xl-5"><button class="btn btn-primary" type="button" style="width: 3em;height: 3em;border-radius: 50%;font-size: 34px;padding-bottom: 10px;margin: auto;display: block;">+</button></div> <script src="assets/bootstrap/js/bootstrap.min.js"></script> <script src="assets/js/Simple-Slider-swiper-bundle.min.js"></script> <script src="assets/js/Simple-Slider.js"></script> <?php $contenu = ob_get_clean(); require 'templates/layout.php'; } No newline at end of file Loading
index.php +7 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,8 @@ // Le retour se chargera aussi de gérer les exceptions avec un try / catch require_once 'src/controllers/controleur.php'; require_once 'src/controllers/listeRecettes.php'; require_once 'src/controllers/accueil.php'; try{ Loading @@ -19,6 +21,11 @@ try{ // Si ça ne correspond à aucune page, on renvoie vers la page d'erreur // (pour l'instant on a pas d'autre page, donc on retourne forcément une erreur) switch($_GET['action']){ case 'listeRecettes': $controller = new ListeRecettesControleur; $controller->executer(); break; default: throw new Exception("la page demandée n'a pas été trouvée"); } Loading
src/controllers/listeRecettes.php +5 −1 Original line number Diff line number Diff line Loading @@ -3,9 +3,13 @@ require_once 'src/model/recetteManager.php'; require_once 'src/controllers/controleur.php'; require_once 'templates/carteRecette.php'; require_once 'templates/nosRecettes.php'; class ListeRecettesControleur extends Controleur{ public function executer() { $recettes = (new RecetteManager)->getRecettes(); afficherListeRecettes($recettes); } } No newline at end of file
templates/carteRecette.php 0 → 100644 +28 −0 Original line number Diff line number Diff line <?php // Ceci est une vue bidon // Une vue se contente de récupérer les variables qu'on lui donne est de formatter la page html // Le code HTML sera placé en énorme majorité dans les vues et le layout require_once('./src/model/recette.php'); function afficher($recette){?> <div class="col"> <div class="d-flex flex-column flex-lg-row"> <div class="w-100" style="max-width: initial;"><img class="rounded img-fluid d-block w-100 fit-cover" style="height: 200px;" src= "<?=$recette->getUrlImage()?>"> <ul style="background: transparent;padding-left: 0;border: 2px none var(--bs-primary-text-emphasis) ;border-left-color: var(--bs-primary-text-emphasis);"> <li style="background: var(--bs-primary-border-subtle);border-radius: 54px;border-top-left-radius: 0;border-bottom-left-radius: 0;text-align: center;border-style: solid;border-color: var(--bs-primary);">tag 1</li> <li style="background: var(--bs-primary-border-subtle);border-radius: 54px;border-top-left-radius: 0;border-bottom-left-radius: 0;text-align: center;border-style: solid;border-color: var(--bs-primary);">tag 1</li> <li style="background: var(--bs-primary-border-subtle);border-radius: 54px;border-top-left-radius: 0;border-bottom-left-radius: 0;text-align: center;border-style: solid;border-color: var(--bs-primary);">tag 1</li> <li style="background: var(--bs-primary-border-subtle);border-radius: 54px;border-top-left-radius: 0;border-bottom-left-radius: 0;text-align: center;border-style: solid;border-color: var(--bs-primary);">tag 1</li> </ul> </div> <div class="py-4 py-lg-0 px-lg-4" style="width: 100%;"> <h4><?= $recette->getTitre() ?></h4> <p></p> <p><?= $recette->getResume()?></p> </div> </div> </div> <?php }
templates/layout.php +2 −2 Original line number Diff line number Diff line Loading @@ -27,8 +27,8 @@ <div class="container"><a class="navbar-brand d-flex align-items-center" href="#" style="width: 200px;height: 70px;padding: 0px;margin: 0px;"><span class="bs-icon-sm bs-icon-rounded bs-icon-primary d-flex justify-content-center align-items-center me-2 bs-icon" style="transform: translate(0px);width: inherit;height: inherit;margin: 5mm;background: transparent;margin-right: 5mm;"><img src="assets/img/Logo.png" style="width: inherit;display: flex;position: static;overflow: auto;height: inherit;margin: initial;"></span></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navcol-5"><span class="visually-hidden">Toggle navigation</span><span class="navbar-toggler-icon"></span></button> <div class="collapse navbar-collapse" id="navcol-5" style="font-family: sans-serif;font-size: 25px;"> <ul class="navbar-nav ms-auto"> <li class="nav-item"><a class="nav-link active" href="#">Accueil</a></li> <li class="nav-item"><a class="nav-link" href="#">Nos recettes</a></li> <li class="nav-item"><a class="nav-link active" href=".">Accueil</a></li> <li class="nav-item"><a class="nav-link" href=".?action=listeRecettes">Nos recettes</a></li> <li class="nav-item"></li> <li class="nav-item dropdown show"><a class="dropdown-toggle nav-link" aria-expanded="true" data-bs-toggle="dropdown" href="#">Filtres </a> <div class="dropdown-menu" data-bs-popper="none" style="--bs-body-bg: var(--bs-primary);background: var(--bs-secondary);" data-bs-theme="light"><a class="dropdown-item" href="#" data-bs-theme="light"><span style="color: rgb(42, 57, 144); background-color: rgba(42, 57, 144, 0);">Catégories</span></a><a class="dropdown-item" href="#"><span style="color: rgb(42, 57, 144);">Titre</span></a><a class="dropdown-item" href="#"><span style="color: rgb(42, 57, 144);">Ingredients</span></a></div> Loading
templates/nosRecettes.php 0 → 100644 +42 −0 Original line number Diff line number Diff line <?php // Ceci est une vue bidon // Une vue se contente de récupérer les variables qu'on lui donne est de formatter la page html // Le code HTML sera placé en énorme majorité dans les vues et le layout require_once 'templates/carteRecette.php'; require_once 'src/model/recette.php'; function afficherListeRecettes($recettes){ $titre = 'Nos Recettes'; // ob_start crée un buffer qui va récupérer tout ce qui est censé être affiché (echo + HTML) ob_start(); ?> <div class="container py-4 py-xl-5"> <div class="row mb-5"> <div class="col-md-8 col-xl-6 text-center mx-auto"> <h2>Nos recettes</h2> <p class="w-lg-50">Les recettes pour vos p'tits gloutons, certifiées savoureux par notre équipe de cuistots du dimanche</p> </div> </div> <div class="row gy-4 row-cols-1 row-cols-md-2"> <?php foreach($recettes as $recette){ if($recette->estValide()){ afficher($recette); } } ?> </div> </div> <div class="container py-4 py-xl-5"><button class="btn btn-primary" type="button" style="width: 3em;height: 3em;border-radius: 50%;font-size: 34px;padding-bottom: 10px;margin: auto;display: block;">+</button></div> <script src="assets/bootstrap/js/bootstrap.min.js"></script> <script src="assets/js/Simple-Slider-swiper-bundle.min.js"></script> <script src="assets/js/Simple-Slider.js"></script> <?php $contenu = ob_get_clean(); require 'templates/layout.php'; } No newline at end of file