/** * @param $entity_ids */ protected function _setupCollection($entity_ids) { $list = $this->_objectManager->create('\\Boxalino\\Intelligence\\Model\\Collection'); $list->setStoreId($this->_storeManager->getStore()->getId())->addFieldToFilter('entity_id', $entity_ids)->addAttributeToSelect('*'); $list->getSelect()->order(new \Zend_Db_Expr('FIELD(e.entity_id,' . implode(',', $entity_ids) . ')')); $list->load(); $list->setCurBxPage($this->getToolbarBlock()->getCurrentPage()); $limit = $this->getRequest()->getParam('product_list_limit') ? $this->getRequest()->getParam('product_list_limit') : $this->getToolbarBlock()->getDefaultPerPageValue(); $totalHitCount = $this->p13nHelper->getTotalHitCount(); if (ceil($totalHitCount / $limit) < $list->getCurPage() && $this->getRequest()->getParam('p')) { $url = $this->_url->getCurrentUrl(); $url = preg_replace('/(\\&|\\?)p=+(\\d|\\z)/', '$1p=1', $url); $this->_response->setRedirect($url); } $lastPage = ceil($totalHitCount / $limit); $list->setLastBxPage($lastPage); $list->setBxTotal($totalHitCount); $this->_productCollection = $list; }