Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function valas_datatable($params, $debug = FALSE) {
- ob_start();
- $CI = & get_instance();
- $result = array(
- 'raw' => array(),
- 'data' => array(),
- 'sql' => array(),
- 'time' => array(),
- 'params' => $params,
- 'head' => array()
- );
- $get = isset($params['get']) ? $params["get"] : FALSE;
- /* Konfigurasi datatable */
- $result['draw'] = isset($get['draw']) ? $get['draw'] : rand(10000, 99999);
- $result['recordsTotal'] = $result['recordsFiltered'] = 0; //default
- $result['time']['start'] = microtime(); //wajib ada.. buat debug proses mana yg lambat
- $result['recordsTotal'] = $result['recordsFiltered'] = $CI->items_db
- ->valas_get_data(array(), 1, 0, TRUE);
- $start = isset($get['start']) ? $get['start'] : 0;
- $limit = isset($get['length']) ? $get['length'] : 10;
- $data_city = array();
- $filters = array();
- /* Konfigurasi sort by */
- $result['time']['sort 1'] = microtime();
- $column = "u_modified";
- if (isset($get['order'][0])) {
- $pos_column = $get['order'][0]['column'];
- $filters['order_dir'] = $get['order'][0]['dir'];
- if ($pos_column == 0) {
- $column = 'item_code';
- }
- if ($pos_column == 1) {
- $column = 'item_title';
- }
- if ($pos_column == 4) {
- $column = 'item_status';
- }
- $filters['order_by'] = array($column, $filters['order_dir']);
- }
- $result['time']['sort 2'] = microtime();
- /* ===== Konfigurasi Search ===== */
- $SEARCH = $get['search']['value'];
- if (!isset($params['limit'])) {
- if (!isset($SEARCH)) { // Apabila tidak ada pencarian
- // Perhatikan bahwa dalam model user perlu ada perbaikan
- $raw_data = $CI->items_db
- ->valas_get_data($filters, $limit, $start, FALSE, true);
- $result['time']['get all'] = microtime();
- $result['raw']['r'] = $raw_data;
- $result['sql'][] = isset($raw_data['sql']) ? $raw_data['sql'] : '';
- $raw_data = $raw_data['data'];
- } else {
- $filters['datatable_search'] = $SEARCH;
- $raw_data = $CI->items_db->_get_data($filters, $limit, $start, FALSE, true);
- $result['raw'][] = $raw_data;
- $result['sql'][] = isset($raw_data['sql']) ? $raw_data['sql'] : FALSE;
- $raw_data = $raw_data['data'];
- $result['recordsFiltered'] = $CI->items_db
- ->valas_get_data($filters, 1, 0, TRUE);
- // Bila ada pencarian
- // Bila dirasa menyulitkan.. kerjakan dalam driver ini. pisahkan dalam fungsi berbeda
- // Sebisa mungkin tidak memanfaatkan $this->db_main->query() !!!
- }
- } else {
- $raw_data = array();
- }
- /* ===== Parse Data ===== */
- $result['time']['parse begin'] = microtime();
- $n = 0;
- $result['head'] = array(
- 'kode', 'nama produk', 'stock', 'harga', 'status','aksi'
- );
- $data = array();
- foreach ($raw_data as $id_account => $row) {
- $url = site_url('user/settings/items/add/' . $row['id']);
- $aksi = '<a href="' . $url . '" class="btn btn-default">'; //user/settings/categories/add/id
- $aksi .= "EDIT</a>";
- $status = '-';
- if ($row['item_status'] == 0) {
- $status = 'tidak aktif';
- }
- if ($row['item_status'] == 1) {
- $status = 'Aktif';
- }
- if ($row['item_status'] == -1) {
- $status = 'Di Hapus';
- }
- //$cat_data = $CI->settings_db->category_get_by_field($row['item_cat'], 'cat_code');
- $tmp = array(
- //$row['id'],
- $row['item_code'],
- $row['item_title'],
- 0,
- $row['cat_title'],
- $status,
- $aksi
- );
- $tmp['raw'] = array($row);
- // Memakai site_url karena masalah intern saja. Jangan diganti base_url
- $data[] = $tmp;
- $row2 = $row;
- // $row2['testing']=true;
- // db_backup('account',$row['u_id'],$row,$row2);
- $n++;
- }
- // $result['raw'] = array($filters, $raw_data);
- $result['time']['parse end'] = microtime();
- $result['data'] = $data;
- $result['time']['end'] = microtime();
- if ($debug)
- $result['debug'] = $params;
- unset($result['raw']);
- unset($result['time']);
- unset($result['sql']);
- unset($result['params']);
- $out1 = ob_get_contents();
- if ($out1 != '') {
- $result['warning'] = explode("\n", $out1);
- }
- ob_end_clean();
- ksort($result);
- return $result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement