Version Description
Download this release
Release Info
Developer | themeisle |
Plugin | WordPress Charts and Graphs Lite |
Version | 3.7.7 |
Comparing to | |
See all releases |
Code changes from version 3.7.6 to 3.7.7
- CHANGELOG.md +4 -0
- classes/Visualizer/Module/Admin.php +23 -19
- classes/Visualizer/Module/Chart.php +11 -9
- classes/Visualizer/Module/Setup.php +1 -1
- classes/Visualizer/Plugin.php +1 -1
- classes/Visualizer/Render/Layout.php +53 -41
- classes/Visualizer/Render/Library.php +28 -22
- classes/Visualizer/Render/Page/Data.php +1 -1
- classes/Visualizer/Render/Page/Settings.php +2 -2
- css/media.css +1 -1
- index.php +1 -1
- readme.txt +7 -0
- vendor/autoload.php +1 -1
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +5 -5
- vendor/composer/installed.php +6 -6
CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
##### [Version 3.7.6](https://github.com/Codeinwp/visualizer/compare/v3.7.5...v3.7.6) (2022-05-26)
|
2 |
|
3 |
- Fix PHP 8.0 or above compatibility issue
|
1 |
+
##### [Version 3.7.7](https://github.com/Codeinwp/visualizer/compare/v3.7.6...v3.7.7) (2022-05-31)
|
2 |
+
|
3 |
+
* Harden security by enforcing unescaped urls.
|
4 |
+
|
5 |
##### [Version 3.7.6](https://github.com/Codeinwp/visualizer/compare/v3.7.5...v3.7.6) (2022-05-26)
|
6 |
|
7 |
- Fix PHP 8.0 or above compatibility issue
|
classes/Visualizer/Module/Admin.php
CHANGED
@@ -365,7 +365,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
365 |
'types' => array_keys( $chart_types ),
|
366 |
),
|
367 |
'nonce' => wp_create_nonce(),
|
368 |
-
'buildurl' => add_query_arg( 'action', Visualizer_Plugin::ACTION_CREATE_CHART, admin_url( 'admin-ajax.php' ) ),
|
369 |
);
|
370 |
|
371 |
return $strings;
|
@@ -988,24 +988,28 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
988 |
'map_api_key' => get_option( 'visualizer-map-api-key' ),
|
989 |
'charts' => $charts,
|
990 |
'urls' => array(
|
991 |
-
'base' => add_query_arg( array( 'vpage' => false, 'vaction' => false ) ),
|
992 |
-
'create' =>
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
|
|
|
|
1001 |
),
|
1002 |
-
'edit' =>
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
|
|
|
|
1009 |
),
|
1010 |
),
|
1011 |
'page_type' => 'library',
|
@@ -1024,7 +1028,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
1024 |
$render->custom_css = $css;
|
1025 |
$render->pagination = paginate_links(
|
1026 |
array(
|
1027 |
-
'base' => add_query_arg( array( 'vpage' => '%#%', 'vaction' => false ) ),
|
1028 |
'format' => '',
|
1029 |
'current' => $page,
|
1030 |
'total' => $query->max_num_pages,
|
365 |
'types' => array_keys( $chart_types ),
|
366 |
),
|
367 |
'nonce' => wp_create_nonce(),
|
368 |
+
'buildurl' => esc_url( add_query_arg( 'action', Visualizer_Plugin::ACTION_CREATE_CHART, admin_url( 'admin-ajax.php' ) ) ),
|
369 |
);
|
370 |
|
371 |
return $strings;
|
988 |
'map_api_key' => get_option( 'visualizer-map-api-key' ),
|
989 |
'charts' => $charts,
|
990 |
'urls' => array(
|
991 |
+
'base' => esc_url( add_query_arg( array( 'vpage' => false, 'vaction' => false ) ) ),
|
992 |
+
'create' => esc_url(
|
993 |
+
add_query_arg(
|
994 |
+
array(
|
995 |
+
'action' => Visualizer_Plugin::ACTION_CREATE_CHART,
|
996 |
+
'library' => 'yes',
|
997 |
+
'type' => isset( $_GET['type'] ) ? $_GET['type'] : '',
|
998 |
+
'chart-library' => isset( $_GET['chart-library'] ) ? $_GET['chart-library'] : '',
|
999 |
+
'vaction' => false,
|
1000 |
+
),
|
1001 |
+
$ajaxurl
|
1002 |
+
)
|
1003 |
),
|
1004 |
+
'edit' => esc_url(
|
1005 |
+
add_query_arg(
|
1006 |
+
array(
|
1007 |
+
'action' => Visualizer_Plugin::ACTION_EDIT_CHART,
|
1008 |
+
'library' => 'yes',
|
1009 |
+
'vaction' => false,
|
1010 |
+
),
|
1011 |
+
$ajaxurl
|
1012 |
+
)
|
1013 |
),
|
1014 |
),
|
1015 |
'page_type' => 'library',
|
1028 |
$render->custom_css = $css;
|
1029 |
$render->pagination = paginate_links(
|
1030 |
array(
|
1031 |
+
'base' => esc_url( add_query_arg( array( 'vpage' => '%#%', 'vaction' => false ) ) ),
|
1032 |
'format' => '',
|
1033 |
'current' => $page,
|
1034 |
'total' => $query->max_num_pages,
|
classes/Visualizer/Module/Chart.php
CHANGED
@@ -526,7 +526,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
526 |
);
|
527 |
do_action( 'visualizer_pro_new_chart_defaults', $chart_id );
|
528 |
}
|
529 |
-
wp_redirect( add_query_arg( 'chart', (int) $chart_id ) );
|
530 |
|
531 |
if ( defined( 'WP_TESTS_DOMAIN' ) ) {
|
532 |
wp_die();
|
@@ -891,7 +891,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
891 |
|
892 |
// redirect to next tab
|
893 |
// changed by Ash/Upwork
|
894 |
-
wp_redirect( add_query_arg( 'tab', 'settings' ) );
|
895 |
|
896 |
return;
|
897 |
}
|
@@ -1226,13 +1226,15 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
1226 |
add_post_meta( $new_chart_id, $key, maybe_unserialize( $value[0] ) );
|
1227 |
}
|
1228 |
}
|
1229 |
-
$redirect =
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
|
|
|
|
1236 |
);
|
1237 |
}
|
1238 |
}
|
526 |
);
|
527 |
do_action( 'visualizer_pro_new_chart_defaults', $chart_id );
|
528 |
}
|
529 |
+
wp_redirect( esc_url_raw( add_query_arg( 'chart', (int) $chart_id ) ) );
|
530 |
|
531 |
if ( defined( 'WP_TESTS_DOMAIN' ) ) {
|
532 |
wp_die();
|
891 |
|
892 |
// redirect to next tab
|
893 |
// changed by Ash/Upwork
|
894 |
+
wp_redirect( esc_url_raw( add_query_arg( 'tab', 'settings' ) ) );
|
895 |
|
896 |
return;
|
897 |
}
|
1226 |
add_post_meta( $new_chart_id, $key, maybe_unserialize( $value[0] ) );
|
1227 |
}
|
1228 |
}
|
1229 |
+
$redirect = esc_url(
|
1230 |
+
add_query_arg(
|
1231 |
+
array(
|
1232 |
+
'page' => 'visualizer',
|
1233 |
+
'type' => filter_input( INPUT_GET, 'type' ),
|
1234 |
+
'vaction' => false,
|
1235 |
+
),
|
1236 |
+
admin_url( 'admin.php' )
|
1237 |
+
)
|
1238 |
);
|
1239 |
}
|
1240 |
}
|
classes/Visualizer/Module/Setup.php
CHANGED
@@ -251,7 +251,7 @@ class Visualizer_Module_Setup extends Visualizer_Module {
|
|
251 |
delete_option( 'visualizer-activated' );
|
252 |
if ( ! headers_sent() ) {
|
253 |
$page_name = Visualizer_Module::numberOfCharts() > 0 ? Visualizer_Plugin::NAME : 'viz-support';
|
254 |
-
wp_redirect( add_query_arg( 'page', $page_name, admin_url( 'admin.php' ) ) );
|
255 |
exit();
|
256 |
}
|
257 |
}
|
251 |
delete_option( 'visualizer-activated' );
|
252 |
if ( ! headers_sent() ) {
|
253 |
$page_name = Visualizer_Module::numberOfCharts() > 0 ? Visualizer_Plugin::NAME : 'viz-support';
|
254 |
+
wp_redirect( esc_url_raw( add_query_arg( 'page', $page_name, admin_url( 'admin.php' ) ) ) );
|
255 |
exit();
|
256 |
}
|
257 |
}
|
classes/Visualizer/Plugin.php
CHANGED
@@ -28,7 +28,7 @@
|
|
28 |
class Visualizer_Plugin {
|
29 |
|
30 |
const NAME = 'visualizer';
|
31 |
-
const VERSION = '3.7.
|
32 |
|
33 |
// custom post types
|
34 |
const CPT_VISUALIZER = 'visualizer';
|
28 |
class Visualizer_Plugin {
|
29 |
|
30 |
const NAME = 'visualizer';
|
31 |
+
const VERSION = '3.7.7';
|
32 |
|
33 |
// custom post types
|
34 |
const CPT_VISUALIZER = 'visualizer';
|
classes/Visualizer/Render/Layout.php
CHANGED
@@ -128,13 +128,15 @@ class Visualizer_Render_Layout extends Visualizer_Render {
|
|
128 |
*/
|
129 |
public static function _renderJsonScreen( $args ) {
|
130 |
$id = $args[1];
|
131 |
-
$action =
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
|
|
|
|
138 |
);
|
139 |
|
140 |
$url = get_post_meta( $id, Visualizer_Plugin::CF_JSON_URL, true );
|
@@ -306,13 +308,15 @@ class Visualizer_Render_Layout extends Visualizer_Render {
|
|
306 |
*/
|
307 |
public static function _renderSimpleEditorScreen( $args ) {
|
308 |
$chart_id = $args[1];
|
309 |
-
$action =
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
|
|
|
|
316 |
);
|
317 |
?>
|
318 |
<div class="viz-simple-editor">
|
@@ -582,13 +586,13 @@ class Visualizer_Render_Layout extends Visualizer_Render {
|
|
582 |
<li class="viz-group open" id="vz-chart-settings">
|
583 |
<ul class="viz-group-content">
|
584 |
<ul class="viz-group-wrapper">
|
585 |
-
<form id="settings-form" action="<?php echo add_query_arg( 'nonce', wp_create_nonce() ); ?>" method="post">
|
586 |
<input type="hidden" id="chart-img" name="chart-img">
|
587 |
<?php echo $sidebar; ?>
|
588 |
<?php self::_renderPermissions( $args ); ?>
|
589 |
<input type="hidden" name="save" value="1">
|
590 |
</form>
|
591 |
-
<form id="cancel-form" action="<?php echo add_query_arg( 'nonce', wp_create_nonce() ); ?>" method="post">
|
592 |
<input type="hidden" name="cancel" value="1">
|
593 |
</form>
|
594 |
</ul>
|
@@ -654,13 +658,15 @@ class Visualizer_Render_Layout extends Visualizer_Render {
|
|
654 |
public static function _renderTabBasic( $args ) {
|
655 |
$chart_id = $args[1];
|
656 |
|
657 |
-
$upload_link =
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
|
|
|
|
664 |
);
|
665 |
|
666 |
// this will allow us to open the correct source tab by default.
|
@@ -815,12 +821,14 @@ class Visualizer_Render_Layout extends Visualizer_Render {
|
|
815 |
<form>
|
816 |
<select name="vz-import-from-chart" id="chart-id" class="visualizer-select">
|
817 |
<?php
|
818 |
-
$fetch_link =
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
|
|
|
|
824 |
);
|
825 |
$query_args_charts = array(
|
826 |
'post_type' => Visualizer_Plugin::CPT_VISUALIZER,
|
@@ -862,12 +870,14 @@ class Visualizer_Render_Layout extends Visualizer_Render {
|
|
862 |
</li>
|
863 |
|
864 |
<?php
|
865 |
-
$save_filter =
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
|
|
|
|
871 |
);
|
872 |
?>
|
873 |
<!-- import from WordPress -->
|
@@ -911,12 +921,14 @@ class Visualizer_Render_Layout extends Visualizer_Render {
|
|
911 |
</li>
|
912 |
|
913 |
<?php
|
914 |
-
$save_query =
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
|
|
|
|
920 |
);
|
921 |
?>
|
922 |
<!-- import from db -->
|
128 |
*/
|
129 |
public static function _renderJsonScreen( $args ) {
|
130 |
$id = $args[1];
|
131 |
+
$action = esc_url(
|
132 |
+
add_query_arg(
|
133 |
+
array(
|
134 |
+
'action' => Visualizer_Plugin::ACTION_JSON_SET_DATA,
|
135 |
+
'security' => wp_create_nonce( Visualizer_Plugin::ACTION_JSON_SET_DATA . Visualizer_Plugin::VERSION ),
|
136 |
+
'chart' => $id,
|
137 |
+
),
|
138 |
+
admin_url( 'admin-ajax.php' )
|
139 |
+
)
|
140 |
);
|
141 |
|
142 |
$url = get_post_meta( $id, Visualizer_Plugin::CF_JSON_URL, true );
|
308 |
*/
|
309 |
public static function _renderSimpleEditorScreen( $args ) {
|
310 |
$chart_id = $args[1];
|
311 |
+
$action = esc_url(
|
312 |
+
add_query_arg(
|
313 |
+
array(
|
314 |
+
'action' => Visualizer_Plugin::ACTION_UPLOAD_DATA,
|
315 |
+
'nonce' => wp_create_nonce(),
|
316 |
+
'chart' => $chart_id,
|
317 |
+
),
|
318 |
+
admin_url( 'admin-ajax.php' )
|
319 |
+
)
|
320 |
);
|
321 |
?>
|
322 |
<div class="viz-simple-editor">
|
586 |
<li class="viz-group open" id="vz-chart-settings">
|
587 |
<ul class="viz-group-content">
|
588 |
<ul class="viz-group-wrapper">
|
589 |
+
<form id="settings-form" action="<?php echo esc_url( add_query_arg( 'nonce', wp_create_nonce() ) ); ?>" method="post">
|
590 |
<input type="hidden" id="chart-img" name="chart-img">
|
591 |
<?php echo $sidebar; ?>
|
592 |
<?php self::_renderPermissions( $args ); ?>
|
593 |
<input type="hidden" name="save" value="1">
|
594 |
</form>
|
595 |
+
<form id="cancel-form" action="<?php echo esc_url( add_query_arg( 'nonce', wp_create_nonce() ) ); ?>" method="post">
|
596 |
<input type="hidden" name="cancel" value="1">
|
597 |
</form>
|
598 |
</ul>
|
658 |
public static function _renderTabBasic( $args ) {
|
659 |
$chart_id = $args[1];
|
660 |
|
661 |
+
$upload_link = esc_url(
|
662 |
+
add_query_arg(
|
663 |
+
array(
|
664 |
+
'action' => Visualizer_Plugin::ACTION_UPLOAD_DATA,
|
665 |
+
'nonce' => wp_create_nonce(),
|
666 |
+
'chart' => $chart_id,
|
667 |
+
),
|
668 |
+
admin_url( 'admin-ajax.php' )
|
669 |
+
)
|
670 |
);
|
671 |
|
672 |
// this will allow us to open the correct source tab by default.
|
821 |
<form>
|
822 |
<select name="vz-import-from-chart" id="chart-id" class="visualizer-select">
|
823 |
<?php
|
824 |
+
$fetch_link = esc_url(
|
825 |
+
add_query_arg(
|
826 |
+
array(
|
827 |
+
'action' => Visualizer_Module::is_pro() ? Visualizer_Pro::ACTION_FETCH_DATA : '',
|
828 |
+
'nonce' => wp_create_nonce(),
|
829 |
+
),
|
830 |
+
admin_url( 'admin-ajax.php' )
|
831 |
+
)
|
832 |
);
|
833 |
$query_args_charts = array(
|
834 |
'post_type' => Visualizer_Plugin::CPT_VISUALIZER,
|
870 |
</li>
|
871 |
|
872 |
<?php
|
873 |
+
$save_filter = esc_url(
|
874 |
+
add_query_arg(
|
875 |
+
array(
|
876 |
+
'action' => Visualizer_Plugin::ACTION_SAVE_FILTER_QUERY,
|
877 |
+
'security' => wp_create_nonce( Visualizer_Plugin::ACTION_SAVE_FILTER_QUERY . Visualizer_Plugin::VERSION ),
|
878 |
+
'chart' => $chart_id,
|
879 |
+
), admin_url( 'admin-ajax.php' )
|
880 |
+
)
|
881 |
);
|
882 |
?>
|
883 |
<!-- import from WordPress -->
|
921 |
</li>
|
922 |
|
923 |
<?php
|
924 |
+
$save_query = esc_url(
|
925 |
+
add_query_arg(
|
926 |
+
array(
|
927 |
+
'action' => Visualizer_Plugin::ACTION_SAVE_DB_QUERY,
|
928 |
+
'security' => wp_create_nonce( Visualizer_Plugin::ACTION_SAVE_DB_QUERY . Visualizer_Plugin::VERSION ),
|
929 |
+
'chart' => $chart_id,
|
930 |
+
), admin_url( 'admin-ajax.php' )
|
931 |
+
)
|
932 |
);
|
933 |
?>
|
934 |
<!-- import from db -->
|
classes/Visualizer/Render/Library.php
CHANGED
@@ -297,30 +297,36 @@ class Visualizer_Render_Library extends Visualizer_Render {
|
|
297 |
}
|
298 |
|
299 |
$ajax_url = admin_url( 'admin-ajax.php' );
|
300 |
-
$delete_url =
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
|
|
|
|
307 |
);
|
308 |
-
$clone_url =
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
|
|
|
|
316 |
);
|
317 |
-
$export_link =
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
|
|
|
|
324 |
);
|
325 |
|
326 |
$chart_status = array( 'date' => get_the_modified_date( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), $chart_id ), 'error' => get_post_meta( $chart_id, Visualizer_Plugin::CF_ERROR, true ), 'icon' => 'dashicons-yes-alt', 'title' => 'A-OK!' );
|
297 |
}
|
298 |
|
299 |
$ajax_url = admin_url( 'admin-ajax.php' );
|
300 |
+
$delete_url = esc_url(
|
301 |
+
add_query_arg(
|
302 |
+
array(
|
303 |
+
'action' => Visualizer_Plugin::ACTION_DELETE_CHART,
|
304 |
+
'nonce' => wp_create_nonce(),
|
305 |
+
'chart' => $chart_id,
|
306 |
+
),
|
307 |
+
$ajax_url
|
308 |
+
)
|
309 |
);
|
310 |
+
$clone_url = esc_url(
|
311 |
+
add_query_arg(
|
312 |
+
array(
|
313 |
+
'action' => Visualizer_Plugin::ACTION_CLONE_CHART,
|
314 |
+
'nonce' => wp_create_nonce( Visualizer_Plugin::ACTION_CLONE_CHART ),
|
315 |
+
'chart' => $chart_id,
|
316 |
+
'type' => $this->type,
|
317 |
+
),
|
318 |
+
$ajax_url
|
319 |
+
)
|
320 |
);
|
321 |
+
$export_link = esc_url(
|
322 |
+
add_query_arg(
|
323 |
+
array(
|
324 |
+
'action' => Visualizer_Plugin::ACTION_EXPORT_DATA,
|
325 |
+
'chart' => $chart_id,
|
326 |
+
'security' => wp_create_nonce( Visualizer_Plugin::ACTION_EXPORT_DATA . Visualizer_Plugin::VERSION ),
|
327 |
+
),
|
328 |
+
admin_url( 'admin-ajax.php' )
|
329 |
+
)
|
330 |
);
|
331 |
|
332 |
$chart_status = array( 'date' => get_the_modified_date( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), $chart_id ), 'error' => get_post_meta( $chart_id, Visualizer_Plugin::CF_ERROR, true ), 'icon' => 'dashicons-yes-alt', 'title' => 'A-OK!' );
|
classes/Visualizer/Render/Page/Data.php
CHANGED
@@ -107,7 +107,7 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
|
|
107 |
// NOTE: We can't be selective on the post_status here because when a new chart reaches the settings screen, its status changes to publish.
|
108 |
if ( ! VISUALIZER_SKIP_CHART_TYPE_PAGE ) {
|
109 |
echo '<div class="toolbar-div">';
|
110 |
-
echo '<a class="button button-large" href="', add_query_arg( 'tab', 'types' ), '">';
|
111 |
esc_html_e( 'Back', 'visualizer' );
|
112 |
echo '</a>';
|
113 |
echo '</div>';
|
107 |
// NOTE: We can't be selective on the post_status here because when a new chart reaches the settings screen, its status changes to publish.
|
108 |
if ( ! VISUALIZER_SKIP_CHART_TYPE_PAGE ) {
|
109 |
echo '<div class="toolbar-div">';
|
110 |
+
echo '<a class="button button-large" href="', esc_url( add_query_arg( 'tab', 'types' ) ), '">';
|
111 |
esc_html_e( 'Back', 'visualizer' );
|
112 |
echo '</a>';
|
113 |
echo '</div>';
|
classes/Visualizer/Render/Page/Settings.php
CHANGED
@@ -51,7 +51,7 @@ class Visualizer_Render_Page_Settings extends Visualizer_Render_Page {
|
|
51 |
* @access protected
|
52 |
*/
|
53 |
protected function _renderToolbar() {
|
54 |
-
echo '<a class="button button-large" href="', add_query_arg( 'tab', 'data' ), '">';
|
55 |
esc_html_e( 'Back', 'visualizer' );
|
56 |
echo '</a>';
|
57 |
echo '<input type="submit" class="button button-primary button-large push-right" value="', $this->button, '">';
|
@@ -65,7 +65,7 @@ class Visualizer_Render_Page_Settings extends Visualizer_Render_Page {
|
|
65 |
* @access protected
|
66 |
*/
|
67 |
protected function _toHTML() {
|
68 |
-
echo '<form id="settings-form" action="', add_query_arg( 'nonce', wp_create_nonce() ), '" method="post">';
|
69 |
parent::_toHTML();
|
70 |
echo '</form>';
|
71 |
}
|
51 |
* @access protected
|
52 |
*/
|
53 |
protected function _renderToolbar() {
|
54 |
+
echo '<a class="button button-large" href="', esc_url( add_query_arg( 'tab', 'data' ) ), '">';
|
55 |
esc_html_e( 'Back', 'visualizer' );
|
56 |
echo '</a>';
|
57 |
echo '<input type="submit" class="button button-primary button-large push-right" value="', $this->button, '">';
|
65 |
* @access protected
|
66 |
*/
|
67 |
protected function _toHTML() {
|
68 |
+
echo '<form id="settings-form" action="', esc_url( add_query_arg( 'nonce', wp_create_nonce() ) ), '" method="post">';
|
69 |
parent::_toHTML();
|
70 |
echo '</form>';
|
71 |
}
|
css/media.css
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
/*
|
2 |
-
Version: 3.7.
|
3 |
*/
|
4 |
#visualizer-library-view {
|
5 |
padding: 30px 10px 10px 30px;
|
1 |
/*
|
2 |
+
Version: 3.7.7
|
3 |
*/
|
4 |
#visualizer-library-view {
|
5 |
padding: 30px 10px 10px 30px;
|
index.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Visualizer: Tables and Charts for WordPress
|
4 |
Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs-lite/
|
5 |
Description: A simple, easy to use and quite powerful tool to create, manage and embed interactive charts into your WordPress posts and pages. The plugin uses Google Visualization API to render charts, which supports cross-browser compatibility (adopting VML for older IE versions) and cross-platform portability to iOS and new Android releases.
|
6 |
-
Version: 3.7.
|
7 |
Author: Themeisle
|
8 |
Author URI: http://themeisle.com
|
9 |
Requires at least: 3.5
|
3 |
Plugin Name: Visualizer: Tables and Charts for WordPress
|
4 |
Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs-lite/
|
5 |
Description: A simple, easy to use and quite powerful tool to create, manage and embed interactive charts into your WordPress posts and pages. The plugin uses Google Visualization API to render charts, which supports cross-browser compatibility (adopting VML for older IE versions) and cross-platform portability to iOS and new Android releases.
|
6 |
+
Version: 3.7.7
|
7 |
Author: Themeisle
|
8 |
Author URI: http://themeisle.com
|
9 |
Requires at least: 3.5
|
readme.txt
CHANGED
@@ -163,6 +163,13 @@ Pay attention that to turn your shortcodes into graphs, your theme has to have `
|
|
163 |
|
164 |
== Changelog ==
|
165 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
##### [Version 3.7.6](https://github.com/Codeinwp/visualizer/compare/v3.7.5...v3.7.6) (2022-05-26)
|
167 |
|
168 |
- Fix PHP 8.0 or above compatibility issue
|
163 |
|
164 |
== Changelog ==
|
165 |
|
166 |
+
##### [Version 3.7.7](https://github.com/Codeinwp/visualizer/compare/v3.7.6...v3.7.7) (2022-05-31)
|
167 |
+
|
168 |
+
* Harden security by enforcing unescaped urls.
|
169 |
+
|
170 |
+
|
171 |
+
|
172 |
+
|
173 |
##### [Version 3.7.6](https://github.com/Codeinwp/visualizer/compare/v3.7.5...v3.7.6) (2022-05-26)
|
174 |
|
175 |
- Fix PHP 8.0 or above compatibility issue
|
vendor/autoload.php
CHANGED
@@ -9,4 +9,4 @@ if (PHP_VERSION_ID < 50600) {
|
|
9 |
|
10 |
require_once __DIR__ . '/composer/autoload_real.php';
|
11 |
|
12 |
-
return
|
9 |
|
10 |
require_once __DIR__ . '/composer/autoload_real.php';
|
11 |
|
12 |
+
return ComposerAutoloaderInitbc52507a293ed5ff01d464499d5522c3::getLoader();
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -24,18 +24,18 @@ class ComposerAutoloaderInite6cd6b9e5d6786401e9d157fb1f854c0
|
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
-
spl_autoload_register(array('
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
29 |
-
spl_autoload_unregister(array('
|
30 |
|
31 |
require __DIR__ . '/autoload_static.php';
|
32 |
-
call_user_func(\Composer\Autoload\
|
33 |
|
34 |
$loader->register(true);
|
35 |
|
36 |
-
$includeFiles = \Composer\Autoload\
|
37 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
38 |
-
|
39 |
}
|
40 |
|
41 |
return $loader;
|
@@ -47,7 +47,7 @@ class ComposerAutoloaderInite6cd6b9e5d6786401e9d157fb1f854c0
|
|
47 |
* @param string $file
|
48 |
* @return void
|
49 |
*/
|
50 |
-
function
|
51 |
{
|
52 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
53 |
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInitbc52507a293ed5ff01d464499d5522c3
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
+
spl_autoload_register(array('ComposerAutoloaderInitbc52507a293ed5ff01d464499d5522c3', 'loadClassLoader'), true, true);
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
29 |
+
spl_autoload_unregister(array('ComposerAutoloaderInitbc52507a293ed5ff01d464499d5522c3', 'loadClassLoader'));
|
30 |
|
31 |
require __DIR__ . '/autoload_static.php';
|
32 |
+
call_user_func(\Composer\Autoload\ComposerStaticInitbc52507a293ed5ff01d464499d5522c3::getInitializer($loader));
|
33 |
|
34 |
$loader->register(true);
|
35 |
|
36 |
+
$includeFiles = \Composer\Autoload\ComposerStaticInitbc52507a293ed5ff01d464499d5522c3::$files;
|
37 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
38 |
+
composerRequirebc52507a293ed5ff01d464499d5522c3($fileIdentifier, $file);
|
39 |
}
|
40 |
|
41 |
return $loader;
|
47 |
* @param string $file
|
48 |
* @return void
|
49 |
*/
|
50 |
+
function composerRequirebc52507a293ed5ff01d464499d5522c3($fileIdentifier, $file)
|
51 |
{
|
52 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
53 |
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'abede361264e2ae69ec1eee813a101af' => __DIR__ . '/..' . '/markbaker/complex/classes/src/functions/abs.php',
|
@@ -356,10 +356,10 @@ class ComposerStaticInite6cd6b9e5d6786401e9d157fb1f854c0
|
|
356 |
public static function getInitializer(ClassLoader $loader)
|
357 |
{
|
358 |
return \Closure::bind(function () use ($loader) {
|
359 |
-
$loader->prefixLengthsPsr4 =
|
360 |
-
$loader->prefixDirsPsr4 =
|
361 |
-
$loader->prefixesPsr0 =
|
362 |
-
$loader->classMap =
|
363 |
|
364 |
}, null, ClassLoader::class);
|
365 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInitbc52507a293ed5ff01d464499d5522c3
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'abede361264e2ae69ec1eee813a101af' => __DIR__ . '/..' . '/markbaker/complex/classes/src/functions/abs.php',
|
356 |
public static function getInitializer(ClassLoader $loader)
|
357 |
{
|
358 |
return \Closure::bind(function () use ($loader) {
|
359 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInitbc52507a293ed5ff01d464499d5522c3::$prefixLengthsPsr4;
|
360 |
+
$loader->prefixDirsPsr4 = ComposerStaticInitbc52507a293ed5ff01d464499d5522c3::$prefixDirsPsr4;
|
361 |
+
$loader->prefixesPsr0 = ComposerStaticInitbc52507a293ed5ff01d464499d5522c3::$prefixesPsr0;
|
362 |
+
$loader->classMap = ComposerStaticInitbc52507a293ed5ff01d464499d5522c3::$classMap;
|
363 |
|
364 |
}, null, ClassLoader::class);
|
365 |
}
|
vendor/composer/installed.php
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
<?php return array(
|
2 |
'root' => array(
|
3 |
-
'pretty_version' => 'v3.7.
|
4 |
-
'version' => '3.7.
|
5 |
'type' => 'wordpress-plugin',
|
6 |
'install_path' => __DIR__ . '/../../',
|
7 |
'aliases' => array(),
|
8 |
-
'reference' => '
|
9 |
'name' => 'codeinwp/visualizer',
|
10 |
'dev' => false,
|
11 |
),
|
@@ -20,12 +20,12 @@
|
|
20 |
'dev_requirement' => false,
|
21 |
),
|
22 |
'codeinwp/visualizer' => array(
|
23 |
-
'pretty_version' => 'v3.7.
|
24 |
-
'version' => '3.7.
|
25 |
'type' => 'wordpress-plugin',
|
26 |
'install_path' => __DIR__ . '/../../',
|
27 |
'aliases' => array(),
|
28 |
-
'reference' => '
|
29 |
'dev_requirement' => false,
|
30 |
),
|
31 |
'markbaker/complex' => array(
|
1 |
<?php return array(
|
2 |
'root' => array(
|
3 |
+
'pretty_version' => 'v3.7.7',
|
4 |
+
'version' => '3.7.7.0',
|
5 |
'type' => 'wordpress-plugin',
|
6 |
'install_path' => __DIR__ . '/../../',
|
7 |
'aliases' => array(),
|
8 |
+
'reference' => '6e0a050537e304b048b3149f9465cc5a89fb2fe3',
|
9 |
'name' => 'codeinwp/visualizer',
|
10 |
'dev' => false,
|
11 |
),
|
20 |
'dev_requirement' => false,
|
21 |
),
|
22 |
'codeinwp/visualizer' => array(
|
23 |
+
'pretty_version' => 'v3.7.7',
|
24 |
+
'version' => '3.7.7.0',
|
25 |
'type' => 'wordpress-plugin',
|
26 |
'install_path' => __DIR__ . '/../../',
|
27 |
'aliases' => array(),
|
28 |
+
'reference' => '6e0a050537e304b048b3149f9465cc5a89fb2fe3',
|
29 |
'dev_requirement' => false,
|
30 |
),
|
31 |
'markbaker/complex' => array(
|