@@ -1,64 +1,64 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | class FrmDb { |
4 | - var $fields; |
|
5 | - var $forms; |
|
6 | - var $entries; |
|
7 | - var $entry_metas; |
|
8 | - |
|
9 | - public function __construct() { |
|
10 | - if ( ! defined('ABSPATH') ) { |
|
11 | - die('You are not allowed to call this page directly.'); |
|
12 | - } |
|
13 | - |
|
14 | - global $wpdb; |
|
15 | - $this->fields = $wpdb->prefix . 'frm_fields'; |
|
16 | - $this->forms = $wpdb->prefix . 'frm_forms'; |
|
17 | - $this->entries = $wpdb->prefix . 'frm_items'; |
|
18 | - $this->entry_metas = $wpdb->prefix . 'frm_item_metas'; |
|
19 | - } |
|
20 | - |
|
21 | - public function upgrade( $old_db_version = false ) { |
|
22 | - global $wpdb; |
|
23 | - //$frm_db_version is the version of the database we're moving to |
|
24 | - $frm_db_version = FrmAppHelper::$db_version; |
|
25 | - $old_db_version = (float) $old_db_version; |
|
26 | - if ( ! $old_db_version ) { |
|
27 | - $old_db_version = get_option('frm_db_version'); |
|
28 | - } |
|
29 | - |
|
30 | - if ( $frm_db_version != $old_db_version ) { |
|
4 | + var $fields; |
|
5 | + var $forms; |
|
6 | + var $entries; |
|
7 | + var $entry_metas; |
|
8 | + |
|
9 | + public function __construct() { |
|
10 | + if ( ! defined('ABSPATH') ) { |
|
11 | + die('You are not allowed to call this page directly.'); |
|
12 | + } |
|
13 | + |
|
14 | + global $wpdb; |
|
15 | + $this->fields = $wpdb->prefix . 'frm_fields'; |
|
16 | + $this->forms = $wpdb->prefix . 'frm_forms'; |
|
17 | + $this->entries = $wpdb->prefix . 'frm_items'; |
|
18 | + $this->entry_metas = $wpdb->prefix . 'frm_item_metas'; |
|
19 | + } |
|
20 | + |
|
21 | + public function upgrade( $old_db_version = false ) { |
|
22 | + global $wpdb; |
|
23 | + //$frm_db_version is the version of the database we're moving to |
|
24 | + $frm_db_version = FrmAppHelper::$db_version; |
|
25 | + $old_db_version = (float) $old_db_version; |
|
26 | + if ( ! $old_db_version ) { |
|
27 | + $old_db_version = get_option('frm_db_version'); |
|
28 | + } |
|
29 | + |
|
30 | + if ( $frm_db_version != $old_db_version ) { |
|
31 | 31 | // update rewrite rules for views and other custom post types |
32 | 32 | flush_rewrite_rules(); |
33 | 33 | |
34 | 34 | require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); |
35 | 35 | |
36 | - $this->create_tables(); |
|
37 | - $this->migrate_data($frm_db_version, $old_db_version); |
|
36 | + $this->create_tables(); |
|
37 | + $this->migrate_data($frm_db_version, $old_db_version); |
|
38 | 38 | |
39 | - /***** SAVE DB VERSION *****/ |
|
40 | - update_option('frm_db_version', $frm_db_version); |
|
39 | + /***** SAVE DB VERSION *****/ |
|
40 | + update_option('frm_db_version', $frm_db_version); |
|
41 | 41 | |
42 | - /**** ADD/UPDATE DEFAULT TEMPLATES ****/ |
|
43 | - FrmXMLController::add_default_templates(); |
|
44 | - } |
|
42 | + /**** ADD/UPDATE DEFAULT TEMPLATES ****/ |
|
43 | + FrmXMLController::add_default_templates(); |
|
44 | + } |
|
45 | 45 | |
46 | - do_action('frm_after_install'); |
|
46 | + do_action('frm_after_install'); |
|
47 | 47 | |
48 | - /**** update the styling settings ****/ |
|
48 | + /**** update the styling settings ****/ |
|
49 | 49 | if ( is_admin() && function_exists( 'get_filesystem_method' ) ) { |
50 | 50 | $frm_style = new FrmStyle(); |
51 | 51 | $frm_style->update( 'default' ); |
52 | 52 | } |
53 | - } |
|
53 | + } |
|
54 | 54 | |
55 | - public function collation() { |
|
56 | - global $wpdb; |
|
57 | - if ( ! $wpdb->has_cap( 'collation' ) ) { |
|
58 | - return ''; |
|
59 | - } |
|
55 | + public function collation() { |
|
56 | + global $wpdb; |
|
57 | + if ( ! $wpdb->has_cap( 'collation' ) ) { |
|
58 | + return ''; |
|
59 | + } |
|
60 | 60 | |
61 | - $charset_collate = ''; |
|
61 | + $charset_collate = ''; |
|
62 | 62 | if ( ! empty( $wpdb->charset ) ) { |
63 | 63 | $charset_collate .= ' DEFAULT CHARACTER SET ' . $wpdb->charset; |
64 | 64 | } |
@@ -67,14 +67,14 @@ discard block |
||
67 | 67 | $charset_collate .= ' COLLATE ' . $wpdb->collate; |
68 | 68 | } |
69 | 69 | |
70 | - return $charset_collate; |
|
71 | - } |
|
70 | + return $charset_collate; |
|
71 | + } |
|
72 | 72 | |
73 | - private function create_tables() { |
|
74 | - $charset_collate = $this->collation(); |
|
75 | - $sql = array(); |
|
73 | + private function create_tables() { |
|
74 | + $charset_collate = $this->collation(); |
|
75 | + $sql = array(); |
|
76 | 76 | |
77 | - /* Create/Upgrade Fields Table */ |
|
77 | + /* Create/Upgrade Fields Table */ |
|
78 | 78 | $sql[] = 'CREATE TABLE ' . $this->fields . ' ( |
79 | 79 | id int(11) NOT NULL auto_increment, |
80 | 80 | field_key varchar(100) default NULL, |
@@ -93,7 +93,7 @@ discard block |
||
93 | 93 | UNIQUE KEY field_key (field_key) |
94 | 94 | )'; |
95 | 95 | |
96 | - /* Create/Upgrade Forms Table */ |
|
96 | + /* Create/Upgrade Forms Table */ |
|
97 | 97 | $sql[] = 'CREATE TABLE ' . $this->forms . ' ( |
98 | 98 | id int(11) NOT NULL auto_increment, |
99 | 99 | form_key varchar(100) default NULL, |
@@ -111,7 +111,7 @@ discard block |
||
111 | 111 | UNIQUE KEY form_key (form_key) |
112 | 112 | )'; |
113 | 113 | |
114 | - /* Create/Upgrade Items Table */ |
|
114 | + /* Create/Upgrade Items Table */ |
|
115 | 115 | $sql[] = 'CREATE TABLE ' . $this->entries . ' ( |
116 | 116 | id int(11) NOT NULL auto_increment, |
117 | 117 | item_key varchar(100) default NULL, |
@@ -134,7 +134,7 @@ discard block |
||
134 | 134 | UNIQUE KEY item_key (item_key) |
135 | 135 | )'; |
136 | 136 | |
137 | - /* Create/Upgrade Meta Table */ |
|
137 | + /* Create/Upgrade Meta Table */ |
|
138 | 138 | $sql[] = 'CREATE TABLE ' . $this->entry_metas . ' ( |
139 | 139 | id int(11) NOT NULL auto_increment, |
140 | 140 | meta_value longtext default NULL, |
@@ -146,39 +146,39 @@ discard block |
||
146 | 146 | KEY item_id (item_id) |
147 | 147 | )'; |
148 | 148 | |
149 | - foreach ( $sql as $q ) { |
|
149 | + foreach ( $sql as $q ) { |
|
150 | 150 | if ( function_exists( 'dbDelta' ) ) { |
151 | 151 | dbDelta( $q . $charset_collate . ';' ); |
152 | 152 | } else { |
153 | 153 | global $wpdb; |
154 | 154 | $wpdb->query( $q . $charset_collate ); |
155 | 155 | } |
156 | - unset($q); |
|
157 | - } |
|
158 | - } |
|
156 | + unset($q); |
|
157 | + } |
|
158 | + } |
|
159 | 159 | |
160 | - /** |
|
161 | - * @param integer $frm_db_version |
|
162 | - */ |
|
160 | + /** |
|
161 | + * @param integer $frm_db_version |
|
162 | + */ |
|
163 | 163 | private function migrate_data( $frm_db_version, $old_db_version ) { |
164 | 164 | $migrations = array( 4, 6, 11, 16, 17, 23, 25 ); |
165 | - foreach ( $migrations as $migration ) { |
|
166 | - if ( $frm_db_version >= $migration && $old_db_version < $migration ) { |
|
165 | + foreach ( $migrations as $migration ) { |
|
166 | + if ( $frm_db_version >= $migration && $old_db_version < $migration ) { |
|
167 | 167 | $function_name = 'migrate_to_' . $migration; |
168 | - $this->$function_name(); |
|
169 | - } |
|
170 | - } |
|
171 | - } |
|
172 | - |
|
173 | - /** |
|
174 | - * Change array into format $wpdb->prepare can use |
|
175 | - */ |
|
176 | - public static function get_where_clause_and_values( &$args, $starts_with = ' WHERE ' ) { |
|
177 | - if ( empty($args) ) { |
|
168 | + $this->$function_name(); |
|
169 | + } |
|
170 | + } |
|
171 | + } |
|
172 | + |
|
173 | + /** |
|
174 | + * Change array into format $wpdb->prepare can use |
|
175 | + */ |
|
176 | + public static function get_where_clause_and_values( &$args, $starts_with = ' WHERE ' ) { |
|
177 | + if ( empty($args) ) { |
|
178 | 178 | // add an arg to prevent prepare from failing |
179 | 179 | $args = array( 'where' => $starts_with . '1=%d', 'values' => array( 1 ) ); |
180 | 180 | return; |
181 | - } |
|
181 | + } |
|
182 | 182 | |
183 | 183 | $where = ''; |
184 | 184 | $values = array(); |
@@ -189,60 +189,60 @@ discard block |
||
189 | 189 | } |
190 | 190 | |
191 | 191 | $args = compact( 'where', 'values' ); |
192 | - } |
|
193 | - |
|
194 | - /** |
|
195 | - * @param string $base_where |
|
196 | - * @param string $where |
|
197 | - */ |
|
198 | - public static function parse_where_from_array( $args, $base_where, &$where, &$values ) { |
|
199 | - $condition = ' AND'; |
|
200 | - if ( isset( $args['or'] ) ) { |
|
201 | - $condition = ' OR'; |
|
202 | - unset( $args['or'] ); |
|
203 | - } |
|
204 | - |
|
205 | - foreach ( $args as $key => $value ) { |
|
206 | - $where .= empty( $where ) ? $base_where : $condition; |
|
207 | - $array_inc_null = ( ! is_numeric( $key ) && is_array( $value ) && in_array( null, $value ) ); |
|
208 | - if ( is_numeric( $key ) || $array_inc_null ) { |
|
209 | - $where .= ' ( '; |
|
210 | - $nested_where = ''; |
|
211 | - if ( $array_inc_null ) { |
|
212 | - foreach ( $value as $val ) { |
|
213 | - self::parse_where_from_array( array( $key => $val, 'or' => 1 ), '', $nested_where, $values ); |
|
214 | - } |
|
215 | - } else { |
|
216 | - self::parse_where_from_array( $value, '', $nested_where, $values ); |
|
217 | - } |
|
218 | - $where .= $nested_where; |
|
219 | - $where .= ' ) '; |
|
220 | - } else { |
|
221 | - self::interpret_array_to_sql( $key, $value, $where, $values ); |
|
222 | - } |
|
223 | - } |
|
224 | - } |
|
225 | - |
|
226 | - /** |
|
227 | - * @param string $key |
|
228 | - * @param string $where |
|
229 | - */ |
|
230 | - private static function interpret_array_to_sql( $key, $value, &$where, &$values ) { |
|
192 | + } |
|
193 | + |
|
194 | + /** |
|
195 | + * @param string $base_where |
|
196 | + * @param string $where |
|
197 | + */ |
|
198 | + public static function parse_where_from_array( $args, $base_where, &$where, &$values ) { |
|
199 | + $condition = ' AND'; |
|
200 | + if ( isset( $args['or'] ) ) { |
|
201 | + $condition = ' OR'; |
|
202 | + unset( $args['or'] ); |
|
203 | + } |
|
204 | + |
|
205 | + foreach ( $args as $key => $value ) { |
|
206 | + $where .= empty( $where ) ? $base_where : $condition; |
|
207 | + $array_inc_null = ( ! is_numeric( $key ) && is_array( $value ) && in_array( null, $value ) ); |
|
208 | + if ( is_numeric( $key ) || $array_inc_null ) { |
|
209 | + $where .= ' ( '; |
|
210 | + $nested_where = ''; |
|
211 | + if ( $array_inc_null ) { |
|
212 | + foreach ( $value as $val ) { |
|
213 | + self::parse_where_from_array( array( $key => $val, 'or' => 1 ), '', $nested_where, $values ); |
|
214 | + } |
|
215 | + } else { |
|
216 | + self::parse_where_from_array( $value, '', $nested_where, $values ); |
|
217 | + } |
|
218 | + $where .= $nested_where; |
|
219 | + $where .= ' ) '; |
|
220 | + } else { |
|
221 | + self::interpret_array_to_sql( $key, $value, $where, $values ); |
|
222 | + } |
|
223 | + } |
|
224 | + } |
|
225 | + |
|
226 | + /** |
|
227 | + * @param string $key |
|
228 | + * @param string $where |
|
229 | + */ |
|
230 | + private static function interpret_array_to_sql( $key, $value, &$where, &$values ) { |
|
231 | 231 | $key = trim( $key ); |
232 | 232 | |
233 | - if ( strpos( $key, 'created_at' ) !== false || strpos( $key, 'updated_at' ) !== false ) { |
|
234 | - $k = explode(' ', $key); |
|
235 | - $where .= ' DATE_FORMAT(' . reset( $k ) . ', %s) ' . str_replace( reset( $k ), '', $key ); |
|
236 | - $values[] = '%Y-%m-%d %H:%i:%s'; |
|
237 | - } else { |
|
233 | + if ( strpos( $key, 'created_at' ) !== false || strpos( $key, 'updated_at' ) !== false ) { |
|
234 | + $k = explode(' ', $key); |
|
235 | + $where .= ' DATE_FORMAT(' . reset( $k ) . ', %s) ' . str_replace( reset( $k ), '', $key ); |
|
236 | + $values[] = '%Y-%m-%d %H:%i:%s'; |
|
237 | + } else { |
|
238 | 238 | $where .= ' ' . $key; |
239 | - } |
|
239 | + } |
|
240 | 240 | |
241 | 241 | $lowercase_key = explode( ' ', strtolower( $key ) ); |
242 | 242 | $lowercase_key = end( $lowercase_key ); |
243 | 243 | |
244 | - if ( is_array( $value ) ) { |
|
245 | - // translate array of values to "in" |
|
244 | + if ( is_array( $value ) ) { |
|
245 | + // translate array of values to "in" |
|
246 | 246 | if ( strpos( $lowercase_key, 'like' ) !== false ) { |
247 | 247 | $where = preg_replace('/' . $key . '$/', '', $where); |
248 | 248 | $where .= '('; |
@@ -260,7 +260,7 @@ discard block |
||
260 | 260 | $where .= ' in (' . FrmAppHelper::prepare_array_values( $value, '%s' ) . ')'; |
261 | 261 | $values = array_merge( $values, $value ); |
262 | 262 | } |
263 | - } else if ( strpos( $lowercase_key, 'like' ) !== false ) { |
|
263 | + } else if ( strpos( $lowercase_key, 'like' ) !== false ) { |
|
264 | 264 | /** |
265 | 265 | * Allow string to start or end with the value |
266 | 266 | * If the key is like% then skip the first % for starts with |
@@ -279,9 +279,9 @@ discard block |
||
279 | 279 | $where .= ' %s'; |
280 | 280 | $values[] = $start . FrmAppHelper::esc_like( $value ) . $end; |
281 | 281 | |
282 | - } else if ( $value === null ) { |
|
283 | - $where .= ' IS NULL'; |
|
284 | - } else { |
|
282 | + } else if ( $value === null ) { |
|
283 | + $where .= ' IS NULL'; |
|
284 | + } else { |
|
285 | 285 | // allow a - to prevent = from being added |
286 | 286 | if ( substr( $key, -1 ) == '-' ) { |
287 | 287 | $where = rtrim( $where, '-' ); |
@@ -291,9 +291,9 @@ discard block |
||
291 | 291 | |
292 | 292 | self::add_query_placeholder( $key, $value, $where ); |
293 | 293 | |
294 | - $values[] = $value; |
|
295 | - } |
|
296 | - } |
|
294 | + $values[] = $value; |
|
295 | + } |
|
296 | + } |
|
297 | 297 | |
298 | 298 | /** |
299 | 299 | * Add %d, or %s to query |
@@ -302,7 +302,7 @@ discard block |
||
302 | 302 | * @param int|string $value |
303 | 303 | * @param string $where |
304 | 304 | */ |
305 | - private static function add_query_placeholder( $key, $value, &$where ) { |
|
305 | + private static function add_query_placeholder( $key, $value, &$where ) { |
|
306 | 306 | if ( is_numeric( $value ) && strpos( $key, 'meta_value' ) === false ) { |
307 | 307 | $where .= '%d'; |
308 | 308 | } else { |
@@ -310,64 +310,64 @@ discard block |
||
310 | 310 | } |
311 | 311 | } |
312 | 312 | |
313 | - /** |
|
314 | - * @param string $table |
|
315 | - */ |
|
316 | - public static function get_count( $table, $where = array(), $args = array() ) { |
|
317 | - $count = self::get_var( $table, $where, 'COUNT(*)', $args ); |
|
318 | - return $count; |
|
319 | - } |
|
320 | - |
|
321 | - public static function get_var( $table, $where = array(), $field = 'id', $args = array(), $limit = '', $type = 'var' ) { |
|
322 | - $group = ''; |
|
323 | - self::get_group_and_table_name( $table, $group ); |
|
313 | + /** |
|
314 | + * @param string $table |
|
315 | + */ |
|
316 | + public static function get_count( $table, $where = array(), $args = array() ) { |
|
317 | + $count = self::get_var( $table, $where, 'COUNT(*)', $args ); |
|
318 | + return $count; |
|
319 | + } |
|
320 | + |
|
321 | + public static function get_var( $table, $where = array(), $field = 'id', $args = array(), $limit = '', $type = 'var' ) { |
|
322 | + $group = ''; |
|
323 | + self::get_group_and_table_name( $table, $group ); |
|
324 | 324 | self::convert_options_to_array( $args, '', $limit ); |
325 | 325 | |
326 | 326 | $query = self::generate_query_string_from_pieces( $field, $table, $where, $args ); |
327 | 327 | |
328 | 328 | $cache_key = str_replace( array( ' ', ',' ), '_', trim( implode( '_', FrmAppHelper::array_flatten( $where ) ) . implode( '_', $args ) . $field . '_' . $type, ' WHERE' ) ); |
329 | 329 | $results = FrmAppHelper::check_cache( $cache_key, $group, $query, 'get_' . $type ); |
330 | - return $results; |
|
331 | - } |
|
332 | - |
|
333 | - /** |
|
334 | - * @param string $table |
|
335 | - * @param array $where |
|
336 | - */ |
|
337 | - public static function get_col( $table, $where = array(), $field = 'id', $args = array(), $limit = '' ) { |
|
338 | - return self::get_var( $table, $where, $field, $args, $limit, 'col' ); |
|
339 | - } |
|
340 | - |
|
341 | - /** |
|
342 | - * @since 2.0 |
|
343 | - * @param string $table |
|
344 | - */ |
|
345 | - public static function get_row( $table, $where = array(), $fields = '*', $args = array() ) { |
|
346 | - $args['limit'] = 1; |
|
347 | - return self::get_var( $table, $where, $fields, $args, '', 'row' ); |
|
348 | - } |
|
349 | - |
|
350 | - /** |
|
351 | - * @param string $table |
|
352 | - */ |
|
353 | - public static function get_one_record( $table, $args = array(), $fields = '*', $order_by = '' ) { |
|
354 | - _deprecated_function( __FUNCTION__, '2.0', 'FrmDb::get_row' ); |
|
330 | + return $results; |
|
331 | + } |
|
332 | + |
|
333 | + /** |
|
334 | + * @param string $table |
|
335 | + * @param array $where |
|
336 | + */ |
|
337 | + public static function get_col( $table, $where = array(), $field = 'id', $args = array(), $limit = '' ) { |
|
338 | + return self::get_var( $table, $where, $field, $args, $limit, 'col' ); |
|
339 | + } |
|
340 | + |
|
341 | + /** |
|
342 | + * @since 2.0 |
|
343 | + * @param string $table |
|
344 | + */ |
|
345 | + public static function get_row( $table, $where = array(), $fields = '*', $args = array() ) { |
|
346 | + $args['limit'] = 1; |
|
347 | + return self::get_var( $table, $where, $fields, $args, '', 'row' ); |
|
348 | + } |
|
349 | + |
|
350 | + /** |
|
351 | + * @param string $table |
|
352 | + */ |
|
353 | + public static function get_one_record( $table, $args = array(), $fields = '*', $order_by = '' ) { |
|
354 | + _deprecated_function( __FUNCTION__, '2.0', 'FrmDb::get_row' ); |
|
355 | 355 | return self::get_var( $table, $args, $fields, array( 'order_by' => $order_by, 'limit' => 1 ), '', 'row' ); |
356 | - } |
|
357 | - |
|
358 | - public static function get_records( $table, $args = array(), $order_by = '', $limit = '', $fields = '*' ) { |
|
359 | - _deprecated_function( __FUNCTION__, '2.0', 'FrmDb::get_results' ); |
|
360 | - return self::get_results( $table, $args, $fields, compact('order_by', 'limit') ); |
|
361 | - } |
|
362 | - |
|
363 | - /** |
|
364 | - * Prepare a key/value array before DB call |
|
365 | - * @since 2.0 |
|
366 | - * @param string $table |
|
367 | - */ |
|
368 | - public static function get_results( $table, $where = array(), $fields = '*', $args = array() ) { |
|
369 | - return self::get_var( $table, $where, $fields, $args, '', 'results' ); |
|
370 | - } |
|
356 | + } |
|
357 | + |
|
358 | + public static function get_records( $table, $args = array(), $order_by = '', $limit = '', $fields = '*' ) { |
|
359 | + _deprecated_function( __FUNCTION__, '2.0', 'FrmDb::get_results' ); |
|
360 | + return self::get_results( $table, $args, $fields, compact('order_by', 'limit') ); |
|
361 | + } |
|
362 | + |
|
363 | + /** |
|
364 | + * Prepare a key/value array before DB call |
|
365 | + * @since 2.0 |
|
366 | + * @param string $table |
|
367 | + */ |
|
368 | + public static function get_results( $table, $where = array(), $fields = '*', $args = array() ) { |
|
369 | + return self::get_var( $table, $where, $fields, $args, '', 'results' ); |
|
370 | + } |
|
371 | 371 | |
372 | 372 | /** |
373 | 373 | * Check for like, not like, in, not in, =, !=, >, <, <=, >= |
@@ -403,59 +403,59 @@ discard block |
||
403 | 403 | return ''; |
404 | 404 | } |
405 | 405 | |
406 | - /** |
|
407 | - * Get 'frm_forms' from wp_frm_forms or a longer table param that includes a join |
|
408 | - * Also add the wpdb->prefix to the table if it's missing |
|
409 | - * |
|
410 | - * @param string $table |
|
411 | - * @param string $group |
|
412 | - */ |
|
413 | - private static function get_group_and_table_name( &$table, &$group ) { |
|
406 | + /** |
|
407 | + * Get 'frm_forms' from wp_frm_forms or a longer table param that includes a join |
|
408 | + * Also add the wpdb->prefix to the table if it's missing |
|
409 | + * |
|
410 | + * @param string $table |
|
411 | + * @param string $group |
|
412 | + */ |
|
413 | + private static function get_group_and_table_name( &$table, &$group ) { |
|
414 | 414 | global $wpdb, $wpmuBaseTablePrefix; |
415 | 415 | |
416 | - $table_parts = explode(' ', $table); |
|
417 | - $group = reset($table_parts); |
|
418 | - $group = str_replace( $wpdb->prefix, '', $group ); |
|
416 | + $table_parts = explode(' ', $table); |
|
417 | + $group = reset($table_parts); |
|
418 | + $group = str_replace( $wpdb->prefix, '', $group ); |
|
419 | 419 | |
420 | 420 | $prefix = $wpmuBaseTablePrefix ? $wpmuBaseTablePrefix : $wpdb->base_prefix; |
421 | 421 | $group = str_replace( $prefix, '', $group ); |
422 | 422 | |
423 | - if ( $group == $table ) { |
|
424 | - $table = $wpdb->prefix . $table; |
|
425 | - } |
|
423 | + if ( $group == $table ) { |
|
424 | + $table = $wpdb->prefix . $table; |
|
425 | + } |
|
426 | 426 | |
427 | 427 | // switch to singular group name |
428 | 428 | $group = rtrim( $group, 's' ); |
429 | - } |
|
429 | + } |
|
430 | 430 | |
431 | - private static function convert_options_to_array( &$args, $order_by = '', $limit = '' ) { |
|
432 | - if ( ! is_array($args) ) { |
|
431 | + private static function convert_options_to_array( &$args, $order_by = '', $limit = '' ) { |
|
432 | + if ( ! is_array($args) ) { |
|
433 | 433 | $args = array( 'order_by' => $args ); |
434 | - } |
|
434 | + } |
|
435 | 435 | |
436 | - if ( ! empty( $order_by ) ) { |
|
437 | - $args['order_by'] = $order_by; |
|
438 | - } |
|
436 | + if ( ! empty( $order_by ) ) { |
|
437 | + $args['order_by'] = $order_by; |
|
438 | + } |
|
439 | 439 | |
440 | - if ( ! empty( $limit ) ) { |
|
441 | - $args['limit'] = $limit; |
|
442 | - } |
|
440 | + if ( ! empty( $limit ) ) { |
|
441 | + $args['limit'] = $limit; |
|
442 | + } |
|
443 | 443 | |
444 | - $temp_args = $args; |
|
445 | - foreach ( $temp_args as $k => $v ) { |
|
446 | - if ( $v == '' ) { |
|
444 | + $temp_args = $args; |
|
445 | + foreach ( $temp_args as $k => $v ) { |
|
446 | + if ( $v == '' ) { |
|
447 | 447 | unset( $args[ $k ] ); |
448 | - continue; |
|
449 | - } |
|
448 | + continue; |
|
449 | + } |
|
450 | 450 | |
451 | - if ( $k == 'limit' ) { |
|
451 | + if ( $k == 'limit' ) { |
|
452 | 452 | $args[ $k ] = FrmAppHelper::esc_limit( $v ); |
453 | - } |
|
454 | - $db_name = strtoupper( str_replace( '_', ' ', $k ) ); |
|
455 | - if ( strpos( $v, $db_name ) === false ) { |
|
453 | + } |
|
454 | + $db_name = strtoupper( str_replace( '_', ' ', $k ) ); |
|
455 | + if ( strpos( $v, $db_name ) === false ) { |
|
456 | 456 | $args[ $k ] = $db_name . ' ' . $v; |
457 | - } |
|
458 | - } |
|
457 | + } |
|
458 | + } |
|
459 | 459 | |
460 | 460 | // Make sure LIMIT is the last argument |
461 | 461 | if ( isset( $args['order_by'] ) && isset( $args['limit'] ) ) { |
@@ -463,7 +463,7 @@ discard block |
||
463 | 463 | unset( $args['limit'] ); |
464 | 464 | $args['limit'] = $temp_limit; |
465 | 465 | } |
466 | - } |
|
466 | + } |
|
467 | 467 | |
468 | 468 | /** |
469 | 469 | * Get the associative array results for the given columns, table, and where query |
@@ -516,31 +516,31 @@ discard block |
||
516 | 516 | return $query; |
517 | 517 | } |
518 | 518 | |
519 | - public function uninstall() { |
|
519 | + public function uninstall() { |
|
520 | 520 | if ( ! current_user_can( 'administrator' ) ) { |
521 | - $frm_settings = FrmAppHelper::get_settings(); |
|
522 | - wp_die($frm_settings->admin_permission); |
|
523 | - } |
|
521 | + $frm_settings = FrmAppHelper::get_settings(); |
|
522 | + wp_die($frm_settings->admin_permission); |
|
523 | + } |
|
524 | 524 | |
525 | - global $wpdb, $wp_roles; |
|
525 | + global $wpdb, $wp_roles; |
|
526 | 526 | |
527 | 527 | $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->fields ); |
528 | 528 | $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->forms ); |
529 | 529 | $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->entries ); |
530 | 530 | $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->entry_metas ); |
531 | 531 | |
532 | - delete_option('frm_options'); |
|
533 | - delete_option('frm_db_version'); |
|
532 | + delete_option('frm_options'); |
|
533 | + delete_option('frm_db_version'); |
|
534 | 534 | |
535 | - //delete roles |
|
536 | - $frm_roles = FrmAppHelper::frm_capabilities(); |
|
537 | - $roles = get_editable_roles(); |
|
538 | - foreach ( $frm_roles as $frm_role => $frm_role_description ) { |
|
539 | - foreach ( $roles as $role => $details ) { |
|
540 | - $wp_roles->remove_cap( $role, $frm_role ); |
|
541 | - unset($role, $details); |
|
542 | - } |
|
543 | - unset($frm_role, $frm_role_description); |
|
535 | + //delete roles |
|
536 | + $frm_roles = FrmAppHelper::frm_capabilities(); |
|
537 | + $roles = get_editable_roles(); |
|
538 | + foreach ( $frm_roles as $frm_role => $frm_role_description ) { |
|
539 | + foreach ( $roles as $role => $details ) { |
|
540 | + $wp_roles->remove_cap( $role, $frm_role ); |
|
541 | + unset($role, $details); |
|
542 | + } |
|
543 | + unset($frm_role, $frm_role_description); |
|
544 | 544 | } |
545 | 545 | unset($roles, $frm_roles); |
546 | 546 | |
@@ -564,9 +564,9 @@ discard block |
||
564 | 564 | |
565 | 565 | $wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->options . ' WHERE option_name LIKE %s OR option_name LIKE %s', '_transient_timeout_frm_form_fields_%', '_transient_frm_form_fields_%' ) ); |
566 | 566 | |
567 | - do_action('frm_after_uninstall'); |
|
568 | - return true; |
|
569 | - } |
|
567 | + do_action('frm_after_uninstall'); |
|
568 | + return true; |
|
569 | + } |
|
570 | 570 | |
571 | 571 | /** |
572 | 572 | * Migrate old styling settings. If sites are using the old |
@@ -605,150 +605,150 @@ discard block |
||
605 | 605 | } |
606 | 606 | } |
607 | 607 | |
608 | - /** |
|
609 | - * Change field size from character to pixel -- Multiply by 9 |
|
610 | - */ |
|
611 | - private function migrate_to_17() { |
|
612 | - global $wpdb; |
|
608 | + /** |
|
609 | + * Change field size from character to pixel -- Multiply by 9 |
|
610 | + */ |
|
611 | + private function migrate_to_17() { |
|
612 | + global $wpdb; |
|
613 | 613 | $pixel_conversion = 9; |
614 | 614 | |
615 | - // Get query arguments |
|
615 | + // Get query arguments |
|
616 | 616 | $field_types = array( 'textarea', 'text', 'number', 'email', 'url', 'rte', 'date', 'phone', 'password', 'image', 'tag', 'file' ); |
617 | 617 | $query = array( 'type' => $field_types, 'field_options like' => 's:4:"size";', 'field_options not like' => 's:4:"size";s:0:' ); |
618 | 618 | |
619 | - // Get results |
|
619 | + // Get results |
|
620 | 620 | $fields = FrmDb::get_results( $this->fields, $query, 'id, field_options' ); |
621 | 621 | |
622 | - $updated = 0; |
|
623 | - foreach ( $fields as $f ) { |
|
624 | - $f->field_options = maybe_unserialize($f->field_options); |
|
625 | - if ( empty($f->field_options['size']) || ! is_numeric($f->field_options['size']) ) { |
|
626 | - continue; |
|
627 | - } |
|
622 | + $updated = 0; |
|
623 | + foreach ( $fields as $f ) { |
|
624 | + $f->field_options = maybe_unserialize($f->field_options); |
|
625 | + if ( empty($f->field_options['size']) || ! is_numeric($f->field_options['size']) ) { |
|
626 | + continue; |
|
627 | + } |
|
628 | 628 | |
629 | 629 | $f->field_options['size'] = round( $pixel_conversion * (int) $f->field_options['size'] ); |
630 | - $f->field_options['size'] .= 'px'; |
|
631 | - $u = FrmField::update( $f->id, array( 'field_options' => $f->field_options ) ); |
|
632 | - if ( $u ) { |
|
633 | - $updated++; |
|
634 | - } |
|
635 | - unset($f); |
|
636 | - } |
|
637 | - |
|
638 | - // Change the characters in widgets to pixels |
|
639 | - $widgets = get_option('widget_frm_show_form'); |
|
640 | - if ( empty($widgets) ) { |
|
641 | - return; |
|
642 | - } |
|
643 | - |
|
644 | - $widgets = maybe_unserialize($widgets); |
|
645 | - foreach ( $widgets as $k => $widget ) { |
|
646 | - if ( ! is_array($widget) || ! isset($widget['size']) ) { |
|
647 | - continue; |
|
648 | - } |
|
630 | + $f->field_options['size'] .= 'px'; |
|
631 | + $u = FrmField::update( $f->id, array( 'field_options' => $f->field_options ) ); |
|
632 | + if ( $u ) { |
|
633 | + $updated++; |
|
634 | + } |
|
635 | + unset($f); |
|
636 | + } |
|
637 | + |
|
638 | + // Change the characters in widgets to pixels |
|
639 | + $widgets = get_option('widget_frm_show_form'); |
|
640 | + if ( empty($widgets) ) { |
|
641 | + return; |
|
642 | + } |
|
643 | + |
|
644 | + $widgets = maybe_unserialize($widgets); |
|
645 | + foreach ( $widgets as $k => $widget ) { |
|
646 | + if ( ! is_array($widget) || ! isset($widget['size']) ) { |
|
647 | + continue; |
|
648 | + } |
|
649 | 649 | $size = round( $pixel_conversion * (int) $widget['size'] ); |
650 | - $size .= 'px'; |
|
650 | + $size .= 'px'; |
|
651 | 651 | $widgets[ $k ]['size'] = $size; |
652 | - } |
|
653 | - update_option('widget_frm_show_form', $widgets); |
|
654 | - } |
|
655 | - |
|
656 | - /** |
|
657 | - * Migrate post and email notification settings into actions |
|
658 | - */ |
|
659 | - private function migrate_to_16() { |
|
660 | - global $wpdb; |
|
661 | - |
|
662 | - $forms = FrmDb::get_results( $this->forms, array(), 'id, options, is_template, default_template' ); |
|
663 | - |
|
664 | - /** |
|
665 | - * Old email settings format: |
|
666 | - * email_to: Email or field id |
|
667 | - * also_email_to: array of fields ids |
|
668 | - * reply_to: Email, field id, 'custom' |
|
669 | - * cust_reply_to: string |
|
670 | - * reply_to_name: field id, 'custom' |
|
671 | - * cust_reply_to_name: string |
|
672 | - * plain_text: 0|1 |
|
673 | - * email_message: string or '' |
|
674 | - * email_subject: string or '' |
|
675 | - * inc_user_info: 0|1 |
|
676 | - * update_email: 0, 1, 2 |
|
677 | - * |
|
678 | - * Old autoresponder settings format: |
|
679 | - * auto_responder: 0|1 |
|
680 | - * ar_email_message: string or '' |
|
681 | - * ar_email_to: field id |
|
682 | - * ar_plain_text: 0|1 |
|
683 | - * ar_reply_to_name: string |
|
684 | - * ar_reply_to: string |
|
685 | - * ar_email_subject: string |
|
686 | - * ar_update_email: 0, 1, 2 |
|
687 | - * |
|
688 | - * New email settings: |
|
689 | - * post_content: json settings |
|
690 | - * post_title: form id |
|
691 | - * post_excerpt: message |
|
692 | - * |
|
693 | - */ |
|
694 | - |
|
695 | - foreach ( $forms as $form ) { |
|
652 | + } |
|
653 | + update_option('widget_frm_show_form', $widgets); |
|
654 | + } |
|
655 | + |
|
656 | + /** |
|
657 | + * Migrate post and email notification settings into actions |
|
658 | + */ |
|
659 | + private function migrate_to_16() { |
|
660 | + global $wpdb; |
|
661 | + |
|
662 | + $forms = FrmDb::get_results( $this->forms, array(), 'id, options, is_template, default_template' ); |
|
663 | + |
|
664 | + /** |
|
665 | + * Old email settings format: |
|
666 | + * email_to: Email or field id |
|
667 | + * also_email_to: array of fields ids |
|
668 | + * reply_to: Email, field id, 'custom' |
|
669 | + * cust_reply_to: string |
|
670 | + * reply_to_name: field id, 'custom' |
|
671 | + * cust_reply_to_name: string |
|
672 | + * plain_text: 0|1 |
|
673 | + * email_message: string or '' |
|
674 | + * email_subject: string or '' |
|
675 | + * inc_user_info: 0|1 |
|
676 | + * update_email: 0, 1, 2 |
|
677 | + * |
|
678 | + * Old autoresponder settings format: |
|
679 | + * auto_responder: 0|1 |
|
680 | + * ar_email_message: string or '' |
|
681 | + * ar_email_to: field id |
|
682 | + * ar_plain_text: 0|1 |
|
683 | + * ar_reply_to_name: string |
|
684 | + * ar_reply_to: string |
|
685 | + * ar_email_subject: string |
|
686 | + * ar_update_email: 0, 1, 2 |
|
687 | + * |
|
688 | + * New email settings: |
|
689 | + * post_content: json settings |
|
690 | + * post_title: form id |
|
691 | + * post_excerpt: message |
|
692 | + * |
|
693 | + */ |
|
694 | + |
|
695 | + foreach ( $forms as $form ) { |
|
696 | 696 | if ( $form->is_template && $form->default_template ) { |
697 | 697 | // don't migrate the default templates since the email will be added anyway |
698 | 698 | continue; |
699 | 699 | } |
700 | 700 | |
701 | - // Format form options |
|
702 | - $form_options = maybe_unserialize($form->options); |
|
701 | + // Format form options |
|
702 | + $form_options = maybe_unserialize($form->options); |
|
703 | 703 | |
704 | - // Migrate settings to actions |
|
705 | - FrmXMLHelper::migrate_form_settings_to_actions( $form_options, $form->id ); |
|
706 | - } |
|
707 | - } |
|
704 | + // Migrate settings to actions |
|
705 | + FrmXMLHelper::migrate_form_settings_to_actions( $form_options, $form->id ); |
|
706 | + } |
|
707 | + } |
|
708 | 708 | |
709 | - private function migrate_to_11() { |
|
710 | - global $wpdb; |
|
709 | + private function migrate_to_11() { |
|
710 | + global $wpdb; |
|
711 | 711 | |
712 | - $forms = FrmDb::get_results( $this->forms, array(), 'id, options'); |
|
712 | + $forms = FrmDb::get_results( $this->forms, array(), 'id, options'); |
|
713 | 713 | |
714 | - $sending = __( 'Sending', 'formidable' ); |
|
714 | + $sending = __( 'Sending', 'formidable' ); |
|
715 | 715 | $img = FrmAppHelper::plugin_url() . '/images/ajax_loader.gif'; |
716 | - $old_default_html = <<<DEFAULT_HTML |
|
716 | + $old_default_html = <<<DEFAULT_HTML |
|
717 | 717 | <div class="frm_submit"> |
718 | 718 | [if back_button]<input type="submit" value="[back_label]" name="frm_prev_page" formnovalidate="formnovalidate" [back_hook] />[/if back_button] |
719 | 719 | <input type="submit" value="[button_label]" [button_action] /> |
720 | 720 | <img class="frm_ajax_loading" src="$img" alt="$sending" style="visibility:hidden;" /> |
721 | 721 | </div> |
722 | 722 | DEFAULT_HTML; |
723 | - unset($sending, $img); |
|
723 | + unset($sending, $img); |
|
724 | 724 | |
725 | - $new_default_html = FrmFormsHelper::get_default_html('submit'); |
|
726 | - $draft_link = FrmFormsHelper::get_draft_link(); |
|
725 | + $new_default_html = FrmFormsHelper::get_default_html('submit'); |
|
726 | + $draft_link = FrmFormsHelper::get_draft_link(); |
|
727 | 727 | foreach ( $forms as $form ) { |
728 | - $form->options = maybe_unserialize($form->options); |
|
729 | - if ( ! isset($form->options['submit_html']) || empty($form->options['submit_html']) ) { |
|
730 | - continue; |
|
731 | - } |
|
728 | + $form->options = maybe_unserialize($form->options); |
|
729 | + if ( ! isset($form->options['submit_html']) || empty($form->options['submit_html']) ) { |
|
730 | + continue; |
|
731 | + } |
|
732 | 732 | |
733 | - if ( $form->options['submit_html'] != $new_default_html && $form->options['submit_html'] == $old_default_html ) { |
|
734 | - $form->options['submit_html'] = $new_default_html; |
|
733 | + if ( $form->options['submit_html'] != $new_default_html && $form->options['submit_html'] == $old_default_html ) { |
|
734 | + $form->options['submit_html'] = $new_default_html; |
|
735 | 735 | $wpdb->update( $this->forms, array( 'options' => serialize( $form->options ) ), array( 'id' => $form->id ) ); |
736 | 736 | } else if ( ! strpos( $form->options['submit_html'], 'save_draft' ) ) { |
737 | 737 | $form->options['submit_html'] = preg_replace( '~\<\/div\>(?!.*\<\/div\>)~', $draft_link . "\r\n</div>", $form->options['submit_html'] ); |
738 | 738 | $wpdb->update( $this->forms, array( 'options' => serialize( $form->options ) ), array( 'id' => $form->id ) ); |
739 | - } |
|
740 | - unset($form); |
|
741 | - } |
|
742 | - unset($forms); |
|
743 | - } |
|
739 | + } |
|
740 | + unset($form); |
|
741 | + } |
|
742 | + unset($forms); |
|
743 | + } |
|
744 | 744 | |
745 | - private function migrate_to_6() { |
|
746 | - global $wpdb; |
|
745 | + private function migrate_to_6() { |
|
746 | + global $wpdb; |
|
747 | 747 | |
748 | 748 | $no_save = array_merge( FrmField::no_save_fields(), array( 'form', 'hidden', 'user_id' ) ); |
749 | 749 | $fields = FrmDb::get_results( $this->fields, array( 'type NOT' => $no_save ), 'id, field_options' ); |
750 | 750 | |
751 | - $default_html = <<<DEFAULT_HTML |
|
751 | + $default_html = <<<DEFAULT_HTML |
|
752 | 752 | <div id="frm_field_[id]_container" class="form-field [required_class] [error_class]"> |
753 | 753 | <label class="frm_pos_[label_position]">[field_name] |
754 | 754 | <span class="frm_required">[required_label]</span> |
@@ -758,7 +758,7 @@ discard block |
||
758 | 758 | </div> |
759 | 759 | DEFAULT_HTML; |
760 | 760 | |
761 | - $old_default_html = <<<DEFAULT_HTML |
|
761 | + $old_default_html = <<<DEFAULT_HTML |
|
762 | 762 | <div id="frm_field_[id]_container" class="form-field [required_class] [error_class]"> |
763 | 763 | <label class="frm_pos_[label_position]">[field_name] |
764 | 764 | <span class="frm_required">[required_label]</span> |
@@ -768,23 +768,23 @@ discard block |
||
768 | 768 | </div> |
769 | 769 | DEFAULT_HTML; |
770 | 770 | |
771 | - $new_default_html = FrmFieldsHelper::get_default_html('text'); |
|
772 | - foreach ( $fields as $field ) { |
|
773 | - $field->field_options = maybe_unserialize($field->field_options); |
|
771 | + $new_default_html = FrmFieldsHelper::get_default_html('text'); |
|
772 | + foreach ( $fields as $field ) { |
|
773 | + $field->field_options = maybe_unserialize($field->field_options); |
|
774 | 774 | if ( ! FrmField::is_option_empty( $field, 'custom_html' ) || $field->field_options['custom_html'] == $default_html || $field->field_options['custom_html'] == $old_default_html ) { |
775 | - $field->field_options['custom_html'] = $new_default_html; |
|
775 | + $field->field_options['custom_html'] = $new_default_html; |
|
776 | 776 | $wpdb->update( $this->fields, array( 'field_options' => maybe_serialize( $field->field_options ) ), array( 'id' => $field->id ) ); |
777 | - } |
|
778 | - unset($field); |
|
779 | - } |
|
780 | - unset($default_html, $old_default_html, $fields); |
|
781 | - } |
|
782 | - |
|
783 | - private function migrate_to_4() { |
|
784 | - global $wpdb; |
|
777 | + } |
|
778 | + unset($field); |
|
779 | + } |
|
780 | + unset($default_html, $old_default_html, $fields); |
|
781 | + } |
|
782 | + |
|
783 | + private function migrate_to_4() { |
|
784 | + global $wpdb; |
|
785 | 785 | $user_ids = FrmEntryMeta::getAll( array( 'fi.type' => 'user_id' ) ); |
786 | - foreach ( $user_ids as $user_id ) { |
|
786 | + foreach ( $user_ids as $user_id ) { |
|
787 | 787 | $wpdb->update( $this->entries, array( 'user_id' => $user_id->meta_value ), array( 'id' => $user_id->item_id ) ); |
788 | - } |
|
789 | - } |
|
788 | + } |
|
789 | + } |
|
790 | 790 | } |