Перейти к содержимому


Фото
- - - - -

Список брендов категории


  • Чтобы отвечать, сперва войдите на форум
16 ответов в теме

#1 Nikolas

Nikolas
  • Пользователь
  • 77 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:1.x, 2.x
  • Откуда:Украина

Опубликовано 06.10.2015 - 20:21

Добрый день,
Подскажите, как вывести список брендов определённой категории. Нужно для меню категорий.

#2 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 06.10.2015 - 20:43

По образцу того, как на странице категории в фильтре выводится список брендов. В частности, в view/ProductsView.php есть строки

		// Выбираем бренды, они нужны нам в шаблоне	
		if(!empty($category))
		{
			$brands = $this->brands->get_brands(array('category_id'=>$category->children, 'visible'=>1));
			$category->brands = $brands;		
		}



#3 Nikolas

Nikolas
  • Пользователь
  • 77 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:1.x, 2.x
  • Откуда:Украина

Опубликовано 06.10.2015 - 21:00

А в шаблоне как выводить, переменной $brands?

#4 Nikolas

Nikolas
  • Пользователь
  • 77 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:1.x, 2.x
  • Откуда:Украина

Опубликовано 07.10.2015 - 08:50

А можно немного подробнее...

 

Необходимо сделать меню категорий примера:

 

Категория 1 -> Бренд 1 категории 1

                     -> Бренд 2 категории 1

                     -> Бренд 3 категории 1

 

Категория 2 -> Бренд 1 категории 2

                     -> Бренд 2 категории 2

                     -> Бренд 3 категории 2

 

и т.д.


Изменено: Nikolas, 07.10.2015 - 08:55


#5 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 07.10.2015 - 10:05

1. Сначала Вы написали "вывести список брендов определённой категории"

2. Теперь Вам надо, судя по примеру, по всем категориям. И еще неясно, как быть с иерархией категорий.

 

Подозреваю, постановка вопроса далеко не окончательная...

 

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



#6 Nikolas

Nikolas
  • Пользователь
  • 77 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:1.x, 2.x
  • Откуда:Украина

Опубликовано 08.10.2015 - 08:48

Поставновка вопроса следующая:

необходимо выпадающее меню категорий (только один уровень) с выпадением списка брендов по каждой категории соответственно.

Категория 1 -> Бренд 1 категории 1

                     -> Бренд 2 категории 1

                     -> Бренд 3 категории 1

                     -> Бренд 1 подкатегории категории 1

                     -> Бренд 2 подкатегории категории 1

                     -> Бренд 3 подкатегории категории 1

 

Категория 2 -> Бренд 1 категории 2

                     -> Бренд 2 категории 2

                     -> Бренд 3 категории 2

 

Какова цена вопроса?



#7 mishanya

mishanya
  • Фрилансер
  • 2 557 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 08.10.2015 - 09:53

в api/Categories.php перед строкой (215 строка)

if(isset($pointers[$category->parent_id]))

добавляем

$category->brands = $this->brands->get_brands( array('category_id'=>$category->id) );

теперь в функции вывода категорий можете пользоваться массивом брендов

$c->brands

например так

{if $c->brands}
	{foreach $c->brands as $b}
	   <a {if $brand->id == $b->id}class="selected"{/if} href="brands/{$b->url}">{$b->name|escape}</a>
	{/foreach}
{/if}

Изменено: mishanya, 08.10.2015 - 09:55


#8 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 08.10.2015 - 10:36

Во-первых, получение информации по брендам проводится отдельно для каждой категорий. Это означает НЕСКОЛЬКО отдельных запросов вместо одного.

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

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

 

Итог:

1. Решение весьма нерациональное.

2. Решение просто неправильное.

 

Выглядит все это беспредельно непрофессионально.



#9 mishanya

mishanya
  • Фрилансер
  • 2 557 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 08.10.2015 - 10:53

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

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

 

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

 

вы уже сделали платный вариант? тут уже все ждут


Изменено: mishanya, 08.10.2015 - 10:59


#10 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 08.10.2015 - 11:03

Если у Вас глаза протерты, то сравните свои картинки с заданием.
На Ваших картинках в категории Бытовая техника брендов не видно, а видно в подкатегориях.
В то время как по требования ТС подкатегории вообще показывать не надо.

ТС в #6 поставил вопрос очень даже четко:

