Skip to content

Commit 1ac585f

Browse files
authored
Merge pull request #90 from Codeinwp/development
Fixed potential XSS security bug Added support for charts in the media library Removed pointer for the pro version Added option to show legend on the left side
2 parents a62e5fa + 7513ee4 commit 1ac585f

File tree

11 files changed

+32
-141
lines changed

11 files changed

+32
-141
lines changed

classes/Visualizer/Module/Admin.php

Lines changed: 1 addition & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -58,76 +58,10 @@ public function __construct( Visualizer_Plugin $plugin ) {
5858
$this->_addAction( 'admin_footer', 'renderTempaltes' );
5959
$this->_addAction( 'admin_enqueue_scripts', 'enqueueLibraryScripts' );
6060
$this->_addAction( 'admin_menu', 'registerAdminMenu' );
61-
// Added by Ash/Upwork for feedback
62-
$this->_addAction( 'admin_init', 'visualizerInitFeedback' );
63-
// Added by Ash/Upwork for feedback
6461

6562
$this->_addFilter( 'media_view_strings', 'setupMediaViewStrings' );
6663
$this->_addFilter( 'plugin_action_links', 'getPluginActionLinks', 10, 2 );
6764
$this->_addFilter( 'plugin_row_meta', 'getPluginMetaLinks', 10, 2 );
68-
$this->_addFilter( 'visualizer_admin_pointers', 'visualizerAdminPointers', 10, 2 );
69-
// Added by Ash/Upwork for feedback
70-
$this->_addFilter( 'visualizer_feedback_enqueue', 'visualizerFeedbackEnqueue', 10, 2 );
71-
$this->_addFilter( 'visualizer_feedback', 'visualizerFeedback', 10, 2 );
72-
$this->_addFilter( 'visualizer_feedback_config', 'visualizerFeedbackConfig', 10, 2 );
73-
$this->_addFilter( 'visualizer_feedback_action', 'visualizerFeedbackAction', 10, 2 );
74-
// Added by Ash/Upwork for feedback
75-
}
76-
77-
// Added by Ash/Upwork for feedback
78-
function visualizerFeedbackConfig(){
79-
return array(
80-
"title" => "TITLE",
81-
"description" => "Message that will ask the user for review",
82-
"yes_btn_txt" => "Text to show on yes btn ",
83-
"no_btn_txt" => "txt to show on no btn",
84-
"yes_btn_link" => "link to redirect when click on the yes btn",
85-
);
86-
}
87-
88-
function visualizerFeedbackAction(){
89-
return array("type"=>"splash","action"=>array("type"=>"click","target"=>".add-new-h2"));
90-
}
91-
92-
function visualizerFeedback(){
93-
return true;
94-
}
95-
96-
function visualizerInitFeedback(){
97-
$file = trailingslashit(VISUALIZER_ABSPATH) . "feedback/PluginFeedbackTI.php";
98-
if (file_exists($file)) {
99-
include_once $file;
100-
new PluginFeedbackTI(Visualizer_Plugin::NAME, 1, Visualizer_Plugin::VERSION, "visualizer_feedback", "visualizer_feedback_config", "visualizer_feedback_action", "visualizer_feedback_enqueue");
101-
}
102-
}
103-
104-
function visualizerFeedbackEnqueue(){
105-
wp_register_script("ti-feedback-func", VISUALIZER_ABSURL . 'js/feedback-func.js');
106-
wp_enqueue_script("ti-feedback-func");
107-
}
108-
// Added by Ash/Upwork for feedback
109-
110-
/**
111-
* Returns wp pointers for visualizer
112-
*
113-
* @since 1.5
114-
*
115-
* @static
116-
* @access private
117-
* @return array The associated array of pointer
118-
*/
119-
function visualizerAdminPointers( $p ) {
120-
$p['visualizer'] = array(
121-
'target' => '#menu-media',
122-
'options' => array(
123-
'content' => sprintf( '<h3> %s </h3> <p> %s </p>',
124-
__( 'Visualizer New Features ' , Visualizer_Plugin::NAME),
125-
__( 'Right now the Visualizer Charts and Graphics plugin integrates a live editor and a new importing option for your charts. ',Visualizer_Plugin::NAME)
126-
),
127-
'position' => array( 'edge' => 'top', 'align' => 'middle' )
128-
)
129-
);
130-
return $p;
13165
}
13266

