Compare commits
No commits in common. "caa48d3b62c677904f08936c5d820868ee9a44f3" and "a6a759b8f952792848daaf0c2c2d8ea3930da4d6" have entirely different histories.
caa48d3b62
...
a6a759b8f9
@ -31,17 +31,10 @@ function ajax_search()
|
|||||||
}
|
}
|
||||||
$result = array();
|
$result = array();
|
||||||
|
|
||||||
$recipes = array();
|
$recipes = RecipeModel::filter(
|
||||||
$recipe_models = RecipeModel::filter(
|
|
||||||
count: 5,
|
count: 5,
|
||||||
search: $search_query
|
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['count'] = count($recipes);
|
||||||
$result['result'] = $recipes;
|
$result['result'] = $recipes;
|
||||||
@ -139,9 +132,7 @@ function ajax_search_ingredient()
|
|||||||
search: $search_query
|
search: $search_query
|
||||||
);
|
);
|
||||||
$result['count'] = count($ingredients);
|
$result['count'] = count($ingredients);
|
||||||
$result['result'] = array_map(function($ing) {
|
$result['result'] = $ingredients;
|
||||||
return $ing->getAssocArr();
|
|
||||||
}, $ingredients);
|
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -86,10 +86,6 @@ class RecipeModel extends BaseModel
|
|||||||
);');
|
);');
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
public function get_absolute_url()
|
|
||||||
{
|
|
||||||
return get_permalink('recipes:single', [ $this->get_id() ]);
|
|
||||||
}
|
|
||||||
public function get_price()
|
public function get_price()
|
||||||
{
|
{
|
||||||
return $this->field_estimated_price . '$';
|
return $this->field_estimated_price . '$';
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
<a href="<?= $recipe->get_absolute_url() ?>" class="catalog-recipe hover-anim">
|
<a href="<?php the_permalink('recipes:single', [$recipe->get_id()]) ?>" class="catalog-recipe hover-anim">
|
||||||
<div class="catalog-recipe__image">
|
<div class="catalog-recipe__image">
|
||||||
<img src="<?= $recipe->get_image_url() ?>" alt="<?= $recipe->field_title ?>">
|
<img src="<?= $recipe->get_image_url() ?>" alt="<?= $recipe->field_title ?>">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -76,10 +76,9 @@ searchInput.addEventListener('input', function () {
|
|||||||
searchTimeout = setTimeout(async () => {
|
searchTimeout = setTimeout(async () => {
|
||||||
let searchValue = this.value.trim();
|
let searchValue = this.value.trim();
|
||||||
|
|
||||||
|
|
||||||
if (searchValue.length < 3) {
|
if (searchValue.length < 3) {
|
||||||
searchResults.innerHTML = '';
|
searchResults.innerHTML = '';
|
||||||
searchResults.hidden = true;
|
searchResults.classList.add('hidden');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,22 +107,16 @@ searchInput.addEventListener('input', function () {
|
|||||||
results.forEach(result => {
|
results.forEach(result => {
|
||||||
searchResults.innerHTML += `
|
searchResults.innerHTML += `
|
||||||
<div class="search-result-item hover-anim">
|
<div class="search-result-item hover-anim">
|
||||||
<a href="${result.url}" class="search-result-link">
|
<a href="#" class="search-result-link">
|
||||||
${result.field_title}
|
${result.field_title}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
});
|
});
|
||||||
searchResults.hidden = false;
|
searchResults.classList.remove('hidden');
|
||||||
} else {
|
} else {
|
||||||
searchResults.innerHTML = `<div class="search-result-item">No recipes found</div>`;
|
searchResults.innerHTML = `<div class="search-result-item">No recipes found</div>`;
|
||||||
searchResults.hidden = false;
|
searchResults.classList.remove('hidden');
|
||||||
}
|
}
|
||||||
}, 300);
|
}, 300);
|
||||||
});
|
});
|
||||||
|
|
||||||
document.addEventListener('click', function (event) {
|
|
||||||
if (!searchResults.contains(event.target) && event.target !== searchInput) {
|
|
||||||
searchResults.hidden = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
@ -67,7 +67,7 @@
|
|||||||
<div class="search-and-login">
|
<div class="search-and-login">
|
||||||
<i class="fa-solid fa-magnifying-glass search-icon"></i>
|
<i class="fa-solid fa-magnifying-glass search-icon"></i>
|
||||||
<input type="text" id="search-input" class="search-input" placeholder="Search recipes...">
|
<input type="text" id="search-input" class="search-input" placeholder="Search recipes...">
|
||||||
<div class="search-results" id="search-results" hidden>
|
<div class="search-results hidden" id="search-results">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<a href="<?php the_permalink(CURRENT_USER ? 'users:profile' : 'users:login') ?>"
|
<a href="<?php the_permalink(CURRENT_USER ? 'users:profile' : 'users:login') ?>"
|
||||||
|
|||||||
@ -364,9 +364,6 @@ abstract class BaseModel
|
|||||||
else
|
else
|
||||||
return $filter_result[0]->func_total_count;
|
return $filter_result[0]->func_total_count;
|
||||||
}
|
}
|
||||||
public function getAssocArr() {
|
|
||||||
return get_object_vars($this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function delete()
|
public function delete()
|
||||||
{
|
{
|
||||||
@ -439,7 +436,7 @@ abstract class BaseModel
|
|||||||
/**
|
/**
|
||||||
* Return model from Mysql result
|
* Return model from Mysql result
|
||||||
* @param array $pdo_result pdo resut FETCH_MODE = FETCH_ASSOC
|
* @param array $pdo_result pdo resut FETCH_MODE = FETCH_ASSOC
|
||||||
* @return array(self)
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected static function createObjectsFromQuery(array $pdo_result)
|
protected static function createObjectsFromQuery(array $pdo_result)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user