Des Опубликовано 3 января, 2019 Жалоба Поделиться Опубликовано 3 января, 2019 Здравствуйте, есть товары с дополнительными категориями, хочу вывести древо дополнительных категорий в фильтрах, но только если в них есть товары и чтоб содержимое дополнительных категорий соответствовало категории, в которой мы находимся.Вот, ломаю голову, может кто подскажет, как реализовать. Все дополнительные категории находятся в одной общей категории, думаю использовать данное решение:http://forum.simplacms.ru/topic/13664-%D0%BF%D0%BE%D0%B4%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D1%85-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B9/ Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 4 января, 2019 Жалоба Поделиться Опубликовано 4 января, 2019 Имейте в виду, задача довольно сложная. В ней много тонких моментов. Если не имеете опыта, то будьте готовы к возможным длительным поискам ошибок и их исправлению... Цитата Ссылка на сообщение Поделиться на другие сайты
Des Опубликовано 4 января, 2019 Автор Жалоба Поделиться Опубликовано 4 января, 2019 Имейте в виду, задача довольно сложная. В ней много тонких моментов. Если не имеете опыта, то будьте готовы к возможным длительным поискам ошибок и их исправлению... Спасибо. Цитата Ссылка на сообщение Поделиться на другие сайты
Des Опубликовано 4 января, 2019 Автор Жалоба Поделиться Опубликовано 4 января, 2019 // Если задан бренд, выберем его из базы if (!empty($brand_url)) { $brand = $this->brands->get_brand((string)$brand_url); if (empty($brand)) return false; $this->design->assign('brand', $brand); $filter['brand_id'] = $brand->id; } // Выберем текущую категорию if (!empty($category_url)) { $category = $this->categories->get_category((string)$category_url); if (empty($category) || (!$category->visible && empty($_SESSION['admin']))) return false; $this->design->assign('category', $category); $filter['category_id'] = $category->children; } // Выбираем бренды, они нужны нам в шаблоне if(!empty($category)) { $brands = $this->brands->get_brands(array('category_id'=>$category->children, 'visible'=>1)); $category->brands = $brands; } Я так понимаю, нужно по анологии с содержимым ProductsView.php делать, так как для брендов, только вместо брендов, выбирать дочерние категории, если они есть в категории с нужным нам ID. Цитата Ссылка на сообщение Поделиться на другие сайты
Des Опубликовано 4 января, 2019 Автор Жалоба Поделиться Опубликовано 4 января, 2019 (изменено) <!-- Меню каталога --> {if $products} {if $categories_all[231]->subcategories} <ul> {foreach $categories_all[231]->subcategories as $c} <li> <a href="catalog/{$c->url}"><span>{$c->name}</span></a> {foreach $c->subcategories as $b} <ul> <li> <a href="catalog/{$b->url}"><span>{$b->name}</span> {api module="products" method="count_products" var="count" category_id={$b->id} visible=1}({$count}) </a> </li> </ul> {/foreach} </li> {/foreach} </ul> {/if} {/if} <!-- Меню каталога (The End)--> Вот мы вывели два уровня подкатегорий категории с ID 231 в файле шаблона - products.tpl Как я понимаю, теперь нужно выбрать все товары текущей категории и проверить, находятся ли они в любой из подкатегорий категории с ID 231, если находяться, записываем их в массив, который потом выводим по типу брендов. Изменено 4 января, 2019 пользователем Des Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 5 января, 2019 Жалоба Поделиться Опубликовано 5 января, 2019 Как я понимаю, теперь нужно выбрать все товары текущей категории и проверить, находятся ли они в любой из подкатегорий категории с ID 231, если находяться, записываем их в массив, который потом выводим по типу брендов. Вообще-то стандартно Simpla так не работает.План сам по себе весьма затратный по ресурсам, если надо вывести, скажем, первую порцию из 20 товаров, а в категории их может быть намного больше - на реальных сайтах бывает и более тысячи, особенно если с подкатегориями... Впрочем, дерзайте, может, и выйдет что полезное... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.