/** * Initializes the criteria object with the slice based on the given parameter. * * @param \Aimeos\MW\Criteria\Iface $criteria Criteria object * @param \stdClass $params Object that may contain the properties "condition", "sort", "dir", "start" and "limit" */ protected function initCriteriaSlice(\Aimeos\MW\Criteria\Iface $criteria, \stdClass $params) { if (isset($params->start) && isset($params->limit)) { $start = isset($params->start) ? $params->start : 0; $size = isset($params->limit) ? $params->limit : 1000; $criteria->setSlice($start, $size); } }
/** * Initializes the criteria object with the slice based on the given parameter. * * @param \Aimeos\MW\Criteria\Iface $criteria Criteria object * @param array $params List of criteria data with condition, sorting and paging */ private function initCriteriaSlice(\Aimeos\MW\Criteria\Iface $criteria, array $params) { $start = isset($params['page']['offset']) ? $params['page']['offset'] : 0; $size = isset($params['page']['limit']) ? $params['page']['limit'] : 100; $criteria->setSlice($start, $size); }
/** * Re-writes the index entries for all products that are search result of given criteria * * @param \Aimeos\MW\Criteria\Iface $search Search criteria * @param array $domains List of domains to be * @param integer $size Size of a chunk of products to handle at a time */ protected function writeIndex(\Aimeos\MW\Criteria\Iface $search, array $domains, $size) { $manager = \Aimeos\MShop\Factory::createManager($this->getContext(), 'product'); $submanagers = $this->getSubManagers(); $start = 0; do { $search->setSlice($start, $size); $products = $manager->searchItems($search, $domains); $prodIds = array_keys($products); try { $this->begin(); $this->deleteItems($prodIds); foreach ($submanagers as $submanager) { $submanager->rebuildIndex($products); } $this->saveSubProducts($products); $this->commit(); } catch (\Exception $e) { $this->rollback(); throw $e; } $this->clearCache($prodIds); $count = count($products); $start += $count; } while ($count == $search->getSliceSize()); }
/** * Initializes the criteria object with the slice based on the given parameter. * * @param \Aimeos\MW\Criteria\Iface $criteria Criteria object * @param array $params List of criteria data with condition, sorting and paging */ protected function initCriteriaSlice(\Aimeos\MW\Criteria\Iface $criteria, array $params) { $start = isset($params['page']['offset']) ? (int) $params['page']['offset'] : 0; $size = isset($params['page']['limit']) ? (int) $params['page']['limit'] : 25; $criteria->setSlice($start, $size); }