Loading assets/js/menuRecherche.js 0 → 100644 +14 −0 Original line number Diff line number Diff line document.getElementById('tag').addEventListener("click", () => { document.getElementById("searchbar").classList.remove('visually-hidden'); document.getElementById('filtre').setAttribute('value','tag') document.getElementById("info_recherche").classList.remove('visually-hidden'); }) document.getElementById('titre').addEventListener("click", () => { document.getElementById("searchbar").classList.remove('visually-hidden'); document.getElementById('filtre').setAttribute('value','titre') }) document.getElementById('ingredients').addEventListener("click", () => { document.getElementById("searchbar").classList.remove('visually-hidden'); document.getElementById('filtre').setAttribute('value','ingredient') document.getElementById("info_recherche").classList.remove('visually-hidden'); }) No newline at end of file src/model/recetteManager.php +6 −3 Original line number Diff line number Diff line Loading @@ -512,7 +512,8 @@ class RecetteManager extends Manager { $requete = "SELECT * FROM CUI_RECETTE JOIN CUI_CATEGORIE USING (CAT_CODE) JOIN CUI_UTILISATEUR USING (UTIL_ID) WHERE CUI_RECETTE.REC_ID IN(SELECT REC_ID FROM CUI_COMPOSITION WHERE ING_ID IN ("; foreach ($VALUE as $item){ $requete=$requete."SELECT ING_ID FROM CUI_INGREDIENT WHERE UPPER(ING_INTITULE)=UPPER('{$item}')"; $requete=$requete." SELECT ING_ID FROM CUI_INGREDIENT WHERE UPPER(ING_INTITULE)=UPPER('{$item}') "; if ($VALUE[count($VALUE)-1]!==$item){ $requete=$requete." UNION "; } Loading @@ -525,7 +526,9 @@ class RecetteManager extends Manager { JOIN CUI_UTILISATEUR USING (UTIL_ID) WHERE UPPER(REC_TITRE) LIKE (UPPER('%{$VALUE}%'))"; break; case "categorie" : $requete = "SELECT * FROM CUI_RECETTE WHERE CAT_CODE='{$VALUE}'"; $VALUE=(new CategorieManager())->getCodeCategorie($VALUE); $requete = "SELECT * FROM CUI_RECETTE JOIN CUI_CATEGORIE USING (CAT_CODE) JOIN CUI_UTILISATEUR USING (UTIL_ID) WHERE CAT_CODE='{$VALUE}'"; } $resultat = self::projectionBdd($requete) ; Loading templates/layout.php +36 −6 Original line number Diff line number Diff line Loading @@ -7,7 +7,8 @@ <?php require_once 'src/controllers/connexion.php'; require_once 'src/model/categorieManager.php'; $categories=(new CategorieManager())->getCategories(); $connecte = ConnexionController::estConnecte(); ?> Loading Loading @@ -36,19 +37,31 @@ $connecte = ConnexionController::estConnecte(); <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> <li class="nav-item dropdown"><a class="dropdown-toggle nav-link" aria-expanded="true" data-bs-toggle="dropdown" href="#">Filtres </a> <div class="dropdown-menu has-submenu" data-bs-popper="none" style="--bs-body-bg: var(--bs-primary);background: var(--bs-secondary);" data-bs-theme="light"> <a id="tag" class="dropdown-item" data-bs-theme="light"><span style="color: rgb(42, 57, 144); background-color: rgba(42, 57, 144, 0);">Tag</span></a> <a id="titre" class="dropdown-item" ><span style="color: rgb(42, 57, 144);">Titre</span></a> <a id="ingredients" class="dropdown-item"><span style="color: rgb(42, 57, 144);">Ingredients</span></a> </div> </li> <li class="nav-item dropdown"><a class="dropdown-toggle nav-link" aria-expanded="true" data-bs-toggle="dropdown" href="#">Catégories </a> <div class="dropdown-menu has-submenu" data-bs-popper="none" style="--bs-body-bg: var(--bs-primary);background: var(--bs-secondary);" data-bs-theme="light"> <?php foreach ((new CategorieManager())->getCategories() as $category ){ ?><a class="dropdown-item" data-bs-theme="light" href="?action=recette-filtre&filtre=categorie&search=<?=$category?>"><span style="color: rgb(42, 57, 144); background-color: rgba(42, 57, 144, 0);"><?=$category?></span></a> <?php ;} ?> </div> </li> <?php //TODO Menu pour les utilisateurs connectés ; pour l'instant, on affiche juste Connecté... ?> <?php if($connecte){ ?> <li class="nav-item dropdown"><a class="dropdown-toggle nav-link" aria-expanded="true" data-bs-toggle="dropdown" href="#" style="background: var(--bs-primary);border-radius: 22px;color: var(--bs-light-text-emphasis);">Profil <img src="assets/img/Pticuisto.png" style="width: 2em;height: 2em;"></a> <div class="dropdown-menu show" data-bs-popper="none" style="--bs-body-bg: var(--bs-primary);background: var(--bs-secondary);"><a class="dropdown-item" href="#">Mes recettes</a><a class="dropdown-item" href="#">Nouvelle Recette</a><a class="dropdown-item" id="boutonDeconnexion" href="#">Se Déconnecter</a></div> <div class="dropdown-menu" data-bs-popper="none" style="--bs-body-bg: var(--bs-primary);background: var(--bs-secondary);"><a class="dropdown-item" href="#">Mes recettes</a><a class="dropdown-item" href="#">Nouvelle Recette</a><a class="dropdown-item" id="boutonDeconnexion" href="#">Se Déconnecter</a></div> </li> <?php } Loading @@ -64,6 +77,22 @@ $connecte = ConnexionController::estConnecte(); </div> </div> </nav> <div class="row visually-hidden" id="searchbar"> <div class="col-md-10 offset-md-1"> <div class="card m-auto" style="max-width:850px"> <div class="card-body"> <form class="d-flex align-items-center" action="index.php" method="get"> <input type="hidden" name="action" value="recette-filtre"> <i class="fas fa-search d-none d-sm-block h4 text-body m-0"></i> <input class="form-control form-control-lg flex-shrink-1 form-control-borderless" type="search" placeholder="recherchez" name="search"> <input type="hidden" id="filtre" name="filtre" value=""> <p class="visually-hidden" id="info_recherche">ecrivez les éléments séparés par des virgules</p> <button class="btn btn-success btn-lg" type="submit">Search</button></form> </div> </div> </div> </div> <?=$contenu?> <footer class="text-center" style="background: var(--bs-primary);"> <div class="container text-white py-4 py-lg-5" style="background: var(--bs-primary);"> Loading @@ -82,6 +111,7 @@ $connecte = ConnexionController::estConnecte(); <p>Copyright ©Les cuistots du dimanche 2023</p> </div> </footer> <script src="/assets/js/menuRecherche.js" <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> Loading Loading
assets/js/menuRecherche.js 0 → 100644 +14 −0 Original line number Diff line number Diff line document.getElementById('tag').addEventListener("click", () => { document.getElementById("searchbar").classList.remove('visually-hidden'); document.getElementById('filtre').setAttribute('value','tag') document.getElementById("info_recherche").classList.remove('visually-hidden'); }) document.getElementById('titre').addEventListener("click", () => { document.getElementById("searchbar").classList.remove('visually-hidden'); document.getElementById('filtre').setAttribute('value','titre') }) document.getElementById('ingredients').addEventListener("click", () => { document.getElementById("searchbar").classList.remove('visually-hidden'); document.getElementById('filtre').setAttribute('value','ingredient') document.getElementById("info_recherche").classList.remove('visually-hidden'); }) No newline at end of file
src/model/recetteManager.php +6 −3 Original line number Diff line number Diff line Loading @@ -512,7 +512,8 @@ class RecetteManager extends Manager { $requete = "SELECT * FROM CUI_RECETTE JOIN CUI_CATEGORIE USING (CAT_CODE) JOIN CUI_UTILISATEUR USING (UTIL_ID) WHERE CUI_RECETTE.REC_ID IN(SELECT REC_ID FROM CUI_COMPOSITION WHERE ING_ID IN ("; foreach ($VALUE as $item){ $requete=$requete."SELECT ING_ID FROM CUI_INGREDIENT WHERE UPPER(ING_INTITULE)=UPPER('{$item}')"; $requete=$requete." SELECT ING_ID FROM CUI_INGREDIENT WHERE UPPER(ING_INTITULE)=UPPER('{$item}') "; if ($VALUE[count($VALUE)-1]!==$item){ $requete=$requete." UNION "; } Loading @@ -525,7 +526,9 @@ class RecetteManager extends Manager { JOIN CUI_UTILISATEUR USING (UTIL_ID) WHERE UPPER(REC_TITRE) LIKE (UPPER('%{$VALUE}%'))"; break; case "categorie" : $requete = "SELECT * FROM CUI_RECETTE WHERE CAT_CODE='{$VALUE}'"; $VALUE=(new CategorieManager())->getCodeCategorie($VALUE); $requete = "SELECT * FROM CUI_RECETTE JOIN CUI_CATEGORIE USING (CAT_CODE) JOIN CUI_UTILISATEUR USING (UTIL_ID) WHERE CAT_CODE='{$VALUE}'"; } $resultat = self::projectionBdd($requete) ; Loading
templates/layout.php +36 −6 Original line number Diff line number Diff line Loading @@ -7,7 +7,8 @@ <?php require_once 'src/controllers/connexion.php'; require_once 'src/model/categorieManager.php'; $categories=(new CategorieManager())->getCategories(); $connecte = ConnexionController::estConnecte(); ?> Loading Loading @@ -36,19 +37,31 @@ $connecte = ConnexionController::estConnecte(); <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> <li class="nav-item dropdown"><a class="dropdown-toggle nav-link" aria-expanded="true" data-bs-toggle="dropdown" href="#">Filtres </a> <div class="dropdown-menu has-submenu" data-bs-popper="none" style="--bs-body-bg: var(--bs-primary);background: var(--bs-secondary);" data-bs-theme="light"> <a id="tag" class="dropdown-item" data-bs-theme="light"><span style="color: rgb(42, 57, 144); background-color: rgba(42, 57, 144, 0);">Tag</span></a> <a id="titre" class="dropdown-item" ><span style="color: rgb(42, 57, 144);">Titre</span></a> <a id="ingredients" class="dropdown-item"><span style="color: rgb(42, 57, 144);">Ingredients</span></a> </div> </li> <li class="nav-item dropdown"><a class="dropdown-toggle nav-link" aria-expanded="true" data-bs-toggle="dropdown" href="#">Catégories </a> <div class="dropdown-menu has-submenu" data-bs-popper="none" style="--bs-body-bg: var(--bs-primary);background: var(--bs-secondary);" data-bs-theme="light"> <?php foreach ((new CategorieManager())->getCategories() as $category ){ ?><a class="dropdown-item" data-bs-theme="light" href="?action=recette-filtre&filtre=categorie&search=<?=$category?>"><span style="color: rgb(42, 57, 144); background-color: rgba(42, 57, 144, 0);"><?=$category?></span></a> <?php ;} ?> </div> </li> <?php //TODO Menu pour les utilisateurs connectés ; pour l'instant, on affiche juste Connecté... ?> <?php if($connecte){ ?> <li class="nav-item dropdown"><a class="dropdown-toggle nav-link" aria-expanded="true" data-bs-toggle="dropdown" href="#" style="background: var(--bs-primary);border-radius: 22px;color: var(--bs-light-text-emphasis);">Profil <img src="assets/img/Pticuisto.png" style="width: 2em;height: 2em;"></a> <div class="dropdown-menu show" data-bs-popper="none" style="--bs-body-bg: var(--bs-primary);background: var(--bs-secondary);"><a class="dropdown-item" href="#">Mes recettes</a><a class="dropdown-item" href="#">Nouvelle Recette</a><a class="dropdown-item" id="boutonDeconnexion" href="#">Se Déconnecter</a></div> <div class="dropdown-menu" data-bs-popper="none" style="--bs-body-bg: var(--bs-primary);background: var(--bs-secondary);"><a class="dropdown-item" href="#">Mes recettes</a><a class="dropdown-item" href="#">Nouvelle Recette</a><a class="dropdown-item" id="boutonDeconnexion" href="#">Se Déconnecter</a></div> </li> <?php } Loading @@ -64,6 +77,22 @@ $connecte = ConnexionController::estConnecte(); </div> </div> </nav> <div class="row visually-hidden" id="searchbar"> <div class="col-md-10 offset-md-1"> <div class="card m-auto" style="max-width:850px"> <div class="card-body"> <form class="d-flex align-items-center" action="index.php" method="get"> <input type="hidden" name="action" value="recette-filtre"> <i class="fas fa-search d-none d-sm-block h4 text-body m-0"></i> <input class="form-control form-control-lg flex-shrink-1 form-control-borderless" type="search" placeholder="recherchez" name="search"> <input type="hidden" id="filtre" name="filtre" value=""> <p class="visually-hidden" id="info_recherche">ecrivez les éléments séparés par des virgules</p> <button class="btn btn-success btn-lg" type="submit">Search</button></form> </div> </div> </div> </div> <?=$contenu?> <footer class="text-center" style="background: var(--bs-primary);"> <div class="container text-white py-4 py-lg-5" style="background: var(--bs-primary);"> Loading @@ -82,6 +111,7 @@ $connecte = ConnexionController::estConnecte(); <p>Copyright ©Les cuistots du dimanche 2023</p> </div> </footer> <script src="/assets/js/menuRecherche.js" <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> Loading