PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.3.2
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.3.2
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 3.10.4 All 148 releases
← All changes | classes/Visualizer/Source/Query.php +32 -76 3.10.113.3.2 View file →
@@ -35,35 +35,15 @@
35 35 */
36 36 protected $_query;
37 37
38 38 /**
39 - * The chart id.
40 - *
41 - * @access protected
42 - * @var int
43 - */
44 - protected $_chart_id;
45 -
46 - /**
47 - * Any additional parameters (e.g. for connecting to a remote db).
48 - *
49 - * @access protected
50 - * @var array
51 - */
52 - protected $_params;
53 -
54 - /**
55 39 * Constructor.
56 40 *
57 41 * @access public
58 42 * @param string $query The query.
59 - * @param int $chart_id The chart id.
60 - * @param array $params Any additional parameters (e.g. for connecting to a remote db).
61 43 */
62 - public function __construct( $query = null, $chart_id = null, $params = null ) {
44 + public function __construct( $query = null ) {
63 45 $this->_query = $query;
64 - $this->_chart_id = $chart_id;
65 - $this->_params = $params;
66 46 }
67 47
68 48 /**
69 49 * Fetches information from source, parses it and builds series and data arrays.
@@ -86,75 +66,50 @@
86 66 }
87 67
88 68 // impose a limit if no limit clause is provided.
89 69 if ( strpos( strtolower( $this->_query ), ' limit ' ) === false ) {
90 - $this->_query .= ' LIMIT ' . apply_filters( 'visualizer_sql_query_limit', 1000, $this->_chart_id );
70 + $this->_query .= ' LIMIT ' . apply_filters( 'visualizer_sql_query_limit', 1000 );
91 71 }
92 72
93 - $this->_query = apply_filters( 'visualizer_db_query', $this->_query, $this->_chart_id, $this->_params );
73 + global $wpdb;
74 + $wpdb->hide_errors();
75 + // @codingStandardsIgnoreStart
76 + $rows = $wpdb->get_results( $this->_query, $results_as_numeric_array ? ARRAY_N : ARRAY_A );
77 + do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Firing query %s to get results %s with error %s', $this->_query, print_r( $rows, true ), print_r( $wpdb->last_error, true ) ), 'debug', __FILE__, __LINE__ );
78 + // @codingStandardsIgnoreEnd
79 + $wpdb->show_errors();
94 80
95 - $results = array();
96 - $headers = array();
97 -
98 - // short circuit results for remote dbs.
99 - if ( false !== ( $remote_results = apply_filters( 'visualizer_db_query_execute', false, $this->_query, $as_html, $results_as_numeric_array, $raw_results, $this->_chart_id, $this->_params ) ) ) {
100 - $error = $remote_results['error'];
101 - if ( empty( $error ) ) {
102 - $results = $remote_results['results'];
103 - $headers = $remote_results['headers'];
104 - }
105 -
106 - $this->_error = $error;
107 -
108 - if ( $raw_results ) {
109 - return $results;
110 - }
81 + if ( $raw_results ) {
82 + return $rows;
111 83 }
112 84
113 - if ( ! ( $results && $headers ) ) {
114 - global $wpdb;
115 - $wpdb->hide_errors();
116 - // @codingStandardsIgnoreStart
117 - $rows = $wpdb->get_results( $this->_query, $results_as_numeric_array ? ARRAY_N : ARRAY_A );
118 - // @codingStandardsIgnoreEnd
119 - $wpdb->show_errors();
120 -
121 - if ( $raw_results ) {
122 - return $rows;
123 - }
124 -
85 + if ( $rows ) {
86 + $results = array();
87 + $headers = array();
125 88 if ( $rows ) {
126 - $results = array();
127 - $headers = array();
128 - if ( $rows ) {
129 - $row_num = 0;
130 - foreach ( $rows as $row ) {
131 - $result = array();
132 - $col_num = 0;
133 - foreach ( $row as $k => $v ) {
134 - $result[] = $v;
135 - if ( 0 === $row_num ) {
136 - $headers[] = array( 'type' => $this->get_col_type( $col_num++ ), 'label' => $k );
137 - }
89 + $row_num = 0;
90 + foreach ( $rows as $row ) {
91 + $result = array();
92 + $col_num = 0;
93 + foreach ( $row as $k => $v ) {
94 + $result[] = $v;
95 + if ( 0 === $row_num ) {
96 + $headers[] = array( 'type' => $this->get_col_type( $col_num++ ), 'label' => $k );
138 97 }
139 - $results[] = $result;
140 - $row_num++;
141 98 }
99 + $results[] = $result;
100 + $row_num++;
142 101 }
102 + }
143 103
144 - $this->_error = $wpdb->last_error;
104 + if ( $as_html ) {
105 + return $this->html( $headers, $results );
145 106 }
107 + return $this->object( $headers, $results );
146 108 }
147 - // Query log.
148 - do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Firing query %s to get results %s with error %s', $this->_query, print_r( $rows, true ), print_r( $wpdb->last_error, true ) ), 'debug', __FILE__, __LINE__ );
149 109
150 - if ( $as_html ) {
151 - $results = $this->html( $headers, $results );
152 - } else {
153 - $results = $this->object( $headers, $results );
154 - }
155 -
156 - return apply_filters( 'visualizer_db_query_results', $results, $headers, $as_html, $results_as_numeric_array, $raw_results, $this->_query, $this->_chart_id, $this->_params );
110 + $this->_error = $wpdb->last_error;
111 + return null;
157 112 }
158 113
159 114 /**
160 115 * Get the data type of the column.
@@ -216,9 +171,10 @@
216 171 foreach ( $results as $row ) {
217 172 $data[] = $this->_normalizeData( $row );
218 173 }
219 174 $this->_data = $data;
220 - return $this->_data;
175 +
176 + return true;
221 177 }
222 178
223 179 /**
224 180 * Returns the final query.