13367
/**
@@ -175,7 +109,7 @@ public function enqueueMediaScripts() {
175109

176110
wp_enqueue_script( 'visualizer-google-jsapi-new', '//www.gstatic.com/charts/loader.js', array( 'media-editor' ), null, true );
177111
wp_enqueue_script( 'visualizer-google-jsapi-old', '//www.google.com/jsapi', array( 'visualizer-google-jsapi-new' ), null, true );
178-
wp_enqueue_script( 'visualizer-media-model', VISUALIZER_ABSURL . 'js/media/model.js', array( 'visualizer-google-jsapi' ), Visualizer_Plugin::VERSION, true );
112+
wp_enqueue_script( 'visualizer-media-model', VISUALIZER_ABSURL . 'js/media/model.js', array( 'visualizer-google-jsapi-old' ), Visualizer_Plugin::VERSION, true );
179113
wp_enqueue_script( 'visualizer-media-collection', VISUALIZER_ABSURL . 'js/media/collection.js', array( 'visualizer-media-model' ), Visualizer_Plugin::VERSION, true );
180114
wp_enqueue_script( 'visualizer-media-controller', VISUALIZER_ABSURL . 'js/media/controller.js', array( 'visualizer-media-collection' ), Visualizer_Plugin::VERSION, true );
181115
wp_enqueue_script( 'visualizer-media-view', VISUALIZER_ABSURL . 'js/media/view.js', array( 'visualizer-media-controller' ), Visualizer_Plugin::VERSION, true );
@@ -258,46 +192,6 @@ public function enqueueLibraryScripts( $suffix ) {
258192
wp_enqueue_script( 'google-jsapi-old', '//www.google.com/jsapi', array('google-jsapi-new'), null, true );
259193
wp_enqueue_script( 'visualizer-render', VISUALIZER_ABSURL . 'js/render.js', array( 'google-jsapi-old', 'visualizer-library' ), Visualizer_Plugin::VERSION, true );
260194
}
261-
if ( get_bloginfo( 'version' ) < '3.3' )
262-
return;
263-
264-
265-
// Get pointers for this screen
266-
$pointers = apply_filters( 'visualizer_admin_pointers', array() );
267-
268-
if ( ! $pointers || ! is_array( $pointers ) )
269-
return;
270-
271-
// Get dismissed pointers
272-
$dismissed = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
273-
$valid_pointers =array();
274-
// Check pointers and remove dismissed ones.
275-
foreach ( $pointers as $pointer_id => $pointer ) {
276-
277-
// Sanity check
278-
if ( in_array( $pointer_id, $dismissed ) || empty( $pointer ) || empty( $pointer_id ) || empty( $pointer['target'] ) || empty( $pointer['options'] ) )
279-
continue;
280-
281-
$pointer['pointer_id'] = $pointer_id;
282-
283-
// Add the pointer to $valid_pointers array
284-
$valid_pointers['pointers'][] = $pointer;
285-
}
286-
287-
// No valid pointers? Stop here.
288-
if ( empty( $valid_pointers ) )
289-
return;
290-
291-
// Add pointers style to queue.
292-
wp_enqueue_style( 'wp-pointer' );
293-
// Add pointers script to queue. Add custom script.
294-
wp_enqueue_script( 'visualizer-pointer', VISUALIZER_ABSURL."js/visualizer-pointer.js", array( 'wp-pointer' ),Visualizer_Plugin::VERSION );
295-
296-
// Add pointer options to script.
297-
wp_localize_script( 'visualizer-pointer', 'visualizer', $valid_pointers );
298-
299-
300-
301195
}
302196

303197
/**

classes/Visualizer/Module/Chart.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public function getCharts() {
132132
) )
133133
);
134134

135-
$filter = filter_input( INPUT_GET, 'filter' );
135+
$filter = filter_input( INPUT_GET, 'filter', FILTER_SANITIZE_STRING );
136136
if ( $filter && in_array( $filter, Visualizer_Plugin::getChartTypes() ) ) {
137137
$query_args['meta_query'] = array(
138138
array(

classes/Visualizer/Plugin.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
class Visualizer_Plugin {
3131

3232
const NAME = 'visualizer';
33-
const VERSION = '1.5.5';
33+
const VERSION = '1.6.0';
3434

3535
// custom post types
3636
const CPT_VISUALIZER = 'visualizer';

classes/Visualizer/Render/Library.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ private function _renderLibrary() {
9191
if(isset($_GET["filter"]) && strlen($_GET["filter"]) > 0){
9292
$filterBy = filter_input( INPUT_GET, "filter", FILTER_SANITIZE_STRING );
9393
}
94-
$action = $_SERVER["REQUEST_URI"];
9594
echo '<div id="visualizer-search"><form action="" method="get">
9695
<input type="text" name="filter" value="' . $filterBy . '">
9796
<input type="hidden" name="page" value="visualizer">
@@ -104,11 +103,11 @@ private function _renderLibrary() {
104103
foreach ( $this->types as $type => $label ) {
105104
echo '<li class="visualizer-list-item">';
106105
if ( $type == $this->type ) {
107-
echo '<a class="page-numbers current" href="', add_query_arg( 'vpage', false ), '">';
106+
echo '<a class="page-numbers current" href="', esc_url(add_query_arg( 'vpage', false )), '">';
108107
echo $label;
109108
echo '</a>';
110109
} else {
111-
echo '<a class="page-numbers" href="', add_query_arg( array( 'type' => $type, 'vpage' => false ) ), '">';
110+
echo '<a class="page-numbers" href="', esc_url(add_query_arg( array( 'type' => $type, 'vpage' => false ) )), '">';
112111
echo $label;
113112
echo '</a>';
114113
}

classes/Visualizer/Render/Sidebar.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ public function __construct( $data = array() ) {
9898

9999
$this->_legendPositions = array(
100100
'' => '',
101+
'left' => esc_html__( 'Left of the chart', Visualizer_Plugin::NAME ),
101102
'right' => esc_html__( 'Right of the chart', Visualizer_Plugin::NAME ),
102103
'top' => esc_html__( 'Above the chart', Visualizer_Plugin::NAME ),
103104
'bottom' => esc_html__( 'Below the chart', Visualizer_Plugin::NAME ),

css/media.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
/*
2+
Version: 1.5.6
3+
*/
14
#visualizer-library-view {
25
padding: 30px 10px 10px 30px;
36
}

