поиск+доставка
This commit is contained in:
+17
-3
@@ -6,9 +6,11 @@ declare(strict_types=1);
|
||||
/** @var array<string, mixed>|null $currentCategory */
|
||||
/** @var array<int, array<string, mixed>> $products */
|
||||
/** @var array<string, mixed> $pagination */
|
||||
/** @var string|null $searchQuery */
|
||||
|
||||
$heading = $currentCategory['h1'] ?? $currentCategory['name'] ?? 'Каталог продукции';
|
||||
$categoryDescription = trim((string) ($currentCategory['description'] ?? ''));
|
||||
$searchQuery = trim((string) ($searchQuery ?? ''));
|
||||
$pagination = $pagination ?? [
|
||||
'base_path' => '/catalog',
|
||||
'total' => count($products),
|
||||
@@ -19,6 +21,7 @@ $pagination = $pagination ?? [
|
||||
'has_more' => false,
|
||||
'next_limit' => count($products),
|
||||
];
|
||||
$paginationGlue = str_contains((string) ($pagination['base_path'] ?? ''), '?') ? '&' : '?';
|
||||
?>
|
||||
<section class="catalog-layout">
|
||||
<aside class="catalog-sidebar">
|
||||
@@ -53,6 +56,17 @@ $pagination = $pagination ?? [
|
||||
<h1><?= e($heading) ?></h1>
|
||||
</div>
|
||||
|
||||
<?php if ($searchQuery !== ''): ?>
|
||||
<section class="catalog-search-result-panel" aria-label="Результаты умного поиска">
|
||||
<div>
|
||||
<p class="eyebrow">Умный поиск</p>
|
||||
<h2>Поиск по запросу: <?= e($searchQuery) ?></h2>
|
||||
<p>Учитываем названия, категории, фасовки, похожие формулировки и бытовую логику покупки.</p>
|
||||
</div>
|
||||
<a href="/catalog">Сбросить поиск</a>
|
||||
</section>
|
||||
<?php endif; ?>
|
||||
|
||||
<section class="payment-benefit-banner cash-benefit-banner" aria-label="Выгода при оплате наличными">
|
||||
<div class="cash-benefit-copy">
|
||||
<p class="eyebrow">Выгода считается автоматически</p>
|
||||
@@ -112,13 +126,13 @@ $pagination = $pagination ?? [
|
||||
|
||||
<?php if ($products === []): ?>
|
||||
<div class="panel">
|
||||
<p class="muted">В этой категории товары появятся после переноса каталога со старого сайта.</p>
|
||||
<p class="muted"><?= $searchQuery !== '' ? 'По этому запросу пока ничего не найдено. Попробуйте другое название, фасовку или назначение.' : 'В этой категории товары появятся после переноса каталога со старого сайта.' ?></p>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<div class="catalog-count-panel">
|
||||
<span>Показано <?= e((string) $pagination['shown']) ?> из <?= e((string) $pagination['total']) ?> товаров</span>
|
||||
<?php if (!empty($pagination['has_more'])): ?>
|
||||
<a href="<?= e((string) $pagination['base_path']) ?>?limit=<?= e((string) $pagination['next_limit']) ?>">Показать еще</a>
|
||||
<a href="<?= e((string) $pagination['base_path']) ?><?= e($paginationGlue) ?>limit=<?= e((string) $pagination['next_limit']) ?>">Показать еще</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
@@ -133,7 +147,7 @@ $pagination = $pagination ?? [
|
||||
<?php for ($pageNumber = 1; $pageNumber <= (int) $pagination['pages']; $pageNumber++): ?>
|
||||
<a
|
||||
class="<?= $pageNumber === (int) $pagination['page'] && empty($pagination['cumulative']) ? 'is-current' : '' ?>"
|
||||
href="<?= e((string) $pagination['base_path']) ?>?page=<?= e((string) $pageNumber) ?>"
|
||||
href="<?= e((string) $pagination['base_path']) ?><?= e($paginationGlue) ?>page=<?= e((string) $pageNumber) ?>"
|
||||
>
|
||||
<?= e((string) $pageNumber) ?>
|
||||
</a>
|
||||
|
||||
Reference in New Issue
Block a user