PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 1.6.6
Visualizer – Tables & Charts Manager with Built-in AI Generator v1.6.6
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
← All changes | classes/Visualizer/Source.php +55 -101 3.1.01.6.6 View file →
@@ -1,5 +1,6 @@
1 1 <?php
2 +
2 3 // +----------------------------------------------------------------------+
3 4 // | Copyright 2013 Madpixels (email : visualizer@madpixels.net) |
4 5 // +----------------------------------------------------------------------+
5 6 // | This program is free software; you can redistribute it and/or modify |
@@ -17,8 +18,9 @@
17 18 // | MA 02110-1301 USA |
18 19 // +----------------------------------------------------------------------+
19 20 // | Author: Eugene Manuilov <eugene@manuilov.org> |
20 21 // +----------------------------------------------------------------------+
22 +
21 23 /**
22 24 * The abstract class for source managers.
23 25 *
24 26 * @category Visualizer
@@ -29,17 +31,8 @@
29 31 */
30 32 abstract class Visualizer_Source {
31 33
32 34 /**
33 - * The array of allowed types.
34 - *
35 - * @since 1.0.0
36 - *
37 - * @access protected
38 - * @var array
39 - */
40 - protected static $allowed_types = array( 'string', 'number', 'boolean', 'date', 'datetime', 'timeofday' );
41 - /**
42 35 * The array of data.
43 36 *
44 37 * @since 1.0.0
45 38 *
@@ -46,8 +39,9 @@
46 39 * @access protected
47 40 * @var array
48 41 */
49 42 protected $_data = array();
43 +
50 44 /**
51 45 * The array of series.
52 46 *
53 47 * @since 1.0.0
@@ -57,43 +51,8 @@
57 51 */
58 52 protected $_series = array();
59 53
60 54 /**
61 - * Return allowed types
62 - *
63 - * @since 1.0.1
64 - *
65 - * @static
66 - * @access public
67 - * @return array the allowed types
68 - */
69 - public static function getAllowedTypes() {
70 - return self::$allowed_types;
71 - }
72 -
73 - /**
74 - * Validates series tyeps.
75 - *
76 - * @since 1.0.1
77 - *
78 - * @static
79 - * @access protected
80 - *
81 - * @param array $types The icoming series types.
82 - *
83 - * @return boolean TRUE if sereis types are valid, otherwise FALSE.
84 - */
85 - protected static function _validateTypes( $types ) {
86 - foreach ( $types as $type ) {
87 - if ( ! in_array( $type, self::$allowed_types ) ) {
88 - return false;
89 - }
90 - }
91 -
92 - return true;
93 - }
94 -
95 - /**
96 55 * Returns source name.
97 56 *
98 57 * @since 1.0.0
99 58 *
@@ -149,72 +108,40 @@
149 108 return $this->_data;
150 109 }
151 110
152 111 /**
153 - * Re populates series if the source is dynamic.
154 - *
155 - * @since 1.1.0
156 - *
157 - * @access public
158 - *
159 - * @param array $series The actual array of series.
160 - * @param int $chart_id The chart id.
161 - *
162 - * @return array The re populated array of series or old one.
163 - */
164 - public function repopulateSeries( $series, $chart_id ) {
165 - return $series;
166 - }
167 -
168 - /**
169 - * Re populates data if the source is dynamic.
170 - *
171 - * @since 1.1.0
172 - *
173 - * @access public
174 - *
175 - * @param array $data The actual array of data.
176 - * @param int $chart_id The chart id.
177 - *
178 - * @return array The re populated array of data or old one.
179 - */
180 - public function repopulateData( $data, $chart_id ) {
181 - return $data;
182 - }
183 -
184 - /**
185 112 * Normalizes values according to series' type.
186 113 *
187 114 * @since 1.0.0
188 115 *
189 116 * @access protected
190 - *
191 117 * @param array $data The row of data.
192 - *
193 118 * @return array Normalized row of data.
194 119 */
195 120 protected function _normalizeData( $data ) {
196 121 // normalize values
197 - // error_log(print_r($data,true));
122 + //print_r($data);
198 123 foreach ( $this->_series as $i => $series ) {
199 124 // if no value exists for the seires, then add null
200 - if ( ! isset( $data[ $i ] ) ) {
201 - $data[ $i ] = null;
125 + if ( !isset( $data[$i] ) ) {
126 + $data[$i] = null;
202 127 }
203 - if ( is_null( $data[ $i ] ) ) {
128 +
129 + if ( is_null( $data[$i] ) && !is_numeric($data[$i])) {
204 130 continue;
205 131 }
132 +
206 133 switch ( $series['type'] ) {
207 134 case 'number':
208 - $data[ $i ] = ( is_numeric( $data[ $i ] ) ) ? floatval( $data[ $i ] ) : ( is_numeric( str_replace( ',', '', $data[ $i ] ) ) ? floatval( str_replace( ',', '', $data[ $i ] ) ) : null );
135 + $data[$i] = ( is_numeric($data[$i]) ) ? floatval( $data[$i] ) : null;
209 136 break;
210 137 case 'boolean':
211 - $data[ $i ] = ! empty( $data[ $i ] ) ? filter_var( $data[ $i ], FILTER_VALIDATE_BOOLEAN ) : null;
138 + $data[$i] = !empty( $data[$i] ) ? filter_validate( $data[$i], FILTER_VALIDATE_BOOLEAN ) : null;
212 139 break;
213 140 case 'timeofday':
214 - $date = new DateTime( '1984-03-16T' . $data[ $i ] );
141 + $date = new DateTime( '1984-03-16T' . $data[$i] );
215 142 if ( $date ) {
216 - $data[ $i ] = array(
143 + $data[$i] = array(
217 144 intval( $date->format( 'H' ) ),
218 145 intval( $date->format( 'i' ) ),
219 146 intval( $date->format( 's' ) ),
220 147 0,
@@ -220,32 +147,59 @@
220 147 0,
221 148 );
222 149 }
223 150 break;
224 - case 'string':
225 - $data[ $i ] = $this->toUTF8( $data[ $i ] );
226 - break;
227 151 }
228 152 }
229 -
230 - // error_log(print_r($data,true));
231 153 return $data;
232 154 }
233 155
156 + /**
157 + * Validates series tyeps.
158 + *
159 + * @since 1.0.1
160 + *
161 + * @static
162 + * @access protected
163 + * @param array $types The icoming series types.
164 + * @return boolean TRUE if sereis types are valid, otherwise FALSE.
165 + */
166 + protected static function _validateTypes( $types ) {
167 + $allowed_types = array( 'string', 'number', 'boolean', 'date', 'datetime', 'timeofday' );
168 + foreach ( $types as $type ) {
169 + if ( !in_array( $type, $allowed_types ) ) {
170 + return false;
171 + }
172 + }
234 173
174 + return true;
175 + }
176 +
235 177 /**
236 - * Converts values to UTF8, if required.
178 + * Re populates series if the source is dynamic.
237 179 *
238 - * @access protected
180 + * @since 1.1.0
239 181 *
240 - * @param string $datum The data to convert.
182 + * @access public
183 + * @param array $series The actual array of series.
184 + * @param int $chart_id The chart id.
185 + * @return array The re populated array of series or old one.
186 + */
187 + public function repopulateSeries( $series, $chart_id ) {
188 + return $series;
189 + }
190 +
191 + /**
192 + * Re populates data if the source is dynamic.
241 193 *
242 - * @return string The converted data.
194 + * @since 1.1.0
195 + *
196 + * @access public
197 + * @param array $data The actual array of data.
198 + * @param int $chart_id The chart id.
199 + * @return array The re populated array of data or old one.
243 200 */
244 - protected final function toUTF8( $datum ) {
245 - if ( ! function_exists( 'mb_detect_encoding' ) || mb_detect_encoding( $datum ) !== 'ASCII' ) {
246 - $datum = \ForceUTF8\Encoding::toUTF8( $datum );
247 - }
248 - return $datum;
201 + public function repopulateData( $data, $chart_id ) {
202 + return $data;
249 203 }
250 204
251 -}
205 +}