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

Вывод подкатегорий в зависимости от бренда.


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

Здравствуйте. 

 

Находясь в категории с брендом(site.ru/catalog/category/brand) необходимо выводить только подкатегории которые имеют товары этого бренда. Как это можно реализовать? вот код который выводит подкатегории на станицу. Я предполагаю что можно перебрать все бренды подкатегории и сравнить их с главным если совпадет то выводить, если нет то не выводить, но должен же быть проще путь. Спасибо.

{if $category->subcategories}
				<div style="text-align:center;display: block; overflow: hidden;    margin: 20px auto 30px;">
					
                                                 {foreach $category->subcategories as $c}
												  {if $brand}                  							       
                                                   {if !empty($c->short_name)}
                                              <div style="float: left;width:120px;margin:10px 10px 10px 10px;">  
                                              <div>  <a href="catalog/{$c->url}/{$brand->url}">{$c->short_name}
                                                    {else}
                                                    <div style="float: left;width:120px;margin:10px 10px 10px 10px;">  
                                              <div>  <a href="catalog/{$c->url}/{$brand->url}">{$c->name}
                                              			{/if}
                                               </a>  </div></div>
											       {else} 
                                               {if !empty($c->short_name)}
                                              <div style="float: left;width:120px;margin:10px 10px 10px 10px;">  
                                              <div>  <a href="catalog/{$c->url}">{$c->short_name}
                                                    {else}
                                                    <div style="float: left;width:120px;margin:10px 10px 10px 10px;">  
                                              <div>  <a href="catalog/{$c->url}">{$c->name}
                                              {/if}
                                               </a>  </div></div>
                                                    {/if}
							{/foreach}
                    
					</div>
				{else}

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

Готовых простых средств для такого нет. Надо программировать все нужное полностью, начиная с дополнительного запроса к базе.

Добавочные трудности будут с подкатегориями (когда бренд не присутствует непосредственно в самой категории, но присутствует в подкатегории)...

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

Готовых простых средств для такого нет. Надо программировать все нужное полностью, начиная с дополнительного запроса к базе.

Добавочные трудности будут с подкатегориями (когда бренд не присутствует непосредственно в самой категории, но присутствует в подкатегории)...

Вот пытаюсь напрограммировать но знания очень "базовые" ) 

 

добавил это в api/brands.php

 

/*
	*
	* Функция возвращает массив из id брендов, удовлетворяющих id категории
	* 
	*
	*/
	public function get_brands_id($id)
	{
		$brands = array();
		$category_id_filter = '';
		if(!empty($filter['category_id']))
			$category_id_filter = $this->db->placehold('LEFT JOIN __products p ON p.brand_id=b.id LEFT JOIN __products_categories pc ON p.id = pc.product_id WHERE pc.category_id in(?@)', (array)$filter['category_id']);

		// Выбираем все бренды
		$query = $this->db->placehold("SELECT DISTINCT b.id
								 		FROM __brands b $category_id_filter ORDER BY b.name");
		$this->db->query($query);

		return $this->db->results();
	}

дальше в продуктсвью

 

$brands_id    = $this->request->get('brands_id');

и чуть ниже это 

$brands_id = $this->brands->get_brands_id($category->id);
			$this->design->assign('brands_id', $brands_id);

и в сам шаблон проверку 

 

{if in_array($brand->id,$brands_id)}  

 

но к сожалению не работает. гдето я накосячил но понять не могу где) Вдруг кто сможет помочь)

 

и пы выводе именно $brands_id выводит array array . 

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

Судя по всему, код написан копированием с небольшими изменениями и  без особого понимания. В результате - грубые ошибки...

 

Бросающаяся в глаза первая ошибка: функция public function get_brands_id($id)  довольно бессмысленна. Она при всех обращениях возвращает ПОЛНЫЙ список ВСЕХ  id брендов...


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

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

Судя по всему, код написан копированием с небольшими изменениями и  без особого понимания. В результате - грубые ошибки...

 

Бросающаяся в глаза первая ошибка: функция public function get_brands_id($id)  довольно бессмысленна. Она при всех обращениях возвращает ПОЛНЫЙ список ВСЕХ  id брендов...

 

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

 

печаль( может как то можно получить массив id брендов из $category->brands  ? 

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

печаль( может как то можно получить массив id брендов из $category->brands  ?

Получить как-то и что-то - конечно, возможно...

 

"Искра в баллон ушла" - старое шоферское выражение.

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

Получить как-то и что-то - конечно, возможно...

 

"Искра в баллон ушла" - старое шоферское выражение.

Раз "както" можно, теперь нужно узнать как это можно сделать! 

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

Раз "както" можно, теперь нужно узнать как это можно сделать! 

 

Способов сотни, а может, и миллионы.

Как добраться из Вологды в Париж?

Можно самолетом, причем разными маршрутами, можно поездом - тоже разными.

Автомобилем также можно.  А можно и на велосипеде...

 

Если готовы оплачивать, обращайтесь в личку...

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

Способов сотни, а может, и миллионы.

Как добраться из Вологды в Париж?

Можно самолетом, причем разными маршрутами, можно поездом - тоже разными.

Автомобилем также можно.  А можно и на велосипеде...

 

Если готовы оплачивать, обращайтесь в личку...

Не думал что это задача требует столько геморроя. Будет возможность обязательно обращусь.  Спасибо.

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

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

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

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

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

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

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

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

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

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