Перейти к содержанию
Официальный форум поддержки Simpla

Как выводить рядом с категорией к-во товаров в ней? )


Рекомендуемые сообщения

Сабж. Может кто-то реализовывал подсчет количества товаров в категории?

Например, в меню, вывести количество товаров в категории или вывести количество товаров при применении определенного фильтра.

Пример:

Бритвы (10)
- Жилетт (6)
- Бик (2)
- Шик (2)

И так:

Уточните параметры оборудования:
Конфорок, шт: все(16) 1(8) 2(6) 4 (2)
Наличие духовки: все есть(3) нет(13)
Исполнение: все настольное(6) напольное(10)

Ссылка на сообщение
Поделиться на другие сайты

По умолчанию количество товаров в шаблон не передается.

Надо править function categories_tree($categories)
в Storefront.class.php, заставить складывать в структуру еще и количество товаров в категории.

Оптимальнее будет, если создать специальное(ые) поле(я) в таблице categories и там хранить количество товаров (активных неактивных, каких только вздумается) в категориях.
На живую пересчитывать количество товаров - нехорошо.

p/s Кстати, так можно будет избавиться и от подсчета товаров для определения количества страниц.

Ссылка на сообщение
Поделиться на другие сайты

Решения на блюдечке нету для ламеров...

Нашел кусок в Storefront.class.php, который отвечает за подсчет страниц в категории, а значит знает сколько вообще товаров:

// Вычисляем количество страниц
$products_count = $this->count_products(null, $category->subcats_ids, isset($brand->brand_id)?$brand->brand_id:null, $start_item, $filter);
$pages_num = ceil($products_count/$this->items_per_page);
$this->smarty->assign('total_pages', $pages_num);

по идее $products_count - это оно. Вопрос как вывести это чудо около каждого пункта меню.

Ссылка на сообщение
Поделиться на другие сайты

Site.class.php :: 42стр.

// Категории товаров
$this->categories = Storefront::get_categories();
$this->smarty->assign('categories', $this->categories);

Вот здесь можно заметить, что категории передаются в шаблон index.tpl с помощью get_categories();

Storefront.class.php :: 428стр.
$categories = Storefront::categories_tree($temp_categories);

То самое ненавистное дерево категорий.

Берем function categories_tree($categories) в конце перед "return $tree;"
Рекурсивно проходим по всем категориям в этом дереве и добавляем им $category->products_quantity = [количество продуктов].

Ну или вникаем в структуру этой функции и заставляем категории добавляться сразу с учтенным количеством товаров в них.

Однако стоит учесть, что $this->count_products дорогая функция, а вызывать Вам ее придется неоднократно. (По крайней мере при 13000 наименованиях значительно подтормаживает).

В шаблоне очевидно можно будет использовать {$category->products_quantity} для вывода количества товаров.

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...