Exemplo n.º 1
0
 /**
  * Sort according to current request
  *
  * @param $query
  * @return mixed
  */
 public function scopeSort($query)
 {
     if (ch_sort_field() && ch_sort_order()) {
         $query->orderBy(ch_sort_field(), ch_sort_order());
     }
     return $query;
 }
Exemplo n.º 2
0
 /**
  * Create head links (for sorting)
  *
  * @return array
  */
 protected function headLinks()
 {
     $links = [];
     $explicit = count($this->sort) > 0;
     $icons = self::iconRenderer();
     foreach ($this->columns as $field => $caption) {
         //Translate caption
         $caption = trans($caption);
         //If has a caption AND is marked to be sorted
         if (strlen(trim($caption)) && ($explicit && in_array($field, $this->sort) || !$explicit && !in_array($field, $this->sortExcept))) {
             //New cell
             $link = new Cell($field, $caption);
             //Determine sorting order
             $order = ch_sort_field($field) && ch_sort_asc() ? config('chameleon.descending', self::$DESC) : config('chameleon.ascending', self::$ASC);
             //Set appropriate icon
             $icon = CustomizeCell::$icons(ch_sort_field($field) ? ch_sort_asc() ? config('chameleon.ascending-icon', self::$ASCICON) : config('chameleon.descending-icon', self::$DESCICON) : config('chameleon.sorting-icon', self::$SORTICON), new Cell('', ''));
             //QueryString params
             $params = self::buildParameters([config('chameleon.sort-field', self::$FIELD) => $field, config('chameleon.sort-order', self::$ORDER) => $order]);
             //Create link
             $links[$field] = $icon . ' ' . CustomizeCell::currentUrl($params, $link);
         } else {
             //No sorting link
             $links[$field] = $caption;
         }
     }
     return $links;
 }
Exemplo n.º 3
0
 /**
  * Get sorting params
  *
  * @param string $field
  * @param string $sort
  * @return array
  */
 function ch_sort($field = '', $sort = '')
 {
     return [ch_sort_field($field), ch_sort_order($sort)];
 }