Example #1
0
 //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']));
 $global_actions = array("drop" => array("label" => $wpbi_dialog['button']['label']['drop'], "value" => $wpbi_settings['value']['drop']));
 $table_form = new table_form();
 $table_form->set_css_class('widefat post fixed');
 $table_form->set_rows($qy_queries_rows);
 $table_form->set_cols($column_headers);
 $table_form->has_header(true);
 $table_form->has_footer(true);
Example #2
0
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;
}