/** * {@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) { $dataset = $this->get('product.dataset.front'); $requestHelper = $this->manager->getRequestHelper(); $limit = $requestHelper->getQueryBagParam('limit', $boxSettings->getParam('per_page', 12)); $conditions = $this->manager->getStatusConditions($boxSettings->getParam('status')); $conditions = $this->getLayeredNavigationHelper()->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]); }
/** * Creates a collection of box settings * * @param array $defaultSettings * @param array $params * * @return LayoutBoxSettingsCollection */ protected function makeSettingsCollection(array $defaultSettings = [], array $params = []) { $settings = array_merge($defaultSettings, $params); $collection = new LayoutBoxSettingsCollection(); foreach ($settings as $name => $value) { $collection->add($name, $value); } return $collection; }