From a8bb5eb493ab329bebca8c7903d4facf4a22d76a Mon Sep 17 00:00:00 2001 From: Nikita Kiselev Date: Fri, 8 Aug 2025 12:27:47 +0300 Subject: [PATCH] feat: safe-top and search --- .../src/Handlers/ProductsHandler.php | 6 ++- spa/src/components/CategoriesInline.vue | 4 +- spa/src/components/ProductImageSwiper.vue | 7 +-- spa/src/components/ProductsList.vue | 47 ++++++++++++++++++- spa/src/stores/ProductsStore.js | 5 +- spa/src/style.css | 13 ++++- spa/src/views/Cart.vue | 2 +- spa/src/views/CategoriesList.vue | 2 +- spa/src/views/Checkout.vue | 2 +- spa/src/views/Home.vue | 2 +- spa/src/views/OrderCreated.vue | 2 +- spa/src/views/Product.vue | 7 +++ spa/src/views/Products.vue | 2 +- 13 files changed, 82 insertions(+), 19 deletions(-) diff --git a/module/oc_telegram_shop/upload/oc_telegram_shop/src/Handlers/ProductsHandler.php b/module/oc_telegram_shop/upload/oc_telegram_shop/src/Handlers/ProductsHandler.php index 9fe134b..36be904 100755 --- a/module/oc_telegram_shop/upload/oc_telegram_shop/src/Handlers/ProductsHandler.php +++ b/module/oc_telegram_shop/upload/oc_telegram_shop/src/Handlers/ProductsHandler.php @@ -50,6 +50,7 @@ class ProductsHandler $page = $request->get('page', 1); $perPage = 6; $categoryId = (int) $request->get('categoryId', 0); + $search = trim($request->get('search', '')); $categoryName = ''; @@ -100,7 +101,10 @@ class ProductsHandler function (Builder $query) use ($featuredProducts) { $query->whereIn('products.product_id', $featuredProducts); } - ); + ) + ->when($search, function (Builder $query) use ($search) { + $query->where('product_description.name', 'LIKE', '%' . $search . '%'); + }); $total = $productsQuery->count(); $lastPage = PaginationHelper::calculateLastPage($total, $perPage); diff --git a/spa/src/components/CategoriesInline.vue b/spa/src/components/CategoriesInline.vue index 0b28d95..b94b041 100644 --- a/spa/src/components/CategoriesInline.vue +++ b/spa/src/components/CategoriesInline.vue @@ -1,13 +1,13 @@