PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.4.4
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.4.4
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/Frontend.php +49 -8 3.4.33.4.4 View file →
@@ -119,17 +119,42 @@
119 119 *
120 120 * @access private
121 121 */
122 122 private function get_actions() {
123 - return apply_filters(
123 + $actions = apply_filters(
124 124 'visualizer_action_buttons',
125 125 array(
126 - 'print' => __( 'Print', 'visualizer' ),
127 - 'csv' => __( 'CSV', 'visualizer' ),
128 - 'xls' => __( 'Excel', 'visualizer' ),
129 - 'copy' => __( 'Copy', 'visualizer' ),
126 + 'print' => array(
127 + 'label' => esc_html__( 'Print', 'visualizer' ),
128 + 'title' => esc_html__( 'Print Chart', 'visualizer' ),
129 + ),
130 + 'csv' => array(
131 + 'label' => esc_html__( 'CSV', 'visualizer' ),
132 + 'title' => esc_html__( 'Download as a CSV', 'visualizer' ),
133 + ),
134 + 'xls' => array(
135 + 'label' => esc_html__( 'Excel', 'visualizer' ),
136 + 'title' => esc_html__( 'Download as a spreadsheet', 'visualizer' ),
137 + ),
138 + 'copy' => array(
139 + 'label' => esc_html__( 'Copy', 'visualizer' ),
140 + 'title' => esc_html__( 'Copy data', 'visualizer' ),
141 + ),
142 + 'image' => array(
143 + 'label' => esc_html__( 'Download', 'visualizer' ),
144 + 'title' => esc_html__( 'Download as an image', 'visualizer' ),
145 + ),
130 146 )
131 147 );
148 +
149 + // backward compatibility before label and title attributes were introduced.
150 + if ( isset( $actions['edit'] ) && is_string( $actions['edit'] ) ) {
151 + $actions['edit'] = array(
152 + 'label' => esc_html__( 'Edit', 'visualizer' ),
153 + 'title' => esc_html__( 'Edit data', 'visualizer' ),
154 + );
155 + }
156 + return $actions;
132 157 }
133 158
134 159 /**
135 160 * The print button
@@ -160,8 +185,23 @@
160 185 break;
161 186 case 'xls':
162 187 $data = $this->_getDataAs( $chart_id, 'xls' );
163 188 break;
189 + case 'image':
190 + $settings = get_post_meta( $chart_id, Visualizer_Plugin::CF_SETTINGS, true );
191 + $title = 'visualizer#' . $chart_id;
192 + if ( ! empty( $settings['title'] ) ) {
193 + $title = $settings['title'];
194 + }
195 + // for ChartJS, title is an array.
196 + if ( is_array( $title ) && isset( $title['text'] ) ) {
197 + $title = $title['text'];
198 + }
199 + if ( empty( $title ) ) {
200 + $title = 'visualizer#' . $chart_id;
201 + }
202 + $data = array( 'name' => $title );
203 + break;
164 204 default:
165 205 $data = apply_filters( 'visualizer_action_data', $data, $chart_id, $type, $params, $this );
166 206 break;
167 207 }
@@ -295,10 +335,11 @@
295 335 $array = explode( ';', $action_type );
296 336 $key = $array[0];
297 337 $mime = end( $array );
298 338 }
299 - $label = $actions[ $key ];
300 - $actions_div .= '<a href="#" class="visualizer-action visualizer-action-' . $key . '" data-visualizer-type="' . $key . '" data-visualizer-chart-id="' . $atts['id'] . '" data-visualizer-container-id="' . $id . '" data-visualizer-mime="' . $mime . '" title="' . $label . '" ';
339 + $label = $actions[ $key ]['label'];
340 + $title = $actions[ $key ]['title'];
341 + $actions_div .= sprintf( '<a href="#" class="visualizer-action visualizer-action-%s" data-visualizer-type="%s" data-visualizer-chart-id="%s" data-visualizer-container-id="%s" data-visualizer-mime="%s" title="%s"', $key, $key, $atts['id'], $id, $mime, $title );
301 342
302 343 if ( 'copy' === $key ) {
303 344 $copy = $this->_getDataAs( $atts['id'], 'csv' );
304 345 $actions_div .= ' data-clipboard-text="' . esc_attr( $copy['csv'] ) . '"';
@@ -333,9 +374,9 @@
333 374 'language' => $this->get_language(),
334 375 'map_api_key' => get_option( 'visualizer-map-api-key' ),
335 376 'rest_url' => version_compare( $wp_version, '4.7.0', '>=' ) ? rest_url( 'visualizer/v' . VISUALIZER_REST_VERSION . '/action/#id#/#type#/' ) : '',
336 377 'i10n' => array(
337 - 'copied' => __( 'Copied!', 'visualizer' ),
378 + 'copied' => __( 'The data has been copied to your clipboard. Hit Ctrl-V/Cmd-V in your spreadsheet editor to paste the data.', 'visualizer' ),
338 379 ),
339 380 'page_type' => 'frontend',
340 381 'is_front' => true,
341 382 )