From 572b7cf3f42bb026a453e06bff7b84df78a3461e Mon Sep 17 00:00:00 2001 From: Stepan Date: Thu, 3 Jul 2025 22:21:24 +0200 Subject: [PATCH 1/2] Added url, id, image_url fields for search ajax action --- apps/Ajax/ajax-actions.php | 9 ++++++++- apps/Recipes/Models/RecipeModel.php | 4 ++++ apps/Recipes/Templates/components/catalog-item.php | 2 +- includes/Model/BaseModel.php | 5 ++++- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/apps/Ajax/ajax-actions.php b/apps/Ajax/ajax-actions.php index 753fc06..152f00b 100644 --- a/apps/Ajax/ajax-actions.php +++ b/apps/Ajax/ajax-actions.php @@ -31,10 +31,17 @@ function ajax_search() } $result = array(); - $recipes = RecipeModel::filter( + $recipes = array(); + $recipe_models = RecipeModel::filter( count: 5, search: $search_query ); + foreach ($recipe_models as $recipe_model) { + $recipe = $recipe_model->getAssocArr(); + $recipe['image_url'] = $recipe_model->get_image_url(); + $recipe['url'] = $recipe_model->get_absolute_url(); + $recipes[] = $recipe; + } $result['count'] = count($recipes); $result['result'] = $recipes; diff --git a/apps/Recipes/Models/RecipeModel.php b/apps/Recipes/Models/RecipeModel.php index 694d4cb..1358a09 100644 --- a/apps/Recipes/Models/RecipeModel.php +++ b/apps/Recipes/Models/RecipeModel.php @@ -86,6 +86,10 @@ class RecipeModel extends BaseModel );'); return $result; } + public function get_absolute_url() + { + return get_permalink('recipes:single', [ $this->get_id() ]); + } public function get_price() { return $this->field_estimated_price . '$'; diff --git a/apps/Recipes/Templates/components/catalog-item.php b/apps/Recipes/Templates/components/catalog-item.php index 8428aaf..659be4b 100644 --- a/apps/Recipes/Templates/components/catalog-item.php +++ b/apps/Recipes/Templates/components/catalog-item.php @@ -1,4 +1,4 @@ - +
<?= $recipe->field_title ?>
diff --git a/includes/Model/BaseModel.php b/includes/Model/BaseModel.php index d23878c..238842f 100644 --- a/includes/Model/BaseModel.php +++ b/includes/Model/BaseModel.php @@ -364,6 +364,9 @@ abstract class BaseModel else return $filter_result[0]->func_total_count; } + public function getAssocArr() { + return get_object_vars($this); + } public function delete() { @@ -436,7 +439,7 @@ abstract class BaseModel /** * Return model from Mysql result * @param array $pdo_result pdo resut FETCH_MODE = FETCH_ASSOC - * @return array + * @return array(self) */ protected static function createObjectsFromQuery(array $pdo_result) { From 2651014595697740a7c64736e1425328710c4ccc Mon Sep 17 00:00:00 2001 From: Stepan Date: Thu, 3 Jul 2025 22:23:42 +0200 Subject: [PATCH 2/2] Added id fields for search ingredients ajax action --- apps/Ajax/ajax-actions.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/Ajax/ajax-actions.php b/apps/Ajax/ajax-actions.php index 152f00b..9585685 100644 --- a/apps/Ajax/ajax-actions.php +++ b/apps/Ajax/ajax-actions.php @@ -139,7 +139,9 @@ function ajax_search_ingredient() search: $search_query ); $result['count'] = count($ingredients); - $result['result'] = $ingredients; + $result['result'] = array_map(function($ing) { + return $ing->getAssocArr(); + }, $ingredients); return $result; }