/home/altere25/usaigc.com/wp-content/plugins/wpdatatables/controllers
NameSizeModeActions
wdt_admin.php338100644editdlrm
wdt_admin_ajax_actions.php214430644editdlrm
wdt_functions.php447950644editdlrm
Edit: /home/altere25/usaigc.com/wp-content/plugins/wpdatatables/controllers/wdt_admin_ajax_actions.php (21443B)
mysql_table_name; $content = $tableData->content; if ($tableData->table_type != 'simple') { // Create duplicate version of input table if checkbox is selected if ($manualDuplicateInput) { // Generating new input table name $cnt = 1; $newNameGenerated = false; while (!$newNameGenerated) { $newName = $tableData->mysql_table_name . '_' . $cnt; $checkTableQuery = "SHOW TABLES LIKE '{$newName}'"; if (!get_option('wdtUseSeparateCon')) { $res = $wpdb->get_results($checkTableQuery); } else { $sql = new PDTSql(WDT_MYSQL_HOST, WDT_MYSQL_DB, WDT_MYSQL_USER, WDT_MYSQL_PASSWORD, WDT_MYSQL_PORT); $res = $sql->getRow($checkTableQuery); } if (!empty($res)) { $cnt++; } else { $newNameGenerated = true; } } // Input table queries $query1 = "CREATE TABLE {$newName} LIKE {$tableData->mysql_table_name};"; $query2 = "INSERT INTO {$newName} SELECT * FROM {$tableData->mysql_table_name};"; if (!get_option('wdtUseSeparateCon')) { $wpdb->query($query1); $wpdb->query($query2); } else { $sql->doQuery($query1); $sql->doQuery($query2); } $mySqlTableName = $newName; $content = str_replace($tableData->mysql_table_name, $newName, $tableData->content); } } // Creating new table $wpdb->insert( $wpdb->prefix . 'wpdatatables', array( 'title' => $newTableName, 'show_title' => $tableData->show_title, 'table_type' => $tableData->table_type, 'file_location' => $tableData->file_location, 'content' => $content, 'filtering' => $tableData->filtering, 'filtering_form' => $tableData->filtering_form, 'sorting' => $tableData->sorting, 'cache_source_data' => $tableData->cache_source_data, 'auto_update_cache' => $tableData->auto_update_cache, 'tools' => $tableData->tools, 'server_side' => $tableData->server_side, 'editable' => $tableData->editable, 'inline_editing' => $tableData->inline_editing, 'popover_tools' => $tableData->popover_tools, 'editor_roles' => $tableData->editor_roles, 'mysql_table_name' => $mySqlTableName, 'edit_only_own_rows' => $tableData->edit_only_own_rows, 'userid_column_id' => $tableData->userid_column_id, 'display_length' => $tableData->display_length, 'auto_refresh' => $tableData->auto_refresh, 'fixed_columns' => $tableData->fixed_columns, 'fixed_layout' => $tableData->fixed_layout, 'responsive' => $tableData->responsive, 'scrollable' => $tableData->scrollable, 'word_wrap' => $tableData->word_wrap, 'hide_before_load' => $tableData->hide_before_load, 'var1' => $tableData->var1, 'var2' => $tableData->var2, 'var3' => $tableData->var3, 'tabletools_config' => serialize($tableData->tabletools_config), 'advanced_settings' => $tableData->advanced_settings ) ); $newTableId = $wpdb->insert_id; if ($tableData->table_type != 'simple') { // Getting the column data $columns = WDTConfigController::loadColumnsFromDB($tableId); // Creating new columns foreach ($columns as $column) { $wpdb->insert( $wpdb->prefix . 'wpdatatables_columns', array( 'table_id' => $newTableId, 'orig_header' => $column->orig_header, 'display_header' => $column->display_header, 'filter_type' => $column->filter_type, 'column_type' => $column->column_type, 'input_type' => $column->input_type, 'input_mandatory' => $column->input_mandatory, 'id_column' => $column->id_column, 'group_column' => $column->group_column, 'sort_column' => $column->sort_column, 'hide_on_phones' => $column->hide_on_phones, 'hide_on_tablets' => $column->hide_on_tablets, 'visible' => $column->visible, 'sum_column' => $column->sum_column, 'skip_thousands_separator' => $column->skip_thousands_separator, 'width' => $column->width, 'possible_values' => $column->possible_values, 'default_value' => $column->default_value, 'css_class' => $column->css_class, 'text_before' => $column->text_before, 'text_after' => $column->text_after, 'formatting_rules' => $column->formatting_rules, 'calc_formula' => $column->calc_formula, 'color' => $column->color, 'pos' => $column->pos, 'advanced_settings' => $column->advanced_settings ) ); if ($column->id == $tableData->userid_column_id) { $userIdColumnNewId = $wpdb->insert_id; $wpdb->update( $wpdb->prefix . 'wpdatatables', array('userid_column_id' => $userIdColumnNewId), array('id' => $newTableId) ); } } } else { $rows = WDTConfigController::loadRowsDataFromDB($tableId); foreach ($rows as $row) { $wpdb->insert( $wpdb->prefix . "wpdatatables_rows", array( 'table_id' => $newTableId, 'data' => json_encode($row) ) ); } } exit(); } add_action('wp_ajax_wpdatatables_duplicate_table', 'wdtDuplicateTable'); function wdtCreateSimpleTable() { if (!current_user_can('manage_options') || !wp_verify_nonce($_POST['wdtNonce'], 'wdtConstructorNonce')) { exit(); } $tableTemplateID = 0; if($_POST['templateId']){ $tableTemplateID = (int)$_POST['templateId']; } $tableData = apply_filters( 'wpdatatables_before_create_simple_table', json_decode( stripslashes_deep( $_POST['tableData'] ) ) ); if($tableTemplateID){ $wpDataTableRowsAll = WDTConfigController::loadRowsDataFromDBTemplateAll($tableTemplateID); $tableData->content = $wpDataTableRowsAll[0]->content; $tableData = WDTConfigController::sanitizeTableSettingsSimpleTable($tableData); } else { $tableData = WDTConfigController::sanitizeTableSettingsSimpleTable($tableData); } $wpDataTableRows = new WPDataTableRows($tableData); // Generate new id and save settings in wpdatatables table in DB if($tableTemplateID){ $newTableId = generateSimpleTableID($wpDataTableRows, $wpDataTableRowsAll[0]->settings, $tableTemplateID); for ($i = 0; $i < count($wpDataTableRowsAll); $i++) { WDTConfigController::saveRowData($wpDataTableRowsAll[$i]->data, $newTableId); } } else { $newTableId = generateSimpleTableID($wpDataTableRows); // Save table with empty data $wpDataTableRows->saveTableWithEmptyData($newTableId); } // Generate a link for new table echo admin_url('admin.php?page=wpdatatables-constructor&source&simple&table_id=' . $newTableId); exit(); } add_action('wp_ajax_wpdatatables_create_simple_table', 'wdtCreateSimpleTable'); function wdtGetHandsontableData() { if (!current_user_can('manage_options') || !wp_verify_nonce($_POST['wdtNonce'], 'wdtEditNonce')) { exit(); } $tableID = (int)$_POST['tableID']; $res = new stdClass(); try { $wpDataTableRows = WPDataTableRows::loadWpDataTableRows($tableID); $res->tableData = $wpDataTableRows->getRowsData(); $res->tableMeta = $wpDataTableRows->getTableSettingsData()->content; } catch (Exception $e) { $res->error = ltrim($e->getMessage(), '

'); } echo json_encode($res); exit(); } add_action('wp_ajax_wpdatatables_get_handsontable_data', 'wdtGetHandsontableData'); function generateSimpleTableID($wpDataTableRows, $wpDataTableRowsSettings = null, $tableTemplateID = 0) { global $wpdb; $tableContent = new stdClass(); $tableContent->rowNumber = $wpDataTableRows->getRowNumber(); $tableContent->colNumber = $wpDataTableRows->getColNumber(); $tableContent->colWidths = $wpDataTableRows->getColWidths(); $tableContent->colHeaders = $wpDataTableRows->getColHeaders(); $tableContent->reloadCounter = $wpDataTableRows->getReloadCounter(); $tableContent->mergedCells = $wpDataTableRows->getMergeCells(); if($wpDataTableRowsSettings !== null) { $tableContent->settings = $wpDataTableRowsSettings; } // Create the wpDataTable metadata $wpdb->insert( $wpdb->prefix . "wpdatatables", array( 'title' => ($tableTemplateID === 0) ? sanitize_text_field($wpDataTableRows->getTableName()) : $wpDataTableRowsSettings->name, 'table_type' => $wpDataTableRows->getTableType(), 'content' => json_encode($tableContent), 'server_side' => 0, 'mysql_table_name' => '', 'tabletools_config' => serialize(array( 'print' => 1, 'copy' => 1, 'excel' => 1, 'csv' => 1, 'pdf' => 0 )), 'advanced_settings' => json_encode(array( 'simpleResponsive' => ($tableTemplateID === 0) ? 0 : $wpDataTableRowsSettings->simpleResponsive, 'simpleHeader' => ($tableTemplateID === 0) ? 0 : $wpDataTableRowsSettings->simpleHeader, 'stripeTable' => ($tableTemplateID === 0) ? 0 : $wpDataTableRowsSettings->stripeTable, 'cellPadding' => ($tableTemplateID === 0) ? 10 : $wpDataTableRowsSettings->cellPadding, 'removeBorders' => ($tableTemplateID === 0) ? 0 : $wpDataTableRowsSettings->removeBorders, 'borderCollapse' => ($tableTemplateID === 0) ? 'collapse' : $wpDataTableRowsSettings->borderCollapse, 'borderSpacing' => ($tableTemplateID === 0) ? 0 : $wpDataTableRowsSettings->borderSpacing, 'verticalScroll' => ($tableTemplateID === 0) ? 0 : $wpDataTableRowsSettings->verticalScroll, 'verticalScrollHeight' => ($tableTemplateID === 0) ? 600 : $wpDataTableRowsSettings->verticalScrollHeight, 'show_table_description' => false, 'table_description' => '', 'simple_template_id' => $tableTemplateID ) ) ) ); // Store the new table metadata ID return $wpdb->insert_id; } /** * Save data in database for Simple table */ function wdtSaveDataSimpleTable() { global $wpdb; if (!current_user_can('manage_options') || !wp_verify_nonce($_POST['wdtNonce'], 'wdtEditNonce')) { exit(); } $turnOffSimpleHeader = 0; $tableSettings = json_decode(stripslashes_deep($_POST['tableSettings'])); $tableSettings = WDTConfigController::sanitizeTableConfig($tableSettings); $tableID = intval($tableSettings->id); $rowsData = json_decode(stripslashes_deep($_POST['rowsData'])); $rowsData = WDTConfigController::sanitizeRowDataSimpleTable($rowsData, $tableID); $result = new stdClass(); if ($tableSettings->content->mergedCells){ $mergedCells = $tableSettings->content->mergedCells; foreach ($mergedCells as $mergedCell){ if($mergedCell->row == 0 && $mergedCell->rowspan > 1){ $turnOffSimpleHeader = 1; } } } $wpdb->update( $wpdb->prefix . "wpdatatables", array( 'content' => json_encode($tableSettings->content), 'scrollable' => $tableSettings->scrollable, 'fixed_layout' => $tableSettings->fixed_layout, 'word_wrap' => $tableSettings->word_wrap, 'show_title' => $tableSettings->show_title, 'title' => $tableSettings->title, 'advanced_settings' => json_encode( array( 'simpleResponsive' => $tableSettings->simpleResponsive, 'simpleHeader' => $turnOffSimpleHeader ? 0 : $tableSettings->simpleHeader, 'stripeTable' => $tableSettings->stripeTable, 'cellPadding' => $tableSettings->cellPadding, 'removeBorders' => $tableSettings->removeBorders, 'borderCollapse' => $tableSettings->borderCollapse, 'borderSpacing' => $tableSettings->borderSpacing, 'verticalScroll' => $tableSettings->verticalScroll, 'verticalScrollHeight' => $tableSettings->verticalScrollHeight, 'show_table_description' => $tableSettings->show_table_description, 'table_description' => $tableSettings->table_description, 'simple_template_id' => $tableSettings->simple_template_id ) ) ), array('id' => $tableID) ); if ($wpdb->last_error == '') { try { $wpDataTableRows = new WPDataTableRows($tableSettings); if ($wpDataTableRows->checkIsExistTableID($tableID)) { $wpDataTableRows->deleteRowsData($tableID); } foreach ($rowsData as $rowData){ WDTConfigController::saveRowData($rowData, $tableID); } $wpDataTableRows = WPDataTableRows::loadWpDataTableRows($tableID); $result->reload = $wpDataTableRows->getTableSettingsData()->content->reloadCounter; $result->tableHTML = $wpDataTableRows->generateTable($tableID); } catch (Exception $e) { $result->error = ltrim($e->getMessage(), '

'); } } else { $result->error = $wpdb->last_error; } echo json_encode($result); exit(); } add_action('wp_ajax_wpdatatables_save_simple_table_data', 'wdtSaveDataSimpleTable'); /** * Return all columns for a provided table */ function wdtGetColumnsDataByTableId() { if (!current_user_can('manage_options') || !(wp_verify_nonce($_POST['wdtNonce'], 'wdtChartWizardNonce') || wp_verify_nonce($_POST['wdtNonce'], 'wdtEditNonce')) ) { exit(); } $tableId = (int)$_POST['table_id']; echo json_encode(WDTConfigController::loadColumnsFromDB($tableId)); exit(); } add_action('wp_ajax_wpdatatables_get_columns_data_by_table_id', 'wdtGetColumnsDataByTableId'); /** * Delete log_errors in cache table */ function wdtDeleteLogErrorsCache() { global $wpdb; if (!current_user_can('manage_options') || !wp_verify_nonce($_POST['wdtNonce'], 'wdtSettingsNonce')) { exit(); } $result = ''; $wpdb->query("UPDATE " . $wpdb->prefix . "wpdatatables_cache SET log_errors = ''"); if ($wpdb->last_error != '') { $result = 'Database error: ' . $wpdb->last_error; } echo $result; exit(); } add_action('wp_ajax_wpdatatables_delete_log_errors_cache', 'wdtDeleteLogErrorsCache'); /** * List all tables in JSON */ function wdtListAllTables() { if (!current_user_can('manage_options')) { exit(); } echo json_encode(WPDataTable::getAllTables()); exit(); } add_action('wp_ajax_wpdatatable_list_all_tables', 'wdtListAllTables'); function wdtShowChartFromData() { if (!current_user_can('manage_options') || !wp_verify_nonce($_POST['wdtNonce'], 'wdtChartWizardNonce')) { exit(); } $chartData = stripslashes_deep($_POST['chart_data']); $wpDataChart = WPDataChart::build($chartData); echo json_encode($wpDataChart->returnData()); exit(); } add_action('wp_ajax_wpdatatable_show_chart_from_data', 'wdtShowChartFromData'); function wdtSaveChart() { if (!current_user_can('manage_options') || !wp_verify_nonce($_POST['wdtNonce'], 'wdtChartWizardNonce')) { exit(); } $chartData = stripslashes_deep($_POST['chart_data']); $wpDataChart = WPDataChart::build($chartData); $wpDataChart->save(); echo json_encode(array('id' => $wpDataChart->getId(), 'shortcode' => $wpDataChart->getShortCode())); exit(); } add_action('wp_ajax_wpdatatable_save_chart_get_shortcode', 'wdtSaveChart'); /** * List all charts in JSON */ function wdtListAllCharts() { if (!current_user_can('manage_options')) { exit(); } echo json_encode(WPDataChart::getAll()); exit(); } add_action('wp_ajax_wpdatatable_list_all_charts', 'wdtListAllCharts'); /** * Duplicate the chart */ function wdtDuplicateChart() { global $wpdb; if (!current_user_can('manage_options') || !wp_verify_nonce($_POST['wdtNonce'], 'wdtDuplicateChartNonce')) { exit(); } $chartId = (int)$_POST['chart_id']; if (empty($chartId)) { return false; } $newChartName = sanitize_text_field($_POST['new_chart_name']); $chartQuery = $wpdb->prepare( 'SELECT * FROM ' . $wpdb->prefix . 'wpdatacharts WHERE id = %d', $chartId ); $wpDataChart = $wpdb->get_row($chartQuery); // Creating new table $wpdb->insert( $wpdb->prefix . "wpdatacharts", array( 'wpdatatable_id' => $wpDataChart->wpdatatable_id, 'title' => $newChartName, 'engine' => $wpDataChart->engine, 'type' => $wpDataChart->type, 'json_render_data' => $wpDataChart->json_render_data ) ); exit(); } add_action('wp_ajax_wpdatatables_duplicate_chart', 'wdtDuplicateChart'); /** * Get Roots from Nested JSON url */ function wdtGetNestedJsonRoots() { if ( !current_user_can('manage_options') || !wp_verify_nonce($_POST['wdtNonce'], 'wdtEditNonce') ) { exit(); } global $wdtVar1, $wdtVar2, $wdtVar3, $wdtVar4, $wdtVar5, $wdtVar6, $wdtVar7, $wdtVar8, $wdtVar9; $tableConfig = json_decode(stripslashes_deep($_POST['tableConfig'])); // Set placeholders $wdtVar1 = $wdtVar1 === '' ? $tableConfig->var1 : $wdtVar1; $wdtVar2 = $wdtVar2 === '' ? $tableConfig->var2 : $wdtVar2; $wdtVar3 = $wdtVar3 === '' ? $tableConfig->var3 : $wdtVar3; $wdtVar4 = $wdtVar4 === '' ? $tableConfig->var4 : $wdtVar4; $wdtVar5 = $wdtVar5 === '' ? $tableConfig->var5 : $wdtVar5; $wdtVar6 = $wdtVar6 === '' ? $tableConfig->var6 : $wdtVar6; $wdtVar7 = $wdtVar7 === '' ? $tableConfig->var7 : $wdtVar7; $wdtVar8 = $wdtVar8 === '' ? $tableConfig->var8 : $wdtVar8; $wdtVar9 = $wdtVar9 === '' ? $tableConfig->var9 : $wdtVar9; $tableID = (int)$tableConfig->id; $params = json_decode(stripslashes_deep($_POST['params'])); $params = WDTConfigController::sanitizeNestedJsonParams($params); $nestedJSON = new WDTNestedJson($params); $response = $nestedJSON->getResponse($tableID); if (!is_array($response)) { wp_send_json_error( array( 'msg' => $response ) ); } $roots = $nestedJSON->prepareRoots( 'root', '', array(), $response); if ( empty( $roots ) ) { wp_send_json_error( array( 'msg' => esc_html__("Unable to retrieve data. Roots empty.", 'wpdatatables') ) ); } wp_send_json_success( array( 'url' => $nestedJSON->getUrl(), 'roots' => $roots ) ); } add_action('wp_ajax_wpdatatables_get_nested_json_roots', 'wdtGetNestedJsonRoots');