/**
  * Add filter to display categorized products
  *
  * @param FilterDatasourceAdapterInterface $ds
  * @param array                            $data
  *
  * @return boolean has been applied
  */
 protected function applyFilterByCategory(FilterDatasourceAdapterInterface $ds, $data)
 {
     $categoryRepository = $this->manager->getCategoryRepository();
     $productRepository = $this->manager->getProductCategoryRepository();
     $qb = $ds->getQueryBuilder();
     $category = $categoryRepository->find($data['categoryId']);
     if (!$category) {
         $category = $categoryRepository->find($data['treeId']);
     }
     if ($category) {
         $productIds = $this->getProductIdsInCategory($category, $data);
         $productRepository->applyFilterByIds($qb, $productIds, true);
         return true;
     }
     return false;
 }
Exemplo n.º 2
0
 /**
  * Get children category ids
  *
  * @param CategoryInterface $category
  *
  * @return integer[]
  */
 protected function getAllChildrenIds(CategoryInterface $category)
 {
     $categoryRepository = $this->manager->getCategoryRepository();
     $categoryIds = $categoryRepository->getAllChildrenIds($category);
     return $categoryIds;
 }