Вывод товаров из групп

#
Вывод товаров из групп
Добрый день. Есть интернет-магазин. Структура каталога следующая:
Группа 1
   - Подгруппа 1.1
   - Подгруппа 1.2
   ...
Группа 2
   - Подгруппа 2.1
   ...

При открытии, например, Группы 1 отображаются ее подгруппы, а как сделать чтобы отображались еще и например по 4-е товара из этой подгруппы?

Подгруппа 1.1
Товар 1 из 1.1     Товар 2 из 1.1    Товар 3 из 1.1    Товар 4 из 1.1

Подгруппа 1.2
Товар 1 из 1.2    Товар 2 из 1.2    Товар 3 из 1.2   Товар 4 из 1.2

...
#
Re: Вывод товаров из групп
Я думаю что частично разобрался в этом вопросе (код ниже). Назрел такой вопрос, как ограничить количество товара, выбираемого из каждой группы, например 4-мя?

class My_Shop_Controller_Show extends Shop_Controller_Show {
   protected function _groupCondition() {
      /*$this->_Shop_Items
      ->queryBuilder()
      ->where('shop_items.shop_group_id', '=', intval($this->group));
      */

      if ($this->group) {
         $this
         ->shopItems()
         ->queryBuilder()
         ->join('shop_groups', 'shop_groups.id', '=', 'shop_items.shop_group_id', array(
            array('AND' => array('(')),
            array('' => array('shop_groups.parent_id', '=', $this->group)),
            array('OR' => array('shop_groups.id', '=', $this->group)),
            array('' => array(')'))
         ));
      } else {
         $this
         ->shopItems()
         ->queryBuilder()
         ->where('shop_items.shop_group_id', '=', 0);
      }

      return $this;
   }
}

$Shop_Controller_Show = new My_Shop_Controller_Show($oShop);
#
Re: Вывод товаров из групп
Также пробовал так:
class My_Shop_Controller_Show extends Shop_Controller_Show {
   protected function _groupCondition() {
      if ($this->group) {
         $query = Core_QueryBuilder::select('shop_groups.id')
            ->from('shop_groups')
            ->where('shop_groups.parent_id', '=', (int)$this->group);

         $data = $query->execute()->asAssoc()->result();

         foreach ($data as $k) {
            $aGroups[] = $k['id'];
         }

         $this
            ->shopItems()
            ->queryBuilder()
            ->where('shop_items.shop_group_id', 'IN', $aGroups)
            ->limit(4);
      } else {
         $this
         ->shopItems()
         ->queryBuilder()
         ->where('shop_items.shop_group_id', '=', 0);
      }

      return $this;
   }
}

$Shop_Controller_Show = new My_Shop_Controller_Show($oShop);


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