Поставновка вопроса следующая:
необходимо выпадающее меню категорий (только один уровень) с выпадением списка брендов по каждой категории соответственно.
Категория 1 -> Бренд 1 категории 1
                     -> Бренд 2 категории 1
                     -> Бренд 3 категории 1
                     -> Бренд 1 подкатегории категории 1
                     -> Бренд 2 подкатегории категории 1
                     -> Бренд 3 подкатегории категории 1
 
Категория 2 -> Бренд 1 категории 2
                     -> Бренд 2 категории 2
                     -> Бренд 3 категории 2
 
Какова цена вопроса?



#11 mishanya

mishanya
  • Фрилансер
  • 2 557 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 08.10.2015 - 11:07

Если у Вас глаза протерты, то сравните свои картинки с заданием.
На Ваших картинках в категории Бытовая техника брендов не видно, а видно в подкатегориях.
В то время как по требования ТС подкатегории вообще показывать не надо.

ТС в #6 поставил вопрос очень даже четко:

 

как вы же говорите, а если потом будет надо? вы сами то сначала пишите что "может, и сделано по заданию, но практически - совсем негоже" а теперь пишите что уже нужно по заданию четко. определитесь 



#12 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 08.10.2015 - 11:18

Определился. Повторю для Ваших протертых глаз:
По написанному ТС в #6
1. В примере вывода видно только ОДИН уровень категорий.
2. В тексте сказано "выпадающее меню категорий (только один уровень)".

А у Вас на картинках СОВСЕМ НЕ ТАК...

#13 mishanya

mishanya
  • Фрилансер
  • 2 557 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 08.10.2015 - 11:28

Определился. Повторю для Ваших протертых глаз:
По написанному ТС в #6
1. В примере вывода видно только ОДИН уровень категорий.
2. В тексте сказано "выпадающее меню категорий (только один уровень)".

А у Вас на картинках СОВСЕМ НЕ ТАК...

 

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



#14 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 08.10.2015 - 13:41

картинка была о том, что выводит для каждой категории бренды

На картинке четко видно, что для категории Бытовая техника брендов НЕ выводится, а по заданию ТС они должны быть.
А не выводится потому, что Ваше решение для этой категории (на дефолтной базе Simpla) дает ПУСТОЙ массив бендов.
Так что выводит вовсе НЕ "для каждой категории", как Вы утверждаете.

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

Использовать, конечно, можно, только результата, нужного ТС, не получится. Разве что "использовать", написав дополнительный скрипт.
И судя по тому, что Вы не спешите выложить полное правильное решение, скрипт этот не в одну строчку и не совсем прост...

#15 Suprun4uk

Suprun4uk
  • Пользователь
  • 202 сообщений

Опубликовано 24.02.2016 - 00:50

в api/Categories.php перед строкой (215 строка)

if(isset($pointers[$category->parent_id]))

добавляем

$category->brands = $this->brands->get_brands( array('category_id'=>$category->id) );

теперь в функции вывода категорий можете пользоваться массивом брендов

$c->brands

например так

{if $c->brands}
	{foreach $c->brands as $b}
	   <a {if $brand->id == $b->id}class="selected"{/if} href="brands/{$b->url}">{$b->name|escape}</a>
	{/foreach}
{/if}

 

 

Спасибо, отличное решение ! 



#16 DarAmal

DarAmal
  • Пользователь
  • 730 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 08.01.2019 - 20:30

в api/Categories.php перед строкой (215 строка)

if(isset($pointers[$category->parent_id]))

добавляем

$category->brands = $this->brands->get_brands( array('category_id'=>$category->id) );

теперь в функции вывода категорий можете пользоваться массивом брендов

$c->brands

например так

{if $c->brands}
	{foreach $c->brands as $b}
	   <a {if $brand->id == $b->id}class="selected"{/if} href="brands/{$b->url}">{$b->name|escape}</a>
	{/foreach}
{/if}

Мишаня, а как вывести эти бренды в самой категории? то есть бренды родительской категории.

Например у нас в каталоге есть:

 

Смартфоны

 - Samsung

 - Apple

 - и т.д.

 

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

 

Подскажите, пожалуйста



#17 DarAmal

DarAmal
  • Пользователь
  • 730 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 09.01.2019 - 20:20

Помогло решение yr4ik: http://forum.simplac...-подтк/?p=94827

{if $category}
	{$filter_brand = $category->path|reset}
	{api module=brands method=get_brands visible=1 category_id=$filter_brand->children var=category_brands}
	
	{foreach $category_brands as $b}
		{$b->name}
	{/foreach}	
{/if}





0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых