Ejemplo n.º 1
0
 /**
  * Sets the sort definition for this data provider.
  * 
  * @param array|Sort|boolean $value the sort definition to be used by this data provider.
  *        This can be one of the following:
  *       
  *        - a configuration array for creating the sort definition object. The "class" element defaults
  *        to 'Leaps\Data\Sort'
  *        - an instance of [[Sort]] or its subclass
  *        - false, if sorting needs to be disabled.
  *       
  * @throws InvalidParamException
  */
 public function setSort($value)
 {
     if (is_array($value)) {
         $config = ['className' => Sort::className()];
         if ($this->id !== null) {
             $config['sortParam'] = $this->id . '-sort';
         }
         $this->_sort = Leaps::createObject(array_merge($config, $value));
     } elseif ($value instanceof Sort || $value === false) {
         $this->_sort = $value;
     } else {
         throw new InvalidParamException('Only Sort instance, configuration array or false is allowed.');
     }
 }
Ejemplo n.º 2
0
 /**
  * Sorts the data models according to the given sort definition
  * 
  * @param array $models the models to be sorted
  * @param Sort $sort the sort definition
  * @return array the sorted data models
  */
 protected function sortModels($models, $sort)
 {
     $orders = $sort->getOrders();
     if (!empty($orders)) {
         ArrayHelper::multisort($models, array_keys($orders), array_values($orders));
     }
     return $models;
 }