Пример #1
0
/**** Edit table: save modifications ***/
if ($_POST[$wpbi_settings['parameter']['action']] == $wpbi_settings['value']['edit'] && isset($_POST[$wpbi_settings['parameter']['tb-id']])) {
    //Insert table metadata
    $vo_new_table = new vo_table(NULL, $_POST[$wpbi_settings['parameter']['qy_id']], $_POST[$wpbi_settings['parameter']['tb-name']], $_POST[$wpbi_settings['parameter']['tb-title']], is_numeric($_POST[$wpbi_settings['parameter']['tb-row-pg']]) ? abs(intval($_POST[$wpbi_settings['parameter']['tb-row-pg']])) : $wpbi_settings['parameter']['page-interval'], $_POST[$wpbi_settings['parameter']['tb-style']], isset($_POST[$wpbi_settings['parameter']['tb-header']]) ? 1 : 0, isset($_POST[$wpbi_settings['parameter']['tb-footer']]) ? 1 : 0, isset($_POST[$wpbi_settings['parameter']['tb-download']]) ? 1 : 0, NULL, isset($_POST[$wpbi_settings['parameter']['tb-html-values']]) ? 1 : 0);
    $vo_old_table = new vo_table($_POST[$wpbi_settings['parameter']['tb-id']], NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
    $dao_table = new dao_table($wpdb, $wpbi_sql['tname']['tables']);
    $dao_table->edit($vo_old_table, $vo_new_table);
    //Drop cols metadata
    $selected_tables = $_POST[$wpbi_settings['parameter']['tb-id']];
    $vo_tb_cols = new vo_tb_cols(NULL, $selected_tables, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
    $dao_tb_cols = new dao_tb_cols($wpdb, $wpbi_sql['tname']['cols']);
    $dao_tb_cols->del($vo_tb_cols);
    //insert columns metadata
    for ($col_idx = 0; $col_idx < sizeof($_POST[$wpbi_settings['parameter']['tb-tx-column-tf']]); $col_idx++) {
        $vo_tb_cols = new vo_tb_cols(NULL, $selected_tables, $_POST[$wpbi_settings['parameter']['tb-tx-column-tf']][$col_idx], in_array($col_idx, $_POST[$wpbi_settings['parameter']['tb-cb-column-tf']]) ? 1 : 0);
        $dao_tb_cols = new dao_tb_cols($wpdb, $wpbi_sql['tname']['cols']);
        $dao_tb_cols->add($vo_tb_cols);
    }
}
?>

<?php 
/***********************/
/***     DEFAULT     ***/
/***********************/
/**** Build form to create table and display the created tables ***/
if ($_GET[$wpbi_settings['parameter']['action']] != $wpbi_settings['value']['test'] && $_GET[$wpbi_settings['parameter']['action']] != $wpbi_settings['value']['edit'] && $_POST[$wpbi_settings['parameter']['action']] != $wpbi_settings['value']['edit-test'] && $_GET[$wpbi_settings['parameter']['action']] != $wpbi_settings['value']['edit-test']) {
    //Queries select options
    $dao_query = new dao_query($wpdb, $wpbi_sql['tname']['queries']);
    $vo_query = $dao_query->select(NULL);
    if (sizeof($vo_query) == 0) {
Пример #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;
}