ekctpemict Опубликовано 14 мая, 2011 Жалоба Поделиться Опубликовано 14 мая, 2011 Сабж. Может кто-то реализовывал подсчет количества товаров в категории?Например, в меню, вывести количество товаров в категории или вывести количество товаров при применении определенного фильтра.Пример:Бритвы (10)- Жилетт (6)- Бик (2)- Шик (2)И так:Уточните параметры оборудования:Конфорок, шт: все(16) 1(8) 2(6) 4 (2)Наличие духовки: все есть(3) нет(13)Исполнение: все настольное(6) напольное(10) Цитата Ссылка на сообщение Поделиться на другие сайты
alaster Опубликовано 15 мая, 2011 Жалоба Поделиться Опубликовано 15 мая, 2011 По умолчанию количество товаров в шаблон не передается.Надо править function categories_tree($categories)в Storefront.class.php, заставить складывать в структуру еще и количество товаров в категории.Оптимальнее будет, если создать специальное(ые) поле(я) в таблице categories и там хранить количество товаров (активных неактивных, каких только вздумается) в категориях.На живую пересчитывать количество товаров - нехорошо.p/s Кстати, так можно будет избавиться и от подсчета товаров для определения количества страниц. Цитата Ссылка на сообщение Поделиться на другие сайты
ekctpemict Опубликовано 15 мая, 2011 Автор Жалоба Поделиться Опубликовано 15 мая, 2011 Решения на блюдечке нету для ламеров...Нашел кусок в 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 - это оно. Вопрос как вывести это чудо около каждого пункта меню. Цитата Ссылка на сообщение Поделиться на другие сайты
alaster Опубликовано 15 мая, 2011 Жалоба Поделиться Опубликовано 15 мая, 2011 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} для вывода количества товаров. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.