PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.10.15
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.10.15
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 3.10.4 All 148 releases
visualizer / index.php

index.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.10.15, at index.php

204 lines 6.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 Plugin Name: Visualizer: Tables and Charts for WordPress
4 Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs/
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.10.15
7 Author: Themeisle
8 Author URI: http://themeisle.com
9 Requires at least: 5.2
10 Tested up to: 6.5
11 License: GPL v2.0 or later
12 WordPress Available: yes
13 Requires License: no
14 Pro Slug: visualizer-pro
15 License URI: http://www.opensource.org/licenses/gpl-license.php
16 */
17
18 // Prevent direct access to the plugin folder.
19 if ( ! defined( 'ABSPATH' ) ) {
20 header( 'HTTP/1.0 404 Not Found', true, 404 );
21 exit;
22 }
23 // don't load the plugin, if it has been already loaded
24 if ( class_exists( 'Visualizer_Plugin', false ) ) {
25 return;
26 }
27
28 // support for pro versions before 3.3.0
29 if ( class_exists( 'Visualizer_Pro', false ) ) {
30 define( 'VISUALIZER_PRO', true );
31 } else {
32 defined( 'VISUALIZER_PRO' ) || define( 'VISUALIZER_PRO', false );
33 }
34
35 /**
36 * Automatically loads classes for the plugin. Checks a namespace and loads only
37 * approved classes.
38 *
39 * @since 1.0.0
40 *
41 * @param string $class The class name to autoload.
42 *
43 * @return boolean Returns TRUE if the class is located. Otherwise FALSE.
44 */
45 function visualizer_autoloader( $class ) {
46 $namespaces = array( 'Visualizer' );
47 foreach ( $namespaces as $namespace ) {
48 if ( substr( $class, 0, strlen( $namespace ) ) === $namespace ) {
49 $filename = dirname( __FILE__ ) . str_replace( '_', DIRECTORY_SEPARATOR, "_classes_{$class}.php" );
50 if ( is_readable( $filename ) ) {
51 require $filename;
52
53 return true;
54 }
55 }
56 }
57
58 return false;
59 }
60
61 /**
62 * Instantiates the plugin and setup all modules.
63 *
64 * @since 1.0.0
65 */
66 function visualizer_launch() {
67 // setup environment
68 define( 'VISUALIZER_BASEFILE', __FILE__ );
69 define( 'VISUALIZER_BASENAME', plugin_basename( __FILE__ ) );
70 define( 'VISUALIZER_ABSURL', plugins_url( '/', __FILE__ ) );
71 define( 'VISUALIZER_ABSPATH', dirname( __FILE__ ) );
72 define( 'VISUALIZER_DIRNAME', basename( VISUALIZER_ABSPATH ) );
73 define( 'VISUALIZER_REST_VERSION', 1 );
74 // if the below is true, then the js/customization.js in the plugin folder will be used instead of the one in the uploads folder (if it exists).
75 // this is also used in Block.php
76 if ( ! defined( 'VISUALIZER_TEST_JS_CUSTOMIZATION' ) ) {
77 define( 'VISUALIZER_TEST_JS_CUSTOMIZATION', false );
78 }
79
80 if ( ! defined( 'VISUALIZER_CSV_DELIMITER' ) ) {
81 define( 'VISUALIZER_CSV_DELIMITER', ',' );
82 }
83 if ( ! defined( 'VISUALIZER_CSV_ENCLOSURE' ) ) {
84 define( 'VISUALIZER_CSV_ENCLOSURE', '"' );
85 }
86 if ( ! defined( 'VISUALIZER_DEBUG' ) ) {
87 define( 'VISUALIZER_DEBUG', false );
88 }
89
90 define( 'VISUALIZER_SKIP_CHART_TYPE_PAGE', true );
91
92 // if x and y features are required, this value should read x,y or x|y or x;y.
93 define( 'VISUALIZER_ENABLE_BETA_FEATURES', '' );
94
95 // the link to pre-build queries.
96 define( 'VISUALIZER_DB_QUERY_DOC_URL', 'https://docs.themeisle.com/article/970-visualizer-sample-queries-to-generate-charts' );
97 define( 'VISUALIZER_MAIN_DOC', 'https://docs.themeisle.com/category/657-visualizer' );
98 define( 'VISUALIZER_DOC_COLLECTION', 'https://docs.themeisle.com/search?collectionId=561ec249c69791452ed4bceb&query=#+visualizer' );
99 define( 'VISUALIZER_DEMO_URL', 'https://demo.themeisle.com/visualizer/#' );
100 define( 'VISUALIZER_CODE_SNIPPETS_URL', 'https://docs.themeisle.com/category/726-visualizer' );
101 define( 'VISUALIZER_SUBSCRIBE_API', 'https://api.themeisle.com/tracking/subscribe' );
102
103 // to redirect all themeisle_log_event to error log.
104 define( 'VISUALIZER_LOCAL_DEBUG', false );
105
106 // instantiate the plugin
107 $plugin = Visualizer_Plugin::instance();
108
109 // instantiate Gutenberg block
110 add_action(
111 'plugins_loaded', function () {
112 if ( function_exists( 'register_block_type' ) ) {
113 Visualizer_Gutenberg_Block::get_instance();
114 }}
115 );
116
117 // set general modules
118 $plugin->setModule( Visualizer_Module_Utility::NAME );
119 $plugin->setModule( Visualizer_Module_Setup::NAME );
120 $plugin->setModule( Visualizer_Module_Sources::NAME );
121 $plugin->setModule( Visualizer_Module_Chart::NAME );
122
123 if ( is_admin() || defined( 'WP_TESTS_DOMAIN' ) ) {
124 // set admin modules
125 $plugin->setModule( Visualizer_Module_Admin::NAME );
126 }
127
128 // set frontend modules
129 $plugin->setModule( Visualizer_Module_Frontend::NAME );
130
131 $plugin->setModule( Visualizer_Module_AMP::NAME );
132
133 // Set setup wizard module.
134 $plugin->setModule( Visualizer_Module_Wizard::NAME );
135
136 $vendor_file = VISUALIZER_ABSPATH . '/vendor/autoload.php';
137 if ( is_readable( $vendor_file ) ) {
138 include_once( $vendor_file );
139 }
140 add_filter( 'themeisle_sdk_products', 'visualizer_register_sdk', 10, 1 );
141 add_filter( 'pirate_parrot_log', 'visualizer_register_parrot', 10, 1 );
142 add_filter(
143 'themeisle_sdk_compatibilities/' . VISUALIZER_DIRNAME, function ( $compatibilities ) {
144 $compatibilities['VisualizerPRO'] = array(
145 'basefile' => defined( 'VISUALIZER_PRO_BASEFILE' ) ? VISUALIZER_PRO_BASEFILE : '',
146 'required' => '1.8',
147 'tested_up' => '1.13',
148 );
149 return $compatibilities;
150 }
151 );
152 add_filter(
153 'visualizer_about_us_metadata',
154 function() {
155 return array(
156 'logo' => esc_url( VISUALIZER_ABSURL . 'images/visualizer-logo.svg' ),
157 'location' => 'visualizer',
158 'has_upgrade_menu' => ! Visualizer_Module::is_pro(),
159 'upgrade_text' => esc_html__( 'Get Visualizer Pro', 'feedzy-rss-feeds' ),
160 'upgrade_link' => esc_url( tsdk_utmify( Visualizer_Plugin::PRO_TEASER_URL, 'aboutUsPage' ) ),
161 );
162 }
163 );
164 }
165
166 /**
167 * Registers with the SDK
168 *
169 * @since 1.0.0
170 */
171 function visualizer_register_sdk( $products ) {
172 $products[] = VISUALIZER_BASEFILE;
173 return $products;
174 }
175
176 /**
177 * Registers with the parrot plugin
178 *
179 * @since 1.0.0
180 */
181 function visualizer_register_parrot( $plugins ) {
182 $plugins[] = Visualizer_Plugin::NAME;
183 return $plugins;
184 }
185
186 // register autoloader function
187 spl_autoload_register( 'visualizer_autoloader' );
188 // launch the plugin
189 visualizer_launch();
190
191
192 if ( VISUALIZER_LOCAL_DEBUG ) {
193 add_action( 'themeisle_log_event', 'visualizer_themeisle_log_event', 10, 5 );
194
195 /**
196 * Redirect themeisle_log_event to error log.
197 */
198 function visualizer_themeisle_log_event( $name, $msg, $type, $file, $line ) {
199 if ( $name === Visualizer_Plugin::NAME ) {
200 error_log( sprintf( '%s (%s:%d): %s', $type, $file, $line, $msg ) );
201 }
202 }
203 }
204