Files
marianek.pl/autoload/front/Views/ShopCategory.php
Jacek Pyziak fc45bbf20e Add view classes for articles, banners, languages, menu, newsletter, containers, shop categories, clients, payment methods, products, and search
- Created `Articles` class for rendering article views including full articles, miniature lists, and news sections.
- Added `Banners` class for handling banner displays.
- Introduced `Languages` class for rendering language options.
- Implemented `Menu` class for rendering page and menu structures.
- Developed `Newsletter` class for newsletter rendering.
- Created `Scontainers` class for rendering specific containers.
- Added `ShopCategory` class for managing shop category views and pagination.
- Implemented `ShopClient` class for client-related views including address management and login forms.
- Created `ShopPaymentMethod` class for displaying payment methods in the basket.
- Added `ShopProduct` class for generating product URLs.
- Introduced `ShopSearch` class for rendering a simple search form.
- Added `.htaccess` file in the plugins directory to enhance security by restricting access to sensitive files and directories.
2026-02-21 23:00:54 +01:00

67 lines
2.3 KiB
PHP

<?php
namespace front\Views;
class ShopCategory
{
public static function categoryDescription($category): string
{
return \Shared\Tpl\Tpl::view('shop-category/category-description', [
'category' => $category,
]);
}
public static function categoryView($category, string $langId, int $currentPage = 1): string
{
global $settings, $page;
$categoryRepo = new \Domain\Category\CategoryRepository($GLOBALS['mdb']);
if (!$settings['infinitescroll']) {
$results = $categoryRepo->paginatedCategoryProducts(
(int)$category['id'],
(int)($category['sort_type'] ?? 0),
$langId,
$currentPage
);
$pager = '';
if ($results['ls'] > 1) {
$tpl = new \Shared\Tpl\Tpl;
$tpl->ls = $results['ls'];
$tpl->bs = $currentPage > 0 ? $currentPage : 1;
$tpl->page = $page;
$tpl->link = !empty($category['language']['seo_link'])
? $category['language']['seo_link']
: 'k-' . $category['id'] . '-' . \Shared\Helpers\Helpers::seo($category['language']['title'] ?? '');
$pager = $tpl->render('site/pager');
}
return \Shared\Tpl\Tpl::view('shop-category/category', [
'category' => $category,
'products' => $results['products'],
'pager' => $pager,
'category_description' => $currentPage <= 1,
'category_additional_text' => true,
]);
}
$productsCount = $categoryRepo->categoryProductsCount((int)$category['id'], $langId);
return \Shared\Tpl\Tpl::view('shop-category/category-infinitescroll', [
'category' => $category,
'products_count' => $productsCount,
'category_description' => $currentPage <= 1,
'category_additional_text' => true,
]);
}
public static function categories($categories, $currentCategory = 0, $level = 0): string
{
$tpl = new \Shared\Tpl\Tpl;
$tpl->level = $level;
$tpl->current_category = $currentCategory;
$tpl->categories = $categories;
return $tpl->render('shop-category/categories');
}
}