From d499d7d846d55cc158306160c51d4b871f5b6376 Mon Sep 17 00:00:00 2001 From: Nikita Kiselev Date: Sat, 9 Aug 2025 09:49:03 +0300 Subject: [PATCH] feat: ui improvements, show only active products, limit max page for infinity scroll --- .../oc_telegram_shop/src/Services/ProductsService.php | 6 +++++- spa/src/components/CategoriesInline.vue | 8 ++++++-- spa/src/components/CategoriesList/CategoryItem.vue | 4 ++-- spa/src/views/CategoriesList.vue | 4 ++-- spa/src/views/Products.vue | 2 ++ 5 files changed, 17 insertions(+), 7 deletions(-) mode change 100644 => 100755 module/oc_telegram_shop/upload/oc_telegram_shop/src/Services/ProductsService.php diff --git a/module/oc_telegram_shop/upload/oc_telegram_shop/src/Services/ProductsService.php b/module/oc_telegram_shop/upload/oc_telegram_shop/src/Services/ProductsService.php old mode 100644 new mode 100755 index 8dae934..696e42b --- a/module/oc_telegram_shop/upload/oc_telegram_shop/src/Services/ProductsService.php +++ b/module/oc_telegram_shop/upload/oc_telegram_shop/src/Services/ProductsService.php @@ -51,10 +51,12 @@ class ProductsService $forMainPage = $params['forMainPage']; $featuredProducts = $params['featuredProducts']; $mainpageProducts = $params['mainpageProducts']; + $status = $params['status'] ?? 1; $languageId = 1; $categoryName = ''; $imageWidth = 300; $imageHeight = 300; + $maxPages = $params['maxPages'] ?? 10; if ($categoryId) { $categoryName = $this->queryBuilder->newQuery() @@ -82,6 +84,8 @@ class ProductsService ->where('product_description.language_id', '=', $languageId); } ) + ->where('products.status', '=', $status) + ->whereRaw('products.date_available < NOW()') ->when($categoryId !== 0, function (Builder $query) use ($categoryId) { $query->join( db_table('product_to_category') . ' AS product_to_category', @@ -102,7 +106,7 @@ class ProductsService }); $total = $productsQuery->count(); - $lastPage = PaginationHelper::calculateLastPage($total, $perPage); + $lastPage = min(PaginationHelper::calculateLastPage($total, $perPage), $maxPages); $hasMore = $page + 1 <= $lastPage; $products = $productsQuery diff --git a/spa/src/components/CategoriesInline.vue b/spa/src/components/CategoriesInline.vue index b94b041..e58d537 100644 --- a/spa/src/components/CategoriesInline.vue +++ b/spa/src/components/CategoriesInline.vue @@ -7,8 +7,12 @@ Каталог - - {{ category.name }} + + {{ category.name }} diff --git a/spa/src/components/CategoriesList/CategoryItem.vue b/spa/src/components/CategoriesList/CategoryItem.vue index 1eba764..2e479d3 100644 --- a/spa/src/components/CategoriesList/CategoryItem.vue +++ b/spa/src/components/CategoriesList/CategoryItem.vue @@ -11,7 +11,7 @@ -

{{ category.name }}

+

{{ category.name }}

@@ -24,4 +24,4 @@ const props = defineProps({ }); const emit = defineEmits(["onSelect"]); - \ No newline at end of file + diff --git a/spa/src/views/CategoriesList.vue b/spa/src/views/CategoriesList.vue index 6c6a7dd..9038833 100644 --- a/spa/src/views/CategoriesList.vue +++ b/spa/src/views/CategoriesList.vue @@ -3,11 +3,11 @@

Категории