PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 1.5.3
Visualizer – Tables & Charts Manager with Built-in AI Generator v1.5.3
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/Render.php +155 -218 4.0.61.5.3 View file →
@@ -1,218 +1,155 @@
1 -<?php
2 -
3 -// +----------------------------------------------------------------------+
4 -// | Copyright 2013 Madpixels (email : visualizer@madpixels.net) |
5 -// +----------------------------------------------------------------------+
6 -// | This program is free software; you can redistribute it and/or modify |
7 -// | it under the terms of the GNU General Public License, version 2, as |
8 -// | published by the Free Software Foundation. |
9 -// | |
10 -// | This program is distributed in the hope that it will be useful, |
11 -// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 -// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 -// | GNU General Public License for more details. |
14 -// | |
15 -// | You should have received a copy of the GNU General Public License |
16 -// | along with this program; if not, write to the Free Software |
17 -// | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, |
18 -// | MA 02110-1301 USA |
19 -// +----------------------------------------------------------------------+
20 -// | Author: Eugene Manuilov <eugene@manuilov.org> |
21 -// +----------------------------------------------------------------------+
22 -/**
23 - * Abstract render class implements all routine stuff required for template
24 - * rendering.
25 - *
26 - * @category Visualizer
27 - * @package Render
28 - *
29 - * @since 1.0.0
30 - * @abstract
31 - */
32 -abstract class Visualizer_Render {
33 -
34 - /**
35 - * The storage of all data associated with this render.
36 - *
37 - * @since 1.0.0
38 - *
39 - * @access protected
40 - * @var array
41 - */
42 - protected $_data;
43 -
44 - /**
45 - * Constructor.
46 - *
47 - * @since 1.0.0
48 - *
49 - * @access public
50 - * @param array $data The data what has to be associated with this render.
51 - */
52 - public function __construct( $data = array() ) {
53 - $this->_data = $data;
54 - }
55 -
56 - /**
57 - * Returns property associated with the render.
58 - *
59 - * @since 1.0.0
60 - *
61 - * @access public
62 - * @param string $name The name of a property.
63 - * @return mixed Returns mixed value of a property or NULL if a property doesn't exist.
64 - */
65 - public function __get( $name ) {
66 - return array_key_exists( $name, $this->_data ) ? $this->_data[ $name ] : null;
67 - }
68 -
69 - /**
70 - * Checks whether the render has specific property or not.
71 - *
72 - * @since 1.0.0
73 - *
74 - * @access public
75 - * @param string $name The key name.
76 - * @return boolean TRUE if the property exists, otherwise FALSE.
77 - */
78 - public function __isset( $name ) {
79 - return array_key_exists( $name, $this->_data );
80 - }
81 -
82 - /**
83 - * Associates the render with specific property.
84 - *
85 - * @since 1.0.0
86 - *
87 - * @access public
88 - * @param string $name The name of a property to associate.
89 - * @param mixed $value The value of a property.
90 - */
91 - public function __set( $name, $value ) {
92 - $this->_data[ $name ] = $value;
93 - }
94 -
95 - /**
96 - * Unassociates specific property from the render.
97 - *
98 - * @since 1.0.0
99 - *
100 - * @access public
101 - * @param string $name The name of the property to unassociate.
102 - */
103 - public function __unset( $name ) {
104 - unset( $this->_data[ $name ] );
105 - }
106 -
107 - /**
108 - * Renders template.
109 - *
110 - * @since 1.0.0
111 - *
112 - * @abstract
113 - * @access protected
114 - */
115 - abstract protected function _toHTML();
116 -
117 - /**
118 - * Builds template and return it as string.
119 - *
120 - * @since 1.0.0
121 - *
122 - * @access public
123 - * @return string
124 - */
125 - public function toHtml() {
126 - ob_start();
127 - $this->_toHTML();
128 - return ob_get_clean();
129 - }
130 -
131 - /**
132 - * Returns built template as string.
133 - *
134 - * @since 1.0.0
135 - *
136 - * @access public
137 - * @return type
138 - */
139 - public function __toString() {
140 - return $this->toHtml();
141 - }
142 -
143 - /**
144 - * Renders the template.
145 - *
146 - * @since 1.0.0
147 - *
148 - * @access public
149 - */
150 - public function render() {
151 - $this->_toHTML();
152 - }
153 -
154 - /**
155 - * Checks if the request is from Gutenberg.
156 - *
157 - * This happens when the chart is being added to a gutenberg block by inserting a visualizer block.
158 - *
159 - * @since ?
160 - *
161 - * @access protected
162 - * @return bool
163 - */
164 - protected function is_request_from_gutenberg() {
165 - global $post;
166 - require_once ABSPATH . 'wp-admin/includes/post.php';
167 - if ( $post && function_exists( 'use_block_editor_for_post' ) && use_block_editor_for_post( $post ) ) {
168 - do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'This request appears to be from Gutenberg block. Ignoring for chart %d', $post->ID ), 'debug', __FILE__, __LINE__ );
169 - return true;
170 - }
171 - return false;
172 - }
173 -
174 - /**
175 - * Gets the type of chart that is being rendered.
176 - *
177 - * This is useful if some type-specific functionality needs to be added.
178 - *
179 - * @since ?
180 - *
181 - * @access protected
182 - * @return string
183 - */
184 - protected function get_chart_type( $with_library = false ) {
185 - $lib_type = str_replace( 'Visualizer_Render_Sidebar_Type_', '', get_class( $this ) );
186 - if ( $with_library ) {
187 - return $lib_type;
188 - }
189 -
190 - $array = explode( '_', $lib_type );
191 - return end( $array );
192 - }
193 -
194 - /**
195 - * Determines if the type of chart can have a particular action.
196 - *
197 - * @since ?
198 - *
199 - * @access protected
200 - * @return bool
201 - */
202 - protected function can_chart_have_action( $action, $chart_id = null ) {
203 - $type = null;
204 - if ( ! $chart_id ) {
205 - $type = $this->get_chart_type( false );
206 - } else {
207 - $type = get_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_TYPE, true );
208 - $type = ucwords( $type );
209 - }
210 -
211 - switch ( $action ) {
212 - case 'image':
213 - return ! in_array( $type, array( 'Gauge', 'Tabular', 'DataTable', 'Table' ), true );
214 - }
215 -
216 - return true;
217 - }
218 -}
1 +<?php
2 +
3 +// +----------------------------------------------------------------------+
4 +// | Copyright 2013 Madpixels (email : visualizer@madpixels.net) |
5 +// +----------------------------------------------------------------------+
6 +// | This program is free software; you can redistribute it and/or modify |
7 +// | it under the terms of the GNU General Public License, version 2, as |
8 +// | published by the Free Software Foundation. |
9 +// | |
10 +// | This program is distributed in the hope that it will be useful, |
11 +// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 +// | GNU General Public License for more details. |
14 +// | |
15 +// | You should have received a copy of the GNU General Public License |
16 +// | along with this program; if not, write to the Free Software |
17 +// | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, |
18 +// | MA 02110-1301 USA |
19 +// +----------------------------------------------------------------------+
20 +// | Author: Eugene Manuilov <eugene@manuilov.org> |
21 +// +----------------------------------------------------------------------+
22 +
23 +/**
24 + * Abstract render class implements all routine stuff required for template
25 + * rendering.
26 + *
27 + * @category Visualizer
28 + * @package Render
29 + *
30 + * @since 1.0.0
31 + * @abstract
32 + */
33 +abstract class Visualizer_Render {
34 +
35 + /**
36 + * The storage of all data associated with this render.
37 + *
38 + * @since 1.0.0
39 + *
40 + * @access protected
41 + * @var array
42 + */
43 + protected $_data;
44 +
45 + /**
46 + * Constructor.
47 + *
48 + * @since 1.0.0
49 + *
50 + * @access public
51 + * @param array $data The data what has to be associated with this render.
52 + */
53 + public function __construct( $data = array() ) {
54 + $this->_data = $data;
55 + }
56 +
57 + /**
58 + * Returns property associated with the render.
59 + *
60 + * @since 1.0.0
61 + *
62 + * @access public
63 + * @param string $name The name of a property.
64 + * @return mixed Returns mixed value of a property or NULL if a property doesn't exist.
65 + */
66 + public function __get( $name ) {
67 + return array_key_exists( $name, $this->_data ) ? $this->_data[$name] : null;
68 + }
69 +
70 + /**
71 + * Checks whether the render has specific property or not.
72 + *
73 + * @since 1.0.0
74 + *
75 + * @access public
76 + * @param string $name
77 + * @return boolean TRUE if the property exists, otherwise FALSE.
78 + */
79 + public function __isset( $name ) {
80 + return array_key_exists( $name, $this->_data );
81 + }
82 +
83 + /**
84 + * Associates the render with specific property.
85 + *
86 + * @since 1.0.0
87 + *
88 + * @access public
89 + * @param string $name The name of a property to associate.
90 + * @param mixed $value The value of a property.
91 + */
92 + public function __set( $name, $value ) {
93 + $this->_data[$name] = $value;
94 + }
95 +
96 + /**
97 + * Unassociates specific property from the render.
98 + *
99 + * @since 1.0.0
100 + *
101 + * @access public
102 + * @param string $name The name of the property to unassociate.
103 + */
104 + public function __unset( $name ) {
105 + unset( $this->_data[$name] );
106 + }
107 +
108 + /**
109 + * Renders template.
110 + *
111 + * @since 1.0.0
112 + *
113 + * @abstract
114 + * @access protected
115 + */
116 + protected abstract function _toHTML();
117 +
118 + /**
119 + * Builds template and return it as string.
120 + *
121 + * @since 1.0.0
122 + *
123 + * @access public
124 + * @return string
125 + */
126 + public function toHtml() {
127 + ob_start();
128 + $this->_toHTML();
129 + return ob_get_clean();
130 + }
131 +
132 + /**
133 + * Returns built template as string.
134 + *
135 + * @since 1.0.0
136 + *
137 + * @access public
138 + * @return type
139 + */
140 + public function __toString() {
141 + return $this->toHtml();
142 + }
143 +
144 + /**
145 + * Renders the template.
146 + *
147 + * @since 1.0.0
148 + *
149 + * @access public
150 + */
151 + public function render() {
152 + $this->_toHTML();
153 + }
154 +
155 +}