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

В фильтрах вывести древо категорий


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

Здравствуйте, есть товары с дополнительными категориями, хочу вывести древо дополнительных категорий в фильтрах, но только если в них есть товары и чтоб содержимое дополнительных категорий соответствовало категории, в которой мы находимся.

Вот, ломаю голову, может кто подскажет, как реализовать.

 

Все дополнительные категории находятся в одной общей категории, думаю использовать данное решение:

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/

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

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

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

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

Спасибо.

Ссылка на сообщение
Поделиться на другие сайты
		// Если задан бренд, выберем его из базы
		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.

Ссылка на сообщение
Поделиться на другие сайты
<!-- Меню каталога -->
{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, если находяться, записываем их в массив, который потом выводим по типу брендов.

Изменено пользователем Des
Ссылка на сообщение
Поделиться на другие сайты

Как я понимаю, теперь нужно выбрать все товары текущей категории и проверить, находятся ли они в любой из подкатегорий категории с ID 231, если находяться, записываем их в массив, который потом выводим по типу брендов.

 

Вообще-то стандартно Simpla так не работает.

План сам по себе весьма затратный по ресурсам, если надо вывести, скажем, первую порцию из 20 товаров, а в категории их может быть намного больше - на реальных сайтах бывает и более тысячи, особенно если с подкатегориями...

 

Впрочем, дерзайте, может, и выйдет что полезное...

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

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

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

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

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

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

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

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

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

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