PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.1.0
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.1.0
4.0.8 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 All 149 releases
← All changes | classes/Visualizer/Module.php +98 -0 3.0.123.1.0 View file →
@@ -444,5 +444,103 @@
444 444
445 445 return $specific;
446 446 }
447 447
448 + /**
449 + * Load the class for the given chart's chart type so that its assets can be loaded.
450 + */
451 + protected function load_chart_type( $chart_id ) {
452 + $type = get_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_TYPE, true );
453 + $name = 'Visualizer_Render_Sidebar_Type_' . ucwords( $type );
454 + $class = null;
455 + if ( class_exists( $name ) || true === apply_filters( 'visualizer_load_chart', false, $name ) ) {
456 + $class = new $name;
457 + }
458 +
459 + if ( is_null( $class ) && VISUALIZER_PRO ) {
460 + // lets see if this type exists in pro. New Lite(3.1.0+) & old Pro(1.8.0-).
461 + $class = apply_filters( 'visualizer_pro_chart_type_sidebar', null, array( 'type' => $type, 'settings' => get_post_meta( $chart_id, Visualizer_Plugin::CF_SETTINGS, true ) ) );
462 + }
463 +
464 + return is_null( $class ) ? null : $class->getLibrary();
465 + }
466 +
467 + /**
468 + * Generates the inline CSS to apply to the chart and adds these classes to the settings.
469 + *
470 + * @access public
471 + * @param int $id The id of the chart.
472 + * @param array $settings The settings of the chart.
473 + */
474 + protected function get_inline_custom_css( $id, $settings ) {
475 + $css = '';
476 +
477 + $arguments = array( '', $settings );
478 + if ( ! isset( $settings['customcss'] ) ) {
479 + return $arguments;
480 + }
481 +
482 + $classes = array();
483 + $css = '<style type="text/css" name="visualizer-custom-css" id="customcss-' . $id . '">';
484 + foreach ( $settings['customcss'] as $name => $element ) {
485 + $attributes = array();
486 + foreach ( $element as $property => $value ) {
487 + $attributes[] = $this->handle_css_property( $property, $value );
488 + }
489 + $class_name = $id . $name;
490 + $properties = implode( '; ', array_filter( $attributes ) );
491 + if ( ! empty( $properties ) ) {
492 + $css .= '.' . $class_name . ' {' . $properties . ' !important;}';
493 + $classes[ $name ] = $class_name;
494 + }
495 + }
496 + $css .= '</style>';
497 +
498 + $settings['cssClassNames'] = $classes;
499 +
500 + $arguments = array( $css, $settings );
501 + apply_filters_ref_array( 'visualizer_inline_css', array( &$arguments ) );
502 +
503 + return $arguments;
504 + }
505 +
506 + /**
507 + * Handles CSS properties that might need special syntax.
508 + *
509 + * @access private
510 + * @param string $property The name of the css property.
511 + * @param string $value The value of the css property.
512 + */
513 + private function handle_css_property( $property, $value ) {
514 + if ( empty( $property ) || empty( $value ) ) {
515 + return '';
516 + }
517 +
518 + switch ( $property ) {
519 + case 'transform':
520 + $value = 'rotate(' . $value . 'deg)';
521 + break;
522 + }
523 + return $property . ': ' . $value;
524 + }
525 +
526 + /**
527 + * Determines if charts have been created of the particular chart type.
528 + */
529 + protected static function hasChartType( $type ) {
530 + $args = array(
531 + 'post_type' => Visualizer_Plugin::CPT_VISUALIZER,
532 + 'fields' => 'ids',
533 + 'post_status' => 'publish',
534 + 'meta_query' => array(
535 + array(
536 + 'key' => Visualizer_Plugin::CF_CHART_TYPE,
537 + 'value' => $type,
538 + ),
539 + ),
540 + );
541 +
542 + $q = new WP_Query( $args );
543 + return $q->found_posts > 0;
544 + }
545 +
448 546 }