index.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?php
22
/*
3-
Plugin Name: Visualizer: Charts and Graphs
4-
Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs/
3+
Plugin Name: Visualizer: Charts and Graphs Lite
4+
Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs-lite/
55
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: 1.5.6
6+
Version: 1.6.0
77
Author: Themeisle
88
Author URI: http://themeisle.com
99
License: GPL v2.0 or later
@@ -109,9 +109,6 @@ function visualizer_launch() {
109109
if ( $doing_ajax ) {
110110
// set ajax modules
111111
$plugin->setModule( Visualizer_Module_Chart::NAME );
112-
// Added by Ash/Upwork for feedback
113-
$plugin->setModule( Visualizer_Module_Admin::NAME );
114-
// Added by Ash/Upwork for feedback
115112
} else {
116113
if ( is_admin() ) {
117114
// set admin modules

js/feedback-func.js

Lines changed: 0 additions & 3 deletions
This file was deleted.

js/render.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@
5353
}
5454
}
5555
}
56+
57+
if (settings.series && settings.legend && settings.legend.position == "left")
58+
{
59+
settings.targetAxisIndex = 1;
60+
}
5661
break;
5762
case 'geo':
5863
if (settings.region != undefined && settings.region.replace(/^\s+|\s+$/g, '') == '') {
@@ -87,6 +92,11 @@
8792
}
8893
}
8994
}
95+
96+
if (settings.series && settings.legend && settings.legend.position == "left")
97+
{
98+
settings.targetAxisIndex = 1;
99+
}
90100
break;
91101
default:
92102
return;

js/visualizer-pointer.js

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)