PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.0.3
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.0.3
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 / classes / Visualizer / Plugin.php

Plugin.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.0.3, at classes/Visualizer/Plugin.php

188 lines 5.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 // +----------------------------------------------------------------------+
3 // | Copyright 2013 Madpixels (email : visualizer@madpixels.net) |
4 // +----------------------------------------------------------------------+
5 // | This program is free software; you can redistribute it and/or modify |
6 // | it under the terms of the GNU General Public License, version 2, as |
7 // | published by the Free Software Foundation. |
8 // | |
9 // | This program is distributed in the hope that it will be useful, |
10 // | but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 // | GNU General Public License for more details. |
13 // | |
14 // | You should have received a copy of the GNU General Public License |
15 // | along with this program; if not, write to the Free Software |
16 // | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, |
17 // | MA 02110-1301 USA |
18 // +----------------------------------------------------------------------+
19 // | Author: Eugene Manuilov <eugene@manuilov.org> |
20 // +----------------------------------------------------------------------+
21 /**
22 * The core plugin class.
23 *
24 * @category Visualizer
25 *
26 * @since 1.0.0
27 */
28 class Visualizer_Plugin {
29
30 const NAME = 'visualizer';
31 const VERSION = '3.0.3';
32
33 // custom post types
34 const CPT_VISUALIZER = 'visualizer';
35
36 // custom meta fields
37 const CF_CHART_TYPE = 'visualizer-chart-type';
38 const CF_SOURCE = 'visualizer-source';
39 const CF_SERIES = 'visualizer-series';
40 const CF_DEFAULT_DATA = 'visualizer-default-data';
41 const CF_SETTINGS = 'visualizer-settings';
42
43 const CF_SOURCE_FILTER = 'visualizer-source-filter';
44
45 // custom actions
46 const ACTION_GET_CHARTS = 'visualizer-get-charts';
47 const ACTION_CREATE_CHART = 'visualizer-create-chart';
48 const ACTION_EDIT_CHART = 'visualizer-edit-chart';
49 const ACTION_CLONE_CHART = 'visualizer-clone-chart';
50 const ACTION_DELETE_CHART = 'visualizer-delete-chart';
51 const ACTION_UPLOAD_DATA = 'visualizer-upload-data';
52 // Added by Ash/Upwork
53 const ACTION_EXPORT_DATA = 'visualizer-export-data';
54
55 /**
56 *Action used for fetching specific users/roles for permissions.
57 */
58 const ACTION_FETCH_PERMISSIONS_DATA = 'visualizer-fetch-permissions-data';
59
60 // custom filters
61 const FILTER_CHART_WRAPPER_CLASS = 'visualizer-chart-wrapper-class';
62 const FILTER_GET_CHART_SERIES = 'visualizer-get-chart-series';
63 const FILTER_GET_CHART_DATA = 'visualizer-get-chart-data';
64 const FILTER_GET_CHART_SETTINGS = 'visualizer-get-chart-settings';
65
66 const CF_CHART_URL = 'visualizer-chart-url';
67 const CF_CHART_SCHEDULE = 'visualizer-chart-schedule';
68 // Added by Ash/Upwork
69 const PRO_TEASER_URL = 'http://themeisle.com/plugins/visualizer-charts-and-graphs-pro-addon/';
70 const PRO_TEASER_TITLE = 'Check PRO version ';
71 // Added by Ash/Upwork
72 /**
73 * Singletone instance of the plugin.
74 *
75 * @since 1.0.0
76 *
77 * @access private
78 * @var Visualizer_Plugin
79 */
80 private static $_instance = null;
81
82 /**
83 * The array of registered modules.
84 *
85 * @since 1.0.0
86 *
87 * @access private
88 * @var array
89 */
90 private $_modules = array();
91
92 /**
93 * Private constructor.
94 *
95 * @since 1.0.0
96 *
97 * @access private
98 */
99 private function __construct() {
100 }
101
102 /**
103 * Returns singletone instance of the plugin.
104 *
105 * @since 1.0.0
106 *
107 * @static
108 * @access public
109 * @return Visualizer_Plugin
110 */
111 public static function instance() {
112 if ( is_null( self::$_instance ) ) {
113 self::$_instance = new Visualizer_Plugin();
114 }
115
116 return self::$_instance;
117 }
118
119 /**
120 * Returns chart types.
121 *
122 * @since 1.0.0
123 *
124 * @static
125 * @access public
126 * @return array
127 */
128 public static function getChartTypes() {
129 $array = array_keys( Visualizer_Module_Admin::_getChartTypesLocalized() );
130
131 return $array;
132 }
133
134 /**
135 * Returns a module if it was registered before. Otherwise NULL.
136 *
137 * @since 1.0.0
138 *
139 * @access public
140 *
141 * @param string $name The name of the module to return.
142 *
143 * @return Visualizer_Module|null Returns a module if it was registered or NULL.
144 */
145 public function getModule( $name ) {
146 return isset( $this->_modules[ $name ] ) ? $this->_modules[ $name ] : null;
147 }
148
149 /**
150 * Determines whether the module has been registered or not.
151 *
152 * @since 1.0.0
153 *
154 * @access public
155 *
156 * @param string $name The name of a module to check.
157 *
158 * @return boolean TRUE if the module has been registered. Otherwise FALSE.
159 */
160 public function hasModule( $name ) {
161 return isset( $this->_modules[ $name ] );
162 }
163
164 /**
165 * Register new module in the plugin.
166 *
167 * @since 1.0.0
168 *
169 * @access public
170 *
171 * @param string $class The name of the module to use in the plugin.
172 */
173 public function setModule( $class ) {
174 $this->_modules[ $class ] = new $class( $this );
175 }
176
177 /**
178 * Private clone method.
179 *
180 * @since 1.0.0
181 *
182 * @access private
183 */
184 private function __clone() {
185 }
186
187 }
188