Advertisement
Guest User

Generate Datatable Input

a guest
May 21st, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.83 KB | None | 0 0
  1. public function generate_datatables_input($filters = array(), $column_search = array(), $column_order = array(), $order = array(), $pagination = false){
  2.      
  3.       if(isset($filters["search"]["value"]) && !empty($filters["search"]["value"])){
  4.         // remove null for global search
  5.         $tmp = $column_search;
  6.         $column_search = array();
  7.         foreach ($tmp as $i => $v) {
  8.           if($v == null || empty($v)) continue;
  9.           $column_search[] = $v;
  10.         }
  11.        
  12.         $i=0;        
  13.         foreach ($column_search as $item) {          
  14.           if($i == 0){
  15.             $this->db->group_start();
  16.             $this->db->like($item, $filters["search"]["value"]);
  17.           } else{
  18.             $this->db->or_like($item, $filters["search"]["value"]);
  19.           }
  20.  
  21.           if(count($column_search) - 1 == $i){
  22.             $this->db->group_end();
  23.           }
  24.           $i++;
  25.         }                  
  26.       }
  27.  
  28.       $i=0;
  29.       foreach ($column_search as $index => $item) {          
  30.         if(isset($filters['columns'][$index])){
  31.           if(!empty($filters["columns"][$index]['search']['value'])){
  32.             $value = $filters["columns"][$index]['search']['value'];  
  33.             $this->db->like($item, trim($value));
  34.           }
  35.         }
  36.  
  37.         $i++;
  38.       }
  39.  
  40.       if(isset($filters["order"])){          
  41.         $this->db->order_by($column_order[$filters["order"][0]["column"]], $filters["order"][0]["dir"]);
  42.       } else if(isset ($order)){
  43.         $this->db->order_by(key($order), $order[key($order)]);
  44.       }
  45.  
  46.       if($pagination){
  47.         $start  = isset($filters["start"]) ? (int) $filters["start"] : 0;
  48.         $length = isset($filters["length"]) ? (int) $filters["length"] : -1;
  49.        
  50.         if($length != -1) $this->db->limit($length, $start);        
  51.       }
  52.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement