$template_site->pparse('header'); $template_site->pparse('queries-new'); //Output new query test result (if any) echo $test_output; //*** Query Manager *** //To be display only when the user is not testin a new query if ($_POST[$wpbi_settings['parameter']['action']] != 'test') { //Get saved queries $qy_queries = "\r\n\t\tSELECT `QUERY_ID`, `QUERY_NAME`, CONCAT(`DB_NAME`,'(',`DB_USER`,'@',`DB_HOST`,')') \"DATABASE\" , `QUERY_STATEMENT` \r\n\t\tFROM " . $wpbi_sql['tname']['queries'] . ", " . $wpbi_sql['tname']['databases'] . "\r\n\t\tWHERE `DATABASE_ID` = `DB_ID` order by `QUERY_NAME` asc"; $query = new query($qy_queries, $wpdb, $wpbi_sql['tname']['vars']); $total_rows = $wpdb->get_results($query->count_qy_results(), 'ARRAY_N'); $total_rows = intval($total_rows[0][0]); //Page navigation $pagination = new pagination(); $pagination->set_pg_interval($wpbi_settings['parameter']['page-interval']); $pagination->set_pg_parameter('pg'); $pagination->set_current_page(isset($_GET[$pagination->pg_parameter]) ? abs((int) $_GET[$pagination->pg_parameter]) : 1); $pagination->set_rows($total_rows); $pagination->set_css_class('widefat post fixed'); $pagination->set_css_style('widefat-pagination.css'); $pagination->set_pagination_tpl_path($wpbi_url['tpl']); $pagination->set_pagination_stats($wpbi_dialog['table']['pagination']['stats']); $pagination->set_paginate_links(paginate_links(array('base' => esc_url(add_query_arg($pagination->pg_parameter, '%#%')), 'format' => '', 'prev_text' => __($wpbi_dialog['table']['pagination']['prev_text']), 'next_text' => __($wpbi_dialog['table']['pagination']['next_text']), 'total' => ceil($pagination->rows / $pagination->pg_interval), 'current' => $pagination->current_page))); $pagination->initialize(); echo $pagination->get_html(); //END page navigation //Execute query limitng the resultset $qy_queries_rows = $wpdb->get_results($query->limit_qy_to($pagination->item_start - 1, $pagination->pg_interval), 'ARRAY_N'); //Output table $column_headers = array($wpbi_dialog['header']['queries']['id'], $wpbi_dialog['header']['queries']['name'], $wpbi_dialog['header']['queries']['database'], $wpbi_dialog['header']['queries']['statement']); $single_actions = array("edit" => array("label" => $wpbi_dialog['action']['label']['edit'], "page" => $wpbi_url['slug']['queries'], "action" => $wpbi_settings['value']['edit'], "parameter" => $wpbi_settings['parameter']['qy_id']), "copy" => array("label" => $wpbi_dialog['action']['label']['copy'], "page" => $wpbi_url['slug']['queries'], "action" => $wpbi_settings['value']['copy'], "parameter" => $wpbi_settings['parameter']['qy_id']), "test" => array("label" => $wpbi_dialog['action']['label']['test'], "page" => $wpbi_url['slug']['queries'], "action" => $wpbi_settings['value']['test'], "parameter" => $wpbi_settings['parameter']['qy_id']), "drop" => array("label" => $wpbi_dialog['action']['label']['drop'], "page" => $wpbi_url['slug']['queries'], "action" => $wpbi_settings['value']['drop'], "parameter" => $wpbi_settings['parameter']['qy_id']));
function get_html_4_table($id) { global $wpdb, $qy_table_databases, $qy_table_queries, $wpbi_sql, $wpbi_settings, $wpbi_url, $wpbi_dialog, $lng, $language, $template_site; $template_site->set_filenames(array('css' => $wpbi_url['tpl']['root-path'] . $wpbi_url['tpl']['css'])); $table_id = $id; //id or key $search_by_key = false; if (!is_numeric($table_id)) { if (strlen($table_id) == 32 && strpos($table_id, ' ') === false) { $search_by_key = true; } else { return '<p>Could not create table. Wrong ID provided.</p>'; } } $test_output = ''; //Store the test output //Get table metadata $vo_table = new vo_table($table_id, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, $table_id, NULL); $dao_table = new dao_table($wpdb, $wpbi_sql['tname']['tables']); $vo_table = $search_by_key ? $dao_table->select_by_key($vo_table) : $dao_table->select($vo_table); $vo_table = $vo_table[0]; //Get cols metadata $selected_table = $vo_table->id; $vo_tb_cols = new vo_tb_cols(NULL, $selected_table, NULL, NULL, NULL, NULL, NULL, NULL, NULL); $dao_tb_cols = new dao_tb_cols($wpdb, $wpbi_sql['tname']['cols']); $vo_tb_cols = $dao_tb_cols->select($vo_tb_cols); //Get selected query $dao_query = new dao_query($wpdb, $wpbi_sql['tname']['queries']); $tgt_query = new vo_query($vo_table->query_id, NULL, NULL, NULL, NULL); $vo_query = $dao_query->select($tgt_query); $vo_query = $vo_query[0]; //Select associated db $dao_database = new dao_database($wpdb, $wpbi_sql['tname']['databases']); $tgt_database = new vo_database($vo_query->db_id, NULL, NULL, NULL, NULL); $vo_database = $dao_database->select($tgt_database); $vo_database = $vo_database[0]; //Create wpdb object and execute the query $my_test_db = new wpdb($vo_database->user, $vo_database->pass, $vo_database->name, $vo_database->host); $query = new query($vo_query->statement, $wpdb, $wpbi_sql['tname']['vars']); $total_rows = $my_test_db->get_results($query->count_qy_results(), 'ARRAY_N'); $total_rows = intval($total_rows[0][0]); if ($total_rows == 0) { $test_output = $test_output . $wpbi_dialog['msg']['query']['no-records']; } else { //Add page navigation if requested if ($vo_table->rows_per_pg > 0) { //Page navigation $pagination = new pagination(); $pagination->set_pagination_tpl_path($wpbi_url['tpl']); $pagination->set_pg_interval($vo_table->rows_per_pg); $pagination->set_pg_parameter($table_id . '_paged'); $pagination->set_current_page(isset($_GET[$pagination->pg_parameter]) ? abs((int) $_GET[$pagination->pg_parameter]) : 1); $pagination->set_rows($total_rows); //$pagination->set_css_class(basename($vo_table->style_id,'.css')); $pagination->set_css_style(basename($vo_table->style_id, '.css')); $pagination->set_pagination_stats($wpbi_dialog['table']['pagination']['stats']); $pagination->set_paginate_links(paginate_links(array('base' => esc_url(add_query_arg($pagination->pg_parameter, '%#%')), 'format' => '', 'prev_text' => __($wpbi_dialog['table']['pagination']['prev_text']), 'next_text' => __($wpbi_dialog['table']['pagination']['next_text']), 'total' => ceil($pagination->rows / $pagination->pg_interval), 'current' => $pagination->current_page))); $pagination->initialize(); $pagination_html = $pagination->get_html(); //END page navigation //Execute query limitng the resultset $my_test_rows = $my_test_db->get_results($query->limit_qy_to($pagination->item_start - 1, $pagination->pg_interval), 'ARRAY_N'); } else { $my_test_rows = $my_test_db->get_results($query->stmt, 'ARRAY_N'); } //get columns $my_test_cols = array(); $my_test_cols_visible = array(); $col_idx = 0; foreach ($vo_tb_cols as $vo_tb_col) { array_push($my_test_cols, $vo_tb_col->col_label); if ($vo_tb_col->is_visible) { array_push($my_test_cols_visible, $col_idx); } $col_idx++; } //Output table $table = new table(); $table->set_table_tpl_path($wpbi_url['tpl']); $table->set_table_pagination($pagination_html); $table->set_css_class(basename($vo_table->style_id, '.css')); $table->set_css_style(basename($vo_table->style_id, '.css')); $table->set_rows($my_test_rows); $table->set_cols($my_test_cols); $table->set_visible_cols($my_test_cols_visible); $table->set_title($vo_table->title); $table->has_header($vo_table->has_header); $table->has_footer($vo_table->has_footer); $table->set_can_download($vo_table->can_download); $table->encode_html(!$vo_table->encode_html); $test_output = $test_output . $table->get_html(); } //Prepare output $template_site->assign_vars(array('TPL_CSS' => $wpbi_url['styles']['url'] . "tables/" . $table->css_style . '.css')); ob_start(); $template_site->pparse('css'); $css_output = ob_get_contents(); ob_end_clean(); return $css_output . $test_output; }