/**
  * {@inheritdoc}
  */
 public function indexAction(LayoutBoxSettingsCollection $boxSettings)
 {
     $categories = $this->get('category.dataset.front')->getResult('array', ['limit' => 5, 'order_by' => 'name', 'order_dir' => 'asc']);
     foreach ($categories['rows'] as &$category) {
         $category['dataset'] = $this->manager->getShowcaseCategoryProducts($category['id'], $boxSettings->getParam('status'));
     }
     return $this->displayTemplate('index', ['showcase' => $categories]);
 }
 /**
  * {@inheritdoc}
  */
 public function indexAction(LayoutBoxSettingsCollection $boxSettings)
 {
     $productProvider = $this->manager->getProvider('product');
     $collectionBuilder = $productProvider->getCollectionBuilder();
     $requestHelper = $this->manager->getRequestHelper();
     $dataset = $collectionBuilder->getDataSet(['limit' => $requestHelper->getQueryAttribute('limit', $boxSettings->getParam('per_page', 12)), 'order_by' => $requestHelper->getQueryAttribute('order_by', 'price'), 'order_dir' => $requestHelper->getQueryAttribute('order_dir', 'asc'), 'conditions' => $this->manager->getStatusConditions($boxSettings->getParam('status')), 'cache_enabled' => true]);
     return $this->displayTemplate('index', ['dataset' => $dataset]);
 }
 private function makeSettingsCollection(array $defaultSettings = [], array $params = []) : LayoutBoxSettingsCollection
 {
     $settings = array_merge($defaultSettings, $params);
     $collection = new LayoutBoxSettingsCollection();
     foreach ($settings as $name => $value) {
         $collection->add($name, $value);
     }
     return $collection;
 }
 public function indexAction(LayoutBoxSettingsCollection $boxSettings) : Response
 {
     $categories = $this->get('category.dataset.front')->getResult('array', ['limit' => 5, 'order_by' => 'name', 'order_dir' => 'asc'], ['pagination' => false]);
     foreach ($categories['rows'] as &$category) {
         $conditions = $this->createConditionsCollection($boxSettings->getParam('status'), $category['id']);
         $category['dataset'] = $this->get('product.dataset.front')->getResult('array', ['limit' => 10, 'order_by' => 'name', 'order_dir' => 'asc', 'conditions' => $conditions]);
     }
     return $this->displayTemplate('index', ['showcase' => $categories]);
 }
 /**
  * {@inheritdoc}
  */
 public function indexAction(LayoutBoxSettingsCollection $boxSettings)
 {
     $dataset = $this->get('product.dataset.front');
     $requestHelper = $this->manager->getRequestHelper();
     $limit = $requestHelper->getAttributesBagParam('limit', $boxSettings->getParam('per_page', 12));
     $conditions = $this->manager->getCurrentProducerConditions();
     $conditions = $this->get('layered_navigation.helper')->addLayeredNavigationConditions($conditions);
     $products = $dataset->getResult('array', ['limit' => $limit, 'page' => $requestHelper->getAttributesBagParam('page', 1), 'order_by' => $requestHelper->getAttributesBagParam('orderBy', 'name'), 'order_dir' => $requestHelper->getAttributesBagParam('orderDir', 'asc'), 'conditions' => $conditions]);
     return $this->displayTemplate('index', ['dataset' => $products]);
 }
 /**
  * {@inheritdoc}
  */
 public function indexAction(LayoutBoxSettingsCollection $boxSettings)
 {
     $provider = $this->manager->getProductProvider();
     $collectionBuilder = $provider->getCollectionBuilder();
     $requestHelper = $this->manager->getRequestHelper();
     $limit = $requestHelper->getCurrentLimit($boxSettings->getParam('per_page', 12));
     $offset = $requestHelper->getCurrentOffset($limit);
     $dataset = $collectionBuilder->getDataSet(['limit' => $limit, 'offset' => $offset, 'order_by' => $requestHelper->getQueryAttribute('order_by', 'name'), 'order_dir' => $requestHelper->getQueryAttribute('order_dir', 'asc'), 'conditions' => $this->manager->getCurrentCategoryConditions(), 'cache_enabled' => true]);
     return $this->displayTemplate('index', ['dataset' => $dataset]);
 }
 private function makeSettingsCollection(LayoutBoxInterface $box, array $params = []) : LayoutBoxSettingsCollection
 {
     $defaultSettings = $box->getSettings();
     $settings = array_merge($defaultSettings, $params);
     $collection = new LayoutBoxSettingsCollection();
     foreach ($settings as $name => $value) {
         $collection->add($name, $value);
     }
     $collection->add('name', $box->translate()->getName());
     $collection->add('content', $box->translate()->getContent());
     return $collection;
 }