| @@ -52,9 +52,9 @@ | ||
| 52 | 52 | public function __construct( Visualizer_Plugin $plugin ) { |
| 53 | 53 | parent::__construct( $plugin ); |
| 54 | 54 | $this->_addAction( 'load-post.php', 'enqueueMediaScripts' ); |
| 55 | 55 | $this->_addAction( 'load-post-new.php', 'enqueueMediaScripts' ); |
| 56 | - $this->_addAction( 'admin_footer', 'renderTemplates' ); | |
| 56 | + $this->_addAction( 'admin_footer', 'renderTempaltes' ); | |
| 57 | 57 | $this->_addAction( 'admin_enqueue_scripts', 'enqueueLibraryScripts', null, 8 ); |
| 58 | 58 | $this->_addAction( 'admin_menu', 'registerAdminMenu' ); |
| 59 | 59 | $this->_addFilter( 'media_view_strings', 'setupMediaViewStrings' ); |
| 60 | 60 | $this->_addFilter( 'plugin_action_links', 'getPluginActionLinks', 10, 2 ); |
| @@ -212,14 +212,11 @@ | ||
| 212 | 212 | public function enqueueMediaScripts() { |
| 213 | 213 | global $typenow; |
| 214 | 214 | if ( post_type_supports( $typenow, 'editor' ) ) { |
| 215 | 215 | wp_enqueue_style( 'visualizer-media', VISUALIZER_ABSURL . 'css/media.css', array( 'media-views' ), Visualizer_Plugin::VERSION ); |
| 216 | - | |
| 217 | - // Load all the assets for the different libraries we support. | |
| 218 | - $deps = Visualizer_Render_Sidebar_Google::enqueue_assets( array( 'media-editor' ) ); | |
| 219 | - $deps += Visualizer_Render_Sidebar_Type_DataTable::enqueue_assets( array( 'media-editor' ) ); | |
| 220 | - | |
| 221 | - wp_enqueue_script( 'visualizer-media-model', VISUALIZER_ABSURL . 'js/media/model.js', $deps, Visualizer_Plugin::VERSION, true ); | |
| 216 | + wp_enqueue_script( 'visualizer-google-jsapi-new', '//www.gstatic.com/charts/loader.js', array( 'media-editor' ), null, true ); | |
| 217 | + wp_enqueue_script( 'visualizer-google-jsapi-old', '//www.google.com/jsapi', array( 'visualizer-google-jsapi-new' ), null, true ); | |
| 218 | + wp_enqueue_script( 'visualizer-media-model', VISUALIZER_ABSURL . 'js/media/model.js', array( 'visualizer-google-jsapi-old' ), Visualizer_Plugin::VERSION, true ); | |
| 222 | 219 | wp_enqueue_script( 'visualizer-media-collection', VISUALIZER_ABSURL . 'js/media/collection.js', array( 'visualizer-media-model' ), Visualizer_Plugin::VERSION, true ); |
| 223 | 220 | wp_enqueue_script( 'visualizer-media-controller', VISUALIZER_ABSURL . 'js/media/controller.js', array( 'visualizer-media-collection' ), Visualizer_Plugin::VERSION, true ); |
| 224 | 221 | wp_enqueue_script( 'visualizer-media-view', VISUALIZER_ABSURL . 'js/media/view.js', array( 'visualizer-media-controller' ), Visualizer_Plugin::VERSION, true ); |
| 225 | 222 | wp_localize_script( |
| @@ -280,9 +277,9 @@ | ||
| 280 | 277 | * @static |
| 281 | 278 | * @access private |
| 282 | 279 | * @return array The associated array of chart types with localized names. |
| 283 | 280 | */ |
| 284 | - public static function _getChartTypesLocalized( $enabledOnly = false, $get2Darray = false, $add_select = false, $where = null ) { | |
| 281 | + public static function _getChartTypesLocalized( $enabledOnly = false, $get2Darray = false, $add_select = false ) { | |
| 285 | 282 | $additional = array(); |
| 286 | 283 | if ( $add_select ) { |
| 287 | 284 | $additional['select'] = array( |
| 288 | 285 | 'name' => esc_html__( 'All', 'visualizer' ), |
| @@ -292,12 +289,8 @@ | ||
| 292 | 289 | |
| 293 | 290 | $types = array_merge( |
| 294 | 291 | $additional, |
| 295 | 292 | array( |
| 296 | - 'dataTable' => array( | |
| 297 | - 'name' => esc_html__( 'Table (New)', 'visualizer' ), | |
| 298 | - 'enabled' => true, | |
| 299 | - ), | |
| 300 | 293 | 'pie' => array( |
| 301 | 294 | 'name' => esc_html__( 'Pie', 'visualizer' ), |
| 302 | 295 | 'enabled' => true, |
| 303 | 296 | ), |
| @@ -334,9 +327,9 @@ | ||
| 334 | 327 | 'enabled' => true, |
| 335 | 328 | ), |
| 336 | 329 | // pro types |
| 337 | 330 | 'table' => array( |
| 338 | - 'name' => esc_html__( 'Table (Deprecated)', 'visualizer' ), | |
| 331 | + 'name' => esc_html__( 'Table', 'visualizer' ), | |
| 339 | 332 | 'enabled' => false, |
| 340 | 333 | ), |
| 341 | 334 | 'timeline' => array( |
| 342 | 335 | 'name' => esc_html__( 'Timeline', 'visualizer' ), |
| @@ -374,69 +367,8 @@ | ||
| 374 | 367 | } |
| 375 | 368 | $types = $doubleD; |
| 376 | 369 | } |
| 377 | 370 | |
| 378 | - return self::handleDeprecatedCharts( $types, $enabledOnly, $get2Darray, $where ); | |
| 379 | - } | |
| 380 | - | |
| 381 | - /** | |
| 382 | - * Handle (soon-to-be) deprecated charts. | |
| 383 | - */ | |
| 384 | - private static function handleDeprecatedCharts( $types, $enabledOnly, $get2Darray, $where ) { | |
| 385 | - $deprecated = array(); | |
| 386 | - | |
| 387 | - switch ( $where ) { | |
| 388 | - case 'library': | |
| 389 | - // if the user has a Google Table chart, show it as deprecated otherwise remove the option from the library. | |
| 390 | - if ( ! self::hasChartType( 'table' ) ) { | |
| 391 | - $deprecated[] = 'table'; | |
| 392 | - if ( $get2Darray ) { | |
| 393 | - $types['dataTable'] = esc_html__( 'Table', 'visualizer' ); | |
| 394 | - } else { | |
| 395 | - $types['dataTable']['name'] = esc_html__( 'Table', 'visualizer' ); | |
| 396 | - } | |
| 397 | - } | |
| 398 | - | |
| 399 | - // if a user has a Gauge/Candlestick chart, then let them keep using it. | |
| 400 | - if ( ! VISUALIZER_PRO ) { | |
| 401 | - if ( ! self::hasChartType( 'gauge' ) ) { | |
| 402 | - $deprecated[] = 'gauge'; | |
| 403 | - } | |
| 404 | - if ( ! self::hasChartType( 'candlestick' ) ) { | |
| 405 | - $deprecated[] = 'candlestick'; | |
| 406 | - } | |
| 407 | - } | |
| 408 | - break; | |
| 409 | - default: | |
| 410 | - // remove the option to create a Google Table chart. | |
| 411 | - $deprecated[] = 'table'; | |
| 412 | - | |
| 413 | - // rename the new table chart type. | |
| 414 | - if ( self::hasChartType( 'table' ) ) { | |
| 415 | - if ( $get2Darray ) { | |
| 416 | - $types['dataTable'] = esc_html__( 'Table', 'visualizer' ); | |
| 417 | - } else { | |
| 418 | - $types['dataTable']['name'] = esc_html__( 'Table', 'visualizer' ); | |
| 419 | - } | |
| 420 | - } | |
| 421 | - | |
| 422 | - // if a user has a Gauge/Candlestick chart, then let them keep using it. | |
| 423 | - if ( ! VISUALIZER_PRO ) { | |
| 424 | - if ( ! self::hasChartType( 'gauge' ) ) { | |
| 425 | - $deprecated[] = 'gauge'; | |
| 426 | - } | |
| 427 | - if ( ! self::hasChartType( 'candlestick' ) ) { | |
| 428 | - $deprecated[] = 'candlestick'; | |
| 429 | - } | |
| 430 | - } | |
| 431 | - } | |
| 432 | - | |
| 433 | - if ( $deprecated ) { | |
| 434 | - foreach ( $deprecated as $type ) { | |
| 435 | - unset( $types[ $type ] ); | |
| 436 | - } | |
| 437 | - } | |
| 438 | - | |
| 439 | 371 | return $types; |
| 440 | 372 | } |
| 441 | 373 | |
| 442 | 374 | /** |
| @@ -446,9 +378,9 @@ | ||
| 446 | 378 | * @global string $pagenow The name of the current page. |
| 447 | 379 | * |
| 448 | 380 | * @access public |
| 449 | 381 | */ |
| 450 | - public function renderTemplates() { | |
| 382 | + public function renderTempaltes() { | |
| 451 | 383 | global $pagenow; |
| 452 | 384 | if ( 'post.php' != $pagenow && 'post-new.php' != $pagenow ) { |
| 453 | 385 | return; |
| 454 | 386 | } |
| @@ -482,26 +414,22 @@ | ||
| 482 | 414 | ), |
| 483 | 415 | Visualizer_Plugin::VERSION, |
| 484 | 416 | true |
| 485 | 417 | ); |
| 486 | - | |
| 418 | + wp_enqueue_script( 'google-jsapi-new', '//www.gstatic.com/charts/loader.js', array(), null, true ); | |
| 419 | + wp_enqueue_script( 'google-jsapi-old', '//www.google.com/jsapi', array( 'google-jsapi-new' ), null, true ); | |
| 487 | 420 | wp_enqueue_script( 'visualizer-customization', $this->get_user_customization_js(), array(), null, true ); |
| 488 | - | |
| 489 | - $query = $this->getQuery(); | |
| 490 | - while ( $query->have_posts() ) { | |
| 491 | - $chart = $query->next_post(); | |
| 492 | - $library = $this->load_chart_type( $chart->ID ); | |
| 493 | - if ( is_null( $library ) ) { | |
| 494 | - continue; | |
| 495 | - } | |
| 496 | - wp_enqueue_script( | |
| 497 | - "visualizer-render-$library", | |
| 498 | - VISUALIZER_ABSURL . 'js/render-facade.js', | |
| 499 | - apply_filters( 'visualizer_assets_render', array( 'visualizer-library', 'visualizer-customization' ), true ), | |
| 500 | - Visualizer_Plugin::VERSION, | |
| 501 | - true | |
| 502 | - ); | |
| 503 | - } | |
| 421 | + wp_enqueue_script( | |
| 422 | + 'visualizer-render', | |
| 423 | + VISUALIZER_ABSURL . 'js/render.js', | |
| 424 | + array( | |
| 425 | + 'google-jsapi-old', | |
| 426 | + 'visualizer-library', | |
| 427 | + 'visualizer-customization', | |
| 428 | + ), | |
| 429 | + Visualizer_Plugin::VERSION, | |
| 430 | + true | |
| 431 | + ); | |
| 504 | 432 | } |
| 505 | 433 | } |
| 506 | 434 | |
| 507 | 435 | /** |
| @@ -534,16 +462,15 @@ | ||
| 534 | 462 | $this->_libraryPage = add_submenu_page( 'upload.php', $title, $title, 'edit_posts', Visualizer_Plugin::NAME, $callback ); |
| 535 | 463 | } |
| 536 | 464 | |
| 537 | 465 | /** |
| 538 | - * Get the instance of WP_Query that fetches the charts as per the given criteria. | |
| 466 | + * Renders visualizer library page. | |
| 467 | + * | |
| 468 | + * @since 1.0.0 | |
| 469 | + * | |
| 470 | + * @access public | |
| 539 | 471 | */ |
| 540 | - private function getQuery() { | |
| 541 | - static $q; | |
| 542 | - if ( ! is_null( $q ) ) { | |
| 543 | - return $q; | |
| 544 | - } | |
| 545 | - | |
| 472 | + public function renderLibraryPage() { | |
| 546 | 473 | // get current page |
| 547 | 474 | $page = filter_input( |
| 548 | 475 | INPUT_GET, |
| 549 | 476 | 'vpage', |
| @@ -585,81 +512,31 @@ | ||
| 585 | 512 | $meta = isset( $query_args['meta_query'] ) ? $query_args['meta_query'] : array(); |
| 586 | 513 | $meta[] = $query; |
| 587 | 514 | $query_args['meta_query'] = $meta; |
| 588 | 515 | } |
| 589 | - $q = new WP_Query( $query_args ); | |
| 590 | - return $q; | |
| 591 | - } | |
| 592 | - | |
| 593 | - /** | |
| 594 | - * Renders visualizer library page. | |
| 595 | - * | |
| 596 | - * @since 1.0.0 | |
| 597 | - * | |
| 598 | - * @access public | |
| 599 | - */ | |
| 600 | - public function renderLibraryPage() { | |
| 516 | + // Added by Ash/Upwork | |
| 517 | + // fetch charts | |
| 601 | 518 | $charts = array(); |
| 602 | - $query = $this->getQuery(); | |
| 603 | - | |
| 604 | - // get current page | |
| 605 | - $page = filter_input( | |
| 606 | - INPUT_GET, | |
| 607 | - 'vpage', | |
| 608 | - FILTER_VALIDATE_INT, | |
| 609 | - array( | |
| 610 | - 'options' => array( | |
| 611 | - 'min_range' => 1, | |
| 612 | - 'default' => 1, | |
| 613 | - ), | |
| 614 | - ) | |
| 615 | - ); | |
| 616 | - // add chart type filter to the query arguments | |
| 617 | - $filter = filter_input( INPUT_GET, 'type' ); | |
| 618 | - if ( ! ( $filter && in_array( $filter, Visualizer_Plugin::getChartTypes() ) ) ) { | |
| 619 | - $filter = 'all'; | |
| 620 | - } | |
| 621 | - | |
| 622 | - $css = ''; | |
| 519 | + $query = new WP_Query( $query_args ); | |
| 623 | 520 | while ( $query->have_posts() ) { |
| 624 | 521 | $chart = $query->next_post(); |
| 625 | 522 | |
| 626 | 523 | // if the user has updated a chart and instead of saving it, has closed the modal. If the user refreshes, they should get the original chart. |
| 627 | 524 | $chart = $this->handleExistingRevisions( $chart->ID, $chart ); |
| 628 | - // refresh a "live" db query chart. | |
| 629 | - $chart = apply_filters( 'visualizer_schedule_refresh_chart', $chart, $chart->ID, false ); | |
| 630 | 525 | |
| 631 | - $type = get_post_meta( $chart->ID, Visualizer_Plugin::CF_CHART_TYPE, true ); | |
| 632 | - | |
| 633 | 526 | // fetch and update settings |
| 634 | 527 | $settings = get_post_meta( $chart->ID, Visualizer_Plugin::CF_SETTINGS, true ); |
| 635 | - | |
| 636 | - $settings = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_SETTINGS, $settings, $chart->ID, $type ); | |
| 637 | - if ( ! empty( $atts['settings'] ) ) { | |
| 638 | - $settings = apply_filters( $atts['settings'], $settings, $chart->ID, $type ); | |
| 639 | - } | |
| 640 | - | |
| 641 | 528 | unset( $settings['height'], $settings['width'] ); |
| 529 | + $type = get_post_meta( $chart->ID, Visualizer_Plugin::CF_CHART_TYPE, true ); | |
| 642 | 530 | $series = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_SERIES, get_post_meta( $chart->ID, Visualizer_Plugin::CF_SERIES, true ), $chart->ID, $type ); |
| 643 | 531 | $data = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_DATA, unserialize( html_entity_decode( $chart->post_content ) ), $chart->ID, $type ); |
| 644 | - | |
| 645 | - $library = $this->load_chart_type( $chart->ID ); | |
| 646 | - | |
| 647 | - $id = 'visualizer-' . $chart->ID; | |
| 648 | - $arguments = $this->get_inline_custom_css( $id, $settings ); | |
| 649 | - if ( ! empty( $arguments ) ) { | |
| 650 | - $css .= $arguments[0]; | |
| 651 | - $settings = $arguments[1]; | |
| 652 | - } | |
| 653 | - | |
| 654 | 532 | // add chart to the array |
| 655 | - $charts[ $id ] = array( | |
| 533 | + $charts[ 'visualizer-' . $chart->ID ] = array( | |
| 656 | 534 | 'id' => $chart->ID, |
| 657 | 535 | 'type' => $type, |
| 658 | 536 | 'series' => $series, |
| 659 | 537 | 'settings' => $settings, |
| 660 | 538 | 'data' => $data, |
| 661 | - 'library' => $library, | |
| 662 | 539 | ); |
| 663 | 540 | } |
| 664 | 541 | // enqueue charts array |
| 665 | 542 | $ajaxurl = admin_url( 'admin-ajax.php' ); |
| @@ -687,9 +564,8 @@ | ||
| 687 | 564 | ), |
| 688 | 565 | $ajaxurl |
| 689 | 566 | ), |
| 690 | 567 | ), |
| 691 | - 'page_type' => 'library', | |
| 692 | 568 | ) |
| 693 | 569 | ); |
| 694 | 570 | // render library page |
| 695 | 571 | $render = new Visualizer_Render_Library(); |
| @@ -694,10 +570,9 @@ | ||
| 694 | 570 | // render library page |
| 695 | 571 | $render = new Visualizer_Render_Library(); |
| 696 | 572 | $render->charts = $charts; |
| 697 | 573 | $render->type = $filter; |
| 698 | - $render->types = self::_getChartTypesLocalized( false, false, false, true ); | |
| 699 | - $render->custom_css = $css; | |
| 574 | + $render->types = self::_getChartTypesLocalized(); | |
| 700 | 575 | $render->pagination = paginate_links( |
| 701 | 576 | array( |
| 702 | 577 | 'base' => add_query_arg( 'vpage', '%#%' ), |
| 703 | 578 | 'format' => '', |