add search action

This commit is contained in:
Thomas Rubini 2023-01-20 11:03:53 +01:00
parent 04b03ee731
commit 38e4e16856
No known key found for this signature in database
GPG Key ID: C7D287C8C1CAC373
2 changed files with 34 additions and 9 deletions

View File

@ -55,4 +55,27 @@ final class RecipeController
}
public function searchAction(Array $A_urlParams = null, Array $A_postParams = null, Array $A_getParams = null)
{
if (isset($A_getParams["query"])) {
self::searchQueryView($A_urlParams, $A_postParams, $A_getParams);
} else {
self::searchView($A_urlParams, $A_postParams, $A_getParams);
}
}
private function searchView(Array $A_urlParams = null, Array $A_postParams = null, Array $A_getParams = null)
{
View::show("search/search", array("SEARCH_TERM" => null));
}
private function searchQueryView(Array $A_urlParams = null, Array $A_postParams = null, Array $A_getParams = null)
{
$A_results = array();
View::show("search/search", array(
"SEARCH_TERM" => $A_getParams["query"],
"RESULTS" => $A_results,
));
}
}

View File

@ -1,6 +1,6 @@
<?php
# Check presence of the search term query parameter, to avoid getting a warning as the input placeholder value
$has_search_term = $A_view["search_term"] === null;
$has_search_term = $A_view["SEARCH_TERM"] !== null;
?>
<?php View::show("common/category_list") ?>
@ -9,18 +9,20 @@
<!-- Inclure les catégories -->
<form method="GET" action="/recipe/search">
<label for="search_term">Saisissez les termes à rechercher</label>
<input id="search_term" type="text" name="search_term" placeholder="<?= $has_search_term ? $A_view["search_term"] : "Votre recherche" ?>">
<input id="search_term" type="text" name="search_term" placeholder="<?= $has_search_term ? $A_view["SEARCH_TERM"] : "Votre recherche" ?>">
<input type="submit" value="Rechercher">
</form>
<section>
<?php
$search_results = $A_view["results"];
if (empty($search_results)) {
echo '<h2 class="no_results">Aucun résultat</h2>';
echo '<p class="no_results_description">Assurez-vous d\'avoir rentré correctement vos termes de recherche ou essayez des mots clefs différents.</p>';
} else {
foreach ($search_results as $key => $value) {
View::show("common/recipe", $value);
if ($has_search_term) {
$search_results = $A_view["RESULTS"];
if (empty($search_results)) {
echo '<h2 class="no_results">Aucun résultat</h2>';
echo '<p class="no_results_description">Assurez-vous d\'avoir rentré correctement vos termes de recherche ou essayez des mots clefs différents.</p>';
} else {
foreach ($search_results as $key => $value) {
View::show("common/recipe", $value);
}
}
}
?>