/** * 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); }
/** * 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); } }
/** * 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); }