Esempio n. 1
0
 /**
  * Initializes the criteria object with sortations 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 initCriteriaSortations(\Aimeos\MW\Criteria\Iface $criteria, array $params)
 {
     if (!isset($params['sort'])) {
         return;
     }
     $sortation = array();
     foreach ((array) $params['sort'] as $sort) {
         if ($sort[0] === '-') {
             $sortation[] = $criteria->sort('-', substr($sort, 1));
         } else {
             $sortation[] = $criteria->sort('+', $sort);
             break;
         }
     }
     $criteria->setSortations($sortation);
 }
Esempio n. 2
0
 /**
  * Initializes the criteria object with sortations 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"
  */
 private function initCriteriaSortations(\Aimeos\MW\Criteria\Iface $criteria, \stdClass $params)
 {
     if (isset($params->sort) && isset($params->dir)) {
         $sortation = array();
         switch ($params->dir) {
             case 'ASC':
                 $sortation[] = $criteria->sort('+', $params->sort);
                 break;
             case 'DESC':
                 $sortation[] = $criteria->sort('-', $params->sort);
                 break;
             default:
                 throw new \Aimeos\Controller\ExtJS\Exception(sprintf('Invalid sort direction "%1$s"', $params->sort));
         }
         $criteria->setSortations($sortation);
     }
     if ($this->sort !== null) {
         $sort = $criteria->getSortations();
         $sort[] = $criteria->sort('+', $this->sort);
         $criteria->setSortations($sort);
     }
 }
Esempio n. 3
0
 /**
  * Initializes the criteria object with sortations 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 initCriteriaSortations(\Aimeos\MW\Criteria\Iface $criteria, array $params)
 {
     if (!isset($params['sort'])) {
         return;
     }
     $sortation = array();
     foreach (explode(',', $params['sort']) as $sort) {
         if ($sort[0] === '-') {
             $sortation[] = $criteria->sort('-', substr($sort, 1));
         } else {
             $sortation[] = $criteria->sort('+', $sort);
         }
     }
     $criteria->setSortations($sortation);
 }