Jump to content


Photo
- - - - -

Вывод Related Items из одной категории


5 replies to this topic

#1 ilk

ilk
  • JBZoo User (rus)
  • User rate: 0.2
  • posts: 18
  • topics: 6

Posted 03 February 2017 - 16:32

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

 

Попробовал это решение, не работает.


  • 0

#2 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 04 February 2017 - 23:31

По мотивам темы попробуйте так

 

$select
        ->where('tCategoryItem.category_id = 42')
        ->leftJoin(ZOO_TABLE_CATEGORY_ITEM . ' AS tCategoryItem ON tCategoryItem.item_id = tItem.id');

 

вместо 42 используйте свое число - id категории


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 ilk

ilk
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.2
  • posts: 18
  • topics: 6

Posted 05 February 2017 - 04:55

По мотивам темы попробуйте так

$select
        ->where('tCategoryItem.category_id = 42')
        ->leftJoin(ZOO_TABLE_CATEGORY_ITEM . ' AS tCategoryItem ON tCategoryItem.item_id = tItem.id');

вместо 42 используйте свое число - id категории

 

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

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


  • 0

#4 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 05 February 2017 - 22:25

В этом случае, можно взять категорию из объекта материала

 

$categoryId = $item->getPrimaryCategoryId();

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 ilk

ilk
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.2
  • posts: 18
  • topics: 6

Posted 06 February 2017 - 11:19

В этом случае, можно взять категорию из объекта материала

$categoryId = $item->getPrimaryCategoryId();

 
С моими знаниями php - не получается.
Как будет выглядеть код этого блока?
 
            // create empty SQL query
            $select = $this->_getItemSelect(null, null, 0)
                ->clear('select')
                ->select('tItem.id AS id')
                ->where('tItem.id <> ?', $item->id);
 
if (isset($data['e_itemcategory_s'])) {
$select
->where('tCategoryItem.category_id IN (' . implode(',', $data['e_itemcategory_s']) . ')')
->leftJoin(ZOO_TABLE_CATEGORY_ITEM . ' AS tCategoryItem ON tCategoryItem.item_id = tItem.id');
}


  • 0

#6 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 08 February 2017 - 23:19

Видимо так


$categoryId = $item->getPrimaryCategoryId();
 
            // create empty SQL query
            $select = $this->_getItemSelect(null, null, 0)
                ->clear('select')
                ->select('tItem.id AS id')
                ->where('tItem.id <> ?', $item->id);
 
if ($categoryId) {
$select
    ->where('tCategoryItem.category_id IN (' . implode(',', $categoryId) . ')')
    ->leftJoin(ZOO_TABLE_CATEGORY_ITEM . ' AS tCategoryItem ON tCategoryItem.item_id = tItem.id');
}


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!