Beispiel #1
0
 /**
  * Initializes the criteria object with sortations based on the given parameter.
  *
  * @param MW_Common_Criteria_Interface $criteria Criteria object
  * @param stdClass $params Object that may contain the properties "condition", "sort", "dir", "start" and "limit"
  */
 private function _initCriteriaSortations(MW_Common_Criteria_Interface $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 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);
     }
 }