/** * Returns the complete table for the range picker */ function wpdatatables_get_complete_table_json_by_id() { $table_id = filter_var($_POST['table_id'], FILTER_SANITIZE_NUMBER_INT); $table_data = wdt_get_table_by_id($table_id); $column_data = wdt_get_columns_by_table_id($table_id); $tbl = new WPDataTable(); $tbl->setWpId($table_id); $column_order = array(); $column_titles = array(); $column_types = array(); $column_possible_values = array(); foreach ($column_data as $column) { $column_order[(int) $column->pos] = $column->orig_header; if ($column->display_header) { $column_titles[$column->orig_header] = $column->display_header; } if ($column->column_type != 'autodetect') { $column_types[$column->orig_header] = $column->column_type; } $column_possible_values[$column->orig_header] = $column->possible_values; } switch ($table_data['table_type']) { case 'mysql': case 'manual': $tbl->queryBasedConstruct($table_data['content'], array(), array('data_types' => $column_types, 'column_titles' => $column_titles)); break; case 'xls': case 'csv': $tbl->excelBasedConstruct($table_data['content'], array('data_types' => $column_types, 'column_titles' => $column_titles)); break; case 'xml': $tbl->XMLBasedConstruct($table_data['content'], array('data_types' => $column_types, 'column_titles' => $column_titles)); break; case 'json': $tbl->jsonBasedConstruct($table_data['content'], array('data_types' => $column_types, 'column_titles' => $column_titles)); break; case 'serialized': $array = unserialize(WDTTools::curlGetData($table_data['content'])); $tbl->arrayBasedConstruct($array, array('data_types' => $column_types, 'column_titles' => $column_titles)); break; case 'google_spreadsheet': $array = WDTTools::extractGoogleSpreadsheetArray($content); $tbl->arrayBasedConstruct($array, array('data_types' => $column_types, 'column_titles' => $column_titles)); break; } $tbl->reorderColumns($column_order); echo json_encode($tbl->getDataRows()); exit; }