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

Вывод продуктов группами по брендам (нужна помощь)


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

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

Samsung

(тут все телефоны в бренда самсунг)

Apple

(тут все телефоны бренда эпл)

 

и так далее. Есть идеи?

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

Готовое вряд ли найдется.

Надо просто честно программировать нужный функционал.

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

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

Выкладываю решение:

 

1. В файле /views/ProductsView.php

$productsByBrands = array();
			foreach($products as $key => $productItem) {
				if(!isset($productsByBrands[$productItem->brand_id])) {
					$productsByBrands[$productItem->brand_id] = array(
						'id' => $productItem->brand_id,
						'name' => $productItem->brand,
						'url' => $productItem->brand_url
					);
				}
				
				$productsByBrands[$productItem->brand_id]['products'][$key] = $productItem;				
			}					

$this->design->assign('products', $productsByBrands);
2. Заменить в шаблоне products.tpl, добавляется еще один цикл с брендами:
{foreach $products as $productBrand}
	<div class="brand-title">{$productBrand['name']}</div>

	{foreach $productBrand['products'] as $product}
		 *тут оставляем вывод продукта как было*
	{/foreach}

{/foreach}

 

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

Если Вам это подходит, то рад за Вас.

 

А как общее решение это никоим образом не годится.

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

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

Шикарное решение, спасибо!

 

Мне потребовался вывод в разбивке по категориям. 

 

Делюсь:

 

ProductsView.php

			$categories = $this->categories->get_product_categories($products_ids);
			foreach($categories as $cat)
			{
			$products[$cat->product_id]->category = $this->categories->get_category((int)$cat->category_id);
			$cat_ids[]=$this->categories->get_category((int)$cat->category_id);
			}
			
			$productsByCats = array();
			foreach($products as $key => $productItem) {
				if(!isset($productsByCats[$productItem->category->id])) {
					$productsByCats[$productItem->category->id] = array(
						'id' => $productItem->category->id,
						'name' => $productItem->category->name,
						'url' => $productItem->category->url
					);
				}
				
				$productsByCats[$productItem->category->id]['products'][$key] = $productItem;				
			}					

			$this->design->assign('products', $productsByCats);

products.tpl

 

 {foreach $products as $productCat}

	<div class="heading">
                <h1><span><a href='catalog/{$productCat['url']}'>{$productCat['name']}</a></span></h1>
    </div>


	{foreach $productCat['products'] as $product}
*тут оставляем вывод продукта как было*
    {/foreach}

{/foreach}

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

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

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

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

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

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

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

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

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

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