PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.2.0
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.2.0
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.php +5 -95 3.10.103.2.0 View file →
@@ -140,12 +140,9 @@
140 140 *
141 141 * @access public
142 142 * @return string The serialized array of data.
143 143 */
144 - public function getData( $fetch_from_editable_table = false ) {
145 - if ( $fetch_from_editable_table ) {
146 - $this->_fetchDataFromEditableTable();
147 - }
144 + public function getData() {
148 145 return serialize( $this->_data );
149 146 }
150 147
151 148 /**
@@ -155,12 +152,9 @@
155 152 *
156 153 * @access public
157 154 * @return array
158 155 */
159 - public function getRawData( $fetch_from_editable_table = false ) {
160 - if ( $fetch_from_editable_table ) {
161 - $this->_fetchDataFromEditableTable();
162 - }
156 + public function getRawData() {
163 157 return $this->_data;
164 158 }
165 159
166 160 /**
@@ -217,14 +211,12 @@
217 211 continue;
218 212 }
219 213 switch ( $series['type'] ) {
220 214 case 'number':
221 - $data[ $i ] = preg_replace( '/[\x{200B}-\x{200D}\x{FEFF}]/u', '', $data[ $i ] );
222 215 $data[ $i ] = ( is_numeric( $data[ $i ] ) ) ? floatval( $data[ $i ] ) : ( is_numeric( str_replace( ',', '', $data[ $i ] ) ) ? floatval( str_replace( ',', '', $data[ $i ] ) ) : null );
223 216 break;
224 217 case 'boolean':
225 - $datum = trim( strval( $data[ $i ] ) );
226 - $data[ $i ] = in_array( $datum, array( 'true', 'yes', '1' ), true ) ? 'true' : 'false';
218 + $data[ $i ] = ! empty( $data[ $i ] ) ? filter_var( $data[ $i ], FILTER_VALIDATE_BOOLEAN ) : null;
227 219 break;
228 220 case 'timeofday':
229 221 $date = new DateTime( '1984-03-16T' . $data[ $i ] );
230 222 if ( $date ) {
@@ -243,10 +235,9 @@
243 235 $data[ $i ] = $value->format( 'Y-m-d H:i:s' );
244 236 }
245 237 break;
246 238 case 'string':
247 - // if a ' is provided, strip the backslash
248 - $data[ $i ] = stripslashes( $this->toUTF8( $data[ $i ] ) );
239 + $data[ $i ] = $this->toUTF8( $data[ $i ] );
249 240 break;
250 241 }
251 242 }
252 243
@@ -335,11 +326,10 @@
335 326 * @param string $type 'date', 'timeofday' or 'datetime'.
336 327 *
337 328 * @return string|null
338 329 */
339 - private static function determine_date_format( $value, $type ) {
330 + private static final function determine_date_format( $value, $type ) {
340 331 if ( version_compare( phpversion(), '5.3.0', '<' ) ) {
341 - do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'PHP version %s not supported', phpversion() ), 'error', __FILE__, __LINE__ );
342 332 return null;
343 333 }
344 334
345 335 $formats = array(
@@ -392,88 +382,8 @@
392 382 * @return string
393 383 */
394 384 public function get_error() {
395 385 return $this->_error;
396 - }
397 -
398 - /**
399 - * Fetches information from the editable table and parses it to build series and data arrays.
400 - *
401 - * @since ?
402 - *
403 - * @access public
404 - * @return boolean TRUE on success, otherwise FALSE.
405 - */
406 - public function fetchFromEditableTable() {
407 - if ( empty( $this->_args ) ) {
408 - return false;
409 - }
410 -
411 - $this->_fetchSeriesFromEditableTable();
412 - $this->_fetchDataFromEditableTable();
413 - return true;
414 - }
415 -
416 - /**
417 - * Fetches series information from the editable table. This is fetched only through the UI and not while refreshing the chart data.
418 - *
419 - * @since 1.0.0
420 - *
421 - * @access private
422 - */
423 - private function _fetchSeriesFromEditableTable() {
424 - $params = $this->_args;
425 - $headers = array_filter( $params['header'] );
426 - $types = array_filter( $params['type'] );
427 - $header_row = $type_row = array();
428 - if ( $headers ) {
429 - foreach ( $headers as $header ) {
430 - if ( ! empty( $types[ $header ] ) ) {
431 - $this->_series[] = array(
432 - 'label' => $header,
433 - 'type' => $types[ $header ],
434 - );
435 - }
436 - }
437 - }
438 -
439 - do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Series found for %s = %s', print_r( $this->_args, true ), print_r( $this->_series, true ) ), 'debug', __FILE__, __LINE__ );
440 -
441 - return true;
442 - }
443 -
444 -
445 - /**
446 - * Fetches data information from the editable table.
447 - *
448 - * @since 1.0.0
449 - *
450 - * @access private
451 - */
452 - private function _fetchDataFromEditableTable() {
453 - $headers = wp_list_pluck( $this->_series, 'label' );
454 - $this->fetch();
455 -
456 - $data = $this->_data;
457 - $this->_data = array();
458 -
459 - foreach ( $data as $line ) {
460 - $data_row = array();
461 - // we have to make sure we are fetching the data in the right order
462 - // in case the columns have been reordered
463 - foreach ( $headers as $header ) {
464 - $value = $line[ $header ];
465 - // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
466 - if ( in_array( $header, $headers ) ) {
467 - $data_row[] = $value;
468 - }
469 - }
470 - $this->_data[] = $this->_normalizeData( $data_row );
471 - }
472 -
473 - do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Data found for %s = %s', print_r( $this->_args, true ), print_r( $this->_data, true ) ), 'debug', __FILE__, __LINE__ );
474 -
475 - return true;
476 386 }
477 387
478 388
479 389 }