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) {