From 68d26118ab7f68346f96f3007aaee37efea193f5 Mon Sep 17 00:00:00 2001 From: Arsen Mirzaev Tatyano-Muradovich Date: Wed, 13 Apr 2022 13:54:07 +1000 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B5=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D0=B2=20=D0=B0=D0=BD=D0=B0=D0=BB=D0=BE?= =?UTF-8?q?=D0=B3=D0=B0=D1=85=20=D0=BF=D1=83=D1=81=D1=82=D1=8B=D0=B5=20?= =?UTF-8?q?=D1=82=D0=BE=D0=B2=D0=B0=D1=80=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mirzaev/skillparts/system/models/Search.php | 9 +++++---- .../skillparts/system/views/search/index.php | 20 +++++++++++++------ 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/mirzaev/skillparts/system/models/Search.php b/mirzaev/skillparts/system/models/Search.php index 56a7ce7..0d49de6 100644 --- a/mirzaev/skillparts/system/models/Search.php +++ b/mirzaev/skillparts/system/models/Search.php @@ -393,10 +393,11 @@ class Search extends Document * @param array $row Товар сгенерированный через Search::content() * @param string|null $cover Обложка * @param array $empties Реестр не найденных товаров + * @param bool $analogs Запрошены аналоги (не выведет пустые товары) * * @return string HTML-элемент с товаром */ - public static function generate(array &$row, string|null &$cover = null, array &$empties = []): string + public static function generate(array &$row, string|null &$cover = null, array &$empties = [], bool $analogs = false): string { foreach ($row['imgs'] ?? [] as &$img) { // Перебор изображений для обложки @@ -433,7 +434,7 @@ class Search extends Document // Инициализация указателя номера цикла $supply_iterator = 1; - foreach (empty($row['supplies']) || $supplies_amount === 0 ? [null] : $row['supplies'] as $supply) { + foreach (empty($row['supplies']) || $supplies_amount === 0 ? [null] : $row['supplies'] as &$supply) { // Перебор поставок // Инициализация модификатора класса @@ -477,8 +478,8 @@ class Search extends Document // Поставки отстутвуют no_supplies: - // Проверка на блокировку - if ($empty_block) continue; + // Проверка на блокировку или запрошены аналоги + if ($empty_block || $analogs) continue; $supplies_html .= << diff --git a/mirzaev/skillparts/system/views/search/index.php b/mirzaev/skillparts/system/views/search/index.php index fd5e1bc..6b8bb9b 100644 --- a/mirzaev/skillparts/system/views/search/index.php +++ b/mirzaev/skillparts/system/views/search/index.php @@ -64,28 +64,29 @@ use app\models\Search;
-

Аналогичные товары

$products) { - // Перебор поставок + // Перебор производителей не найденных товаров foreach ($products as $catn) { - // Перебор товаров + // Перебор не найденных товаров товаров производителя // Чтение и запись аналогов $analogs[$catn] = Search::content(products: Product::searchAnalogs($prod, $catn)); - // Исключение из вывода в списке аналогов + // Исключение из вывода в списке аналогов (проверка на дубликат) $writed[$catn] = true; } } + // Инициализация блокировщика отрисовки заголовка + $block_title = false; ?> @@ -99,9 +100,16 @@ use app\models\Search; $catn = $product['catn'] ?? 'Неизвестно'; // Генерация списка товаров - $supplies_html = Search::generate($product, $covr); + $supplies_html = Search::generate($product, $covr, analogs: true); + + // Не найдены поставки для аналогичного товара (не выводить в списке) + if (empty($supplies_html)) continue; ?> + +

Аналогичные товары

+ +