Example #1
0
 /**
  * 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);
     }
 }
Example #2
0
 /**
  * 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);
 }
Example #3
0
 /**
  * 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());
 }
Example #4
0
 /**
  * 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);
 }