@@ -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,23 +310,23 @@ 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 = 'SELECT ' . $field . ' FROM ' . $table; |
327 | 327 | if ( is_array( $where ) || empty( $where ) ) { |
328 | 328 | // only separate into array values and query string if is array |
329 | - self::get_where_clause_and_values( $where ); |
|
329 | + self::get_where_clause_and_values( $where ); |
|
330 | 330 | global $wpdb; |
331 | 331 | $query = $wpdb->prepare( $query . $where['where'] . ' ' . implode( ' ', $args ), $where['values'] ); |
332 | 332 | } else { |
@@ -340,47 +340,47 @@ discard block |
||
340 | 340 | |
341 | 341 | $cache_key = str_replace( array( ' ', ',' ), '_', trim( implode( '_', FrmAppHelper::array_flatten( $where ) ) . implode( '_', $args ) . $field . '_' . $type, ' WHERE' ) ); |
342 | 342 | $results = FrmAppHelper::check_cache( $cache_key, $group, $query, 'get_' . $type ); |
343 | - return $results; |
|
344 | - } |
|
345 | - |
|
346 | - /** |
|
347 | - * @param string $table |
|
348 | - * @param array $where |
|
349 | - */ |
|
350 | - public static function get_col( $table, $where = array(), $field = 'id', $args = array(), $limit = '' ) { |
|
351 | - return self::get_var( $table, $where, $field, $args, $limit, 'col' ); |
|
352 | - } |
|
353 | - |
|
354 | - /** |
|
355 | - * @since 2.0 |
|
356 | - * @param string $table |
|
357 | - */ |
|
358 | - public static function get_row( $table, $where = array(), $fields = '*', $args = array() ) { |
|
359 | - $args['limit'] = 1; |
|
360 | - return self::get_var( $table, $where, $fields, $args, '', 'row' ); |
|
361 | - } |
|
362 | - |
|
363 | - /** |
|
364 | - * @param string $table |
|
365 | - */ |
|
366 | - public static function get_one_record( $table, $args = array(), $fields = '*', $order_by = '' ) { |
|
367 | - _deprecated_function( __FUNCTION__, '2.0', 'FrmDb::get_row' ); |
|
343 | + return $results; |
|
344 | + } |
|
345 | + |
|
346 | + /** |
|
347 | + * @param string $table |
|
348 | + * @param array $where |
|
349 | + */ |
|
350 | + public static function get_col( $table, $where = array(), $field = 'id', $args = array(), $limit = '' ) { |
|
351 | + return self::get_var( $table, $where, $field, $args, $limit, 'col' ); |
|
352 | + } |
|
353 | + |
|
354 | + /** |
|
355 | + * @since 2.0 |
|
356 | + * @param string $table |
|
357 | + */ |
|
358 | + public static function get_row( $table, $where = array(), $fields = '*', $args = array() ) { |
|
359 | + $args['limit'] = 1; |
|
360 | + return self::get_var( $table, $where, $fields, $args, '', 'row' ); |
|
361 | + } |
|
362 | + |
|
363 | + /** |
|
364 | + * @param string $table |
|
365 | + */ |
|
366 | + public static function get_one_record( $table, $args = array(), $fields = '*', $order_by = '' ) { |
|
367 | + _deprecated_function( __FUNCTION__, '2.0', 'FrmDb::get_row' ); |
|
368 | 368 | return self::get_var( $table, $args, $fields, array( 'order_by' => $order_by, 'limit' => 1 ), '', 'row' ); |
369 | - } |
|
370 | - |
|
371 | - public static function get_records( $table, $args = array(), $order_by = '', $limit = '', $fields = '*' ) { |
|
372 | - _deprecated_function( __FUNCTION__, '2.0', 'FrmDb::get_results' ); |
|
373 | - return self::get_results( $table, $args, $fields, compact('order_by', 'limit') ); |
|
374 | - } |
|
375 | - |
|
376 | - /** |
|
377 | - * Prepare a key/value array before DB call |
|
378 | - * @since 2.0 |
|
379 | - * @param string $table |
|
380 | - */ |
|
381 | - public static function get_results( $table, $where = array(), $fields = '*', $args = array() ) { |
|
382 | - return self::get_var( $table, $where, $fields, $args, '', 'results' ); |
|
383 | - } |
|
369 | + } |
|
370 | + |
|
371 | + public static function get_records( $table, $args = array(), $order_by = '', $limit = '', $fields = '*' ) { |
|
372 | + _deprecated_function( __FUNCTION__, '2.0', 'FrmDb::get_results' ); |
|
373 | + return self::get_results( $table, $args, $fields, compact('order_by', 'limit') ); |
|
374 | + } |
|
375 | + |
|
376 | + /** |
|
377 | + * Prepare a key/value array before DB call |
|
378 | + * @since 2.0 |
|
379 | + * @param string $table |
|
380 | + */ |
|
381 | + public static function get_results( $table, $where = array(), $fields = '*', $args = array() ) { |
|
382 | + return self::get_var( $table, $where, $fields, $args, '', 'results' ); |
|
383 | + } |
|
384 | 384 | |
385 | 385 | /** |
386 | 386 | * Check for like, not like, in, not in, =, !=, >, <, <=, >= |
@@ -416,59 +416,59 @@ discard block |
||
416 | 416 | return ''; |
417 | 417 | } |
418 | 418 | |
419 | - /** |
|
420 | - * Get 'frm_forms' from wp_frm_forms or a longer table param that includes a join |
|
421 | - * Also add the wpdb->prefix to the table if it's missing |
|
422 | - * |
|
423 | - * @param string $table |
|
424 | - * @param string $group |
|
425 | - */ |
|
426 | - private static function get_group_and_table_name( &$table, &$group ) { |
|
419 | + /** |
|
420 | + * Get 'frm_forms' from wp_frm_forms or a longer table param that includes a join |
|
421 | + * Also add the wpdb->prefix to the table if it's missing |
|
422 | + * |
|
423 | + * @param string $table |
|
424 | + * @param string $group |
|
425 | + */ |
|
426 | + private static function get_group_and_table_name( &$table, &$group ) { |
|
427 | 427 | global $wpdb, $wpmuBaseTablePrefix; |
428 | 428 | |
429 | - $table_parts = explode(' ', $table); |
|
430 | - $group = reset($table_parts); |
|
431 | - $group = str_replace( $wpdb->prefix, '', $group ); |
|
429 | + $table_parts = explode(' ', $table); |
|
430 | + $group = reset($table_parts); |
|
431 | + $group = str_replace( $wpdb->prefix, '', $group ); |
|
432 | 432 | |
433 | 433 | $prefix = $wpmuBaseTablePrefix ? $wpmuBaseTablePrefix : $wpdb->base_prefix; |
434 | 434 | $group = str_replace( $prefix, '', $group ); |
435 | 435 | |
436 | - if ( $group == $table ) { |
|
437 | - $table = $wpdb->prefix . $table; |
|
438 | - } |
|
436 | + if ( $group == $table ) { |
|
437 | + $table = $wpdb->prefix . $table; |
|
438 | + } |
|
439 | 439 | |
440 | 440 | // switch to singular group name |
441 | 441 | $group = rtrim( $group, 's' ); |
442 | - } |
|
442 | + } |
|
443 | 443 | |
444 | - private static function convert_options_to_array( &$args, $order_by = '', $limit = '' ) { |
|
445 | - if ( ! is_array($args) ) { |
|
444 | + private static function convert_options_to_array( &$args, $order_by = '', $limit = '' ) { |
|
445 | + if ( ! is_array($args) ) { |
|
446 | 446 | $args = array( 'order_by' => $args ); |
447 | - } |
|
447 | + } |
|
448 | 448 | |
449 | - if ( ! empty( $order_by ) ) { |
|
450 | - $args['order_by'] = $order_by; |
|
451 | - } |
|
449 | + if ( ! empty( $order_by ) ) { |
|
450 | + $args['order_by'] = $order_by; |
|
451 | + } |
|
452 | 452 | |
453 | - if ( ! empty( $limit ) ) { |
|
454 | - $args['limit'] = $limit; |
|
455 | - } |
|
453 | + if ( ! empty( $limit ) ) { |
|
454 | + $args['limit'] = $limit; |
|
455 | + } |
|
456 | 456 | |
457 | - $temp_args = $args; |
|
458 | - foreach ( $temp_args as $k => $v ) { |
|
459 | - if ( $v == '' ) { |
|
457 | + $temp_args = $args; |
|
458 | + foreach ( $temp_args as $k => $v ) { |
|
459 | + if ( $v == '' ) { |
|
460 | 460 | unset( $args[ $k ] ); |
461 | - continue; |
|
462 | - } |
|
461 | + continue; |
|
462 | + } |
|
463 | 463 | |
464 | - if ( $k == 'limit' ) { |
|
464 | + if ( $k == 'limit' ) { |
|
465 | 465 | $args[ $k ] = FrmAppHelper::esc_limit( $v ); |
466 | - } |
|
467 | - $db_name = strtoupper( str_replace( '_', ' ', $k ) ); |
|
468 | - if ( strpos( $v, $db_name ) === false ) { |
|
466 | + } |
|
467 | + $db_name = strtoupper( str_replace( '_', ' ', $k ) ); |
|
468 | + if ( strpos( $v, $db_name ) === false ) { |
|
469 | 469 | $args[ $k ] = $db_name . ' ' . $v; |
470 | - } |
|
471 | - } |
|
470 | + } |
|
471 | + } |
|
472 | 472 | |
473 | 473 | // Make sure LIMIT is the last argument |
474 | 474 | if ( isset( $args['order_by'] ) && isset( $args['limit'] ) ) { |
@@ -476,33 +476,33 @@ discard block |
||
476 | 476 | unset( $args['limit'] ); |
477 | 477 | $args['limit'] = $temp_limit; |
478 | 478 | } |
479 | - } |
|
479 | + } |
|
480 | 480 | |
481 | - public function uninstall() { |
|
481 | + public function uninstall() { |
|
482 | 482 | if ( ! current_user_can( 'administrator' ) ) { |
483 | - $frm_settings = FrmAppHelper::get_settings(); |
|
484 | - wp_die($frm_settings->admin_permission); |
|
485 | - } |
|
483 | + $frm_settings = FrmAppHelper::get_settings(); |
|
484 | + wp_die($frm_settings->admin_permission); |
|
485 | + } |
|
486 | 486 | |
487 | - global $wpdb, $wp_roles; |
|
487 | + global $wpdb, $wp_roles; |
|
488 | 488 | |
489 | 489 | $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->fields ); |
490 | 490 | $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->forms ); |
491 | 491 | $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->entries ); |
492 | 492 | $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->entry_metas ); |
493 | 493 | |
494 | - delete_option('frm_options'); |
|
495 | - delete_option('frm_db_version'); |
|
494 | + delete_option('frm_options'); |
|
495 | + delete_option('frm_db_version'); |
|
496 | 496 | |
497 | - //delete roles |
|
498 | - $frm_roles = FrmAppHelper::frm_capabilities(); |
|
499 | - $roles = get_editable_roles(); |
|
500 | - foreach ( $frm_roles as $frm_role => $frm_role_description ) { |
|
501 | - foreach ( $roles as $role => $details ) { |
|
502 | - $wp_roles->remove_cap( $role, $frm_role ); |
|
503 | - unset($role, $details); |
|
504 | - } |
|
505 | - unset($frm_role, $frm_role_description); |
|
497 | + //delete roles |
|
498 | + $frm_roles = FrmAppHelper::frm_capabilities(); |
|
499 | + $roles = get_editable_roles(); |
|
500 | + foreach ( $frm_roles as $frm_role => $frm_role_description ) { |
|
501 | + foreach ( $roles as $role => $details ) { |
|
502 | + $wp_roles->remove_cap( $role, $frm_role ); |
|
503 | + unset($role, $details); |
|
504 | + } |
|
505 | + unset($frm_role, $frm_role_description); |
|
506 | 506 | } |
507 | 507 | unset($roles, $frm_roles); |
508 | 508 | |
@@ -526,9 +526,9 @@ discard block |
||
526 | 526 | |
527 | 527 | $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_%' ) ); |
528 | 528 | |
529 | - do_action('frm_after_uninstall'); |
|
530 | - return true; |
|
531 | - } |
|
529 | + do_action('frm_after_uninstall'); |
|
530 | + return true; |
|
531 | + } |
|
532 | 532 | |
533 | 533 | /** |
534 | 534 | * Migrate old styling settings. If sites are using the old |
@@ -567,150 +567,150 @@ discard block |
||
567 | 567 | } |
568 | 568 | } |
569 | 569 | |
570 | - /** |
|
571 | - * Change field size from character to pixel -- Multiply by 9 |
|
572 | - */ |
|
573 | - private function migrate_to_17() { |
|
574 | - global $wpdb; |
|
570 | + /** |
|
571 | + * Change field size from character to pixel -- Multiply by 9 |
|
572 | + */ |
|
573 | + private function migrate_to_17() { |
|
574 | + global $wpdb; |
|
575 | 575 | $pixel_conversion = 9; |
576 | 576 | |
577 | - // Get query arguments |
|
577 | + // Get query arguments |
|
578 | 578 | $field_types = array( 'textarea', 'text', 'number', 'email', 'url', 'rte', 'date', 'phone', 'password', 'image', 'tag', 'file' ); |
579 | 579 | $query = array( 'type' => $field_types, 'field_options like' => 's:4:"size";', 'field_options not like' => 's:4:"size";s:0:' ); |
580 | 580 | |
581 | - // Get results |
|
581 | + // Get results |
|
582 | 582 | $fields = FrmDb::get_results( $this->fields, $query, 'id, field_options' ); |
583 | 583 | |
584 | - $updated = 0; |
|
585 | - foreach ( $fields as $f ) { |
|
586 | - $f->field_options = maybe_unserialize($f->field_options); |
|
587 | - if ( empty($f->field_options['size']) || ! is_numeric($f->field_options['size']) ) { |
|
588 | - continue; |
|
589 | - } |
|
584 | + $updated = 0; |
|
585 | + foreach ( $fields as $f ) { |
|
586 | + $f->field_options = maybe_unserialize($f->field_options); |
|
587 | + if ( empty($f->field_options['size']) || ! is_numeric($f->field_options['size']) ) { |
|
588 | + continue; |
|
589 | + } |
|
590 | 590 | |
591 | 591 | $f->field_options['size'] = round( $pixel_conversion * (int) $f->field_options['size'] ); |
592 | - $f->field_options['size'] .= 'px'; |
|
593 | - $u = FrmField::update( $f->id, array( 'field_options' => $f->field_options ) ); |
|
594 | - if ( $u ) { |
|
595 | - $updated++; |
|
596 | - } |
|
597 | - unset($f); |
|
598 | - } |
|
599 | - |
|
600 | - // Change the characters in widgets to pixels |
|
601 | - $widgets = get_option('widget_frm_show_form'); |
|
602 | - if ( empty($widgets) ) { |
|
603 | - return; |
|
604 | - } |
|
605 | - |
|
606 | - $widgets = maybe_unserialize($widgets); |
|
607 | - foreach ( $widgets as $k => $widget ) { |
|
608 | - if ( ! is_array($widget) || ! isset($widget['size']) ) { |
|
609 | - continue; |
|
610 | - } |
|
592 | + $f->field_options['size'] .= 'px'; |
|
593 | + $u = FrmField::update( $f->id, array( 'field_options' => $f->field_options ) ); |
|
594 | + if ( $u ) { |
|
595 | + $updated++; |
|
596 | + } |
|
597 | + unset($f); |
|
598 | + } |
|
599 | + |
|
600 | + // Change the characters in widgets to pixels |
|
601 | + $widgets = get_option('widget_frm_show_form'); |
|
602 | + if ( empty($widgets) ) { |
|
603 | + return; |
|
604 | + } |
|
605 | + |
|
606 | + $widgets = maybe_unserialize($widgets); |
|
607 | + foreach ( $widgets as $k => $widget ) { |
|
608 | + if ( ! is_array($widget) || ! isset($widget['size']) ) { |
|
609 | + continue; |
|
610 | + } |
|
611 | 611 | $size = round( $pixel_conversion * (int) $widget['size'] ); |
612 | - $size .= 'px'; |
|
612 | + $size .= 'px'; |
|
613 | 613 | $widgets[ $k ]['size'] = $size; |
614 | - } |
|
615 | - update_option('widget_frm_show_form', $widgets); |
|
616 | - } |
|
617 | - |
|
618 | - /** |
|
619 | - * Migrate post and email notification settings into actions |
|
620 | - */ |
|
621 | - private function migrate_to_16() { |
|
622 | - global $wpdb; |
|
623 | - |
|
624 | - $forms = FrmDb::get_results( $this->forms, array(), 'id, options, is_template, default_template' ); |
|
625 | - |
|
626 | - /** |
|
627 | - * Old email settings format: |
|
628 | - * email_to: Email or field id |
|
629 | - * also_email_to: array of fields ids |
|
630 | - * reply_to: Email, field id, 'custom' |
|
631 | - * cust_reply_to: string |
|
632 | - * reply_to_name: field id, 'custom' |
|
633 | - * cust_reply_to_name: string |
|
634 | - * plain_text: 0|1 |
|
635 | - * email_message: string or '' |
|
636 | - * email_subject: string or '' |
|
637 | - * inc_user_info: 0|1 |
|
638 | - * update_email: 0, 1, 2 |
|
639 | - * |
|
640 | - * Old autoresponder settings format: |
|
641 | - * auto_responder: 0|1 |
|
642 | - * ar_email_message: string or '' |
|
643 | - * ar_email_to: field id |
|
644 | - * ar_plain_text: 0|1 |
|
645 | - * ar_reply_to_name: string |
|
646 | - * ar_reply_to: string |
|
647 | - * ar_email_subject: string |
|
648 | - * ar_update_email: 0, 1, 2 |
|
649 | - * |
|
650 | - * New email settings: |
|
651 | - * post_content: json settings |
|
652 | - * post_title: form id |
|
653 | - * post_excerpt: message |
|
654 | - * |
|
655 | - */ |
|
656 | - |
|
657 | - foreach ( $forms as $form ) { |
|
614 | + } |
|
615 | + update_option('widget_frm_show_form', $widgets); |
|
616 | + } |
|
617 | + |
|
618 | + /** |
|
619 | + * Migrate post and email notification settings into actions |
|
620 | + */ |
|
621 | + private function migrate_to_16() { |
|
622 | + global $wpdb; |
|
623 | + |
|
624 | + $forms = FrmDb::get_results( $this->forms, array(), 'id, options, is_template, default_template' ); |
|
625 | + |
|
626 | + /** |
|
627 | + * Old email settings format: |
|
628 | + * email_to: Email or field id |
|
629 | + * also_email_to: array of fields ids |
|
630 | + * reply_to: Email, field id, 'custom' |
|
631 | + * cust_reply_to: string |
|
632 | + * reply_to_name: field id, 'custom' |
|
633 | + * cust_reply_to_name: string |
|
634 | + * plain_text: 0|1 |
|
635 | + * email_message: string or '' |
|
636 | + * email_subject: string or '' |
|
637 | + * inc_user_info: 0|1 |
|
638 | + * update_email: 0, 1, 2 |
|
639 | + * |
|
640 | + * Old autoresponder settings format: |
|
641 | + * auto_responder: 0|1 |
|
642 | + * ar_email_message: string or '' |
|
643 | + * ar_email_to: field id |
|
644 | + * ar_plain_text: 0|1 |
|
645 | + * ar_reply_to_name: string |
|
646 | + * ar_reply_to: string |
|
647 | + * ar_email_subject: string |
|
648 | + * ar_update_email: 0, 1, 2 |
|
649 | + * |
|
650 | + * New email settings: |
|
651 | + * post_content: json settings |
|
652 | + * post_title: form id |
|
653 | + * post_excerpt: message |
|
654 | + * |
|
655 | + */ |
|
656 | + |
|
657 | + foreach ( $forms as $form ) { |
|
658 | 658 | if ( $form->is_template && $form->default_template ) { |
659 | 659 | // don't migrate the default templates since the email will be added anyway |
660 | 660 | continue; |
661 | 661 | } |
662 | 662 | |
663 | - // Format form options |
|
664 | - $form_options = maybe_unserialize($form->options); |
|
663 | + // Format form options |
|
664 | + $form_options = maybe_unserialize($form->options); |
|
665 | 665 | |
666 | - // Migrate settings to actions |
|
667 | - FrmXMLHelper::migrate_form_settings_to_actions( $form_options, $form->id ); |
|
668 | - } |
|
669 | - } |
|
666 | + // Migrate settings to actions |
|
667 | + FrmXMLHelper::migrate_form_settings_to_actions( $form_options, $form->id ); |
|
668 | + } |
|
669 | + } |
|
670 | 670 | |
671 | - private function migrate_to_11() { |
|
672 | - global $wpdb; |
|
671 | + private function migrate_to_11() { |
|
672 | + global $wpdb; |
|
673 | 673 | |
674 | - $forms = FrmDb::get_results( $this->forms, array(), 'id, options'); |
|
674 | + $forms = FrmDb::get_results( $this->forms, array(), 'id, options'); |
|
675 | 675 | |
676 | - $sending = __( 'Sending', 'formidable' ); |
|
676 | + $sending = __( 'Sending', 'formidable' ); |
|
677 | 677 | $img = FrmAppHelper::plugin_url() . '/images/ajax_loader.gif'; |
678 | - $old_default_html = <<<DEFAULT_HTML |
|
678 | + $old_default_html = <<<DEFAULT_HTML |
|
679 | 679 | <div class="frm_submit"> |
680 | 680 | [if back_button]<input type="submit" value="[back_label]" name="frm_prev_page" formnovalidate="formnovalidate" [back_hook] />[/if back_button] |
681 | 681 | <input type="submit" value="[button_label]" [button_action] /> |
682 | 682 | <img class="frm_ajax_loading" src="$img" alt="$sending" style="visibility:hidden;" /> |
683 | 683 | </div> |
684 | 684 | DEFAULT_HTML; |
685 | - unset($sending, $img); |
|
685 | + unset($sending, $img); |
|
686 | 686 | |
687 | - $new_default_html = FrmFormsHelper::get_default_html('submit'); |
|
688 | - $draft_link = FrmFormsHelper::get_draft_link(); |
|
687 | + $new_default_html = FrmFormsHelper::get_default_html('submit'); |
|
688 | + $draft_link = FrmFormsHelper::get_draft_link(); |
|
689 | 689 | foreach ( $forms as $form ) { |
690 | - $form->options = maybe_unserialize($form->options); |
|
691 | - if ( ! isset($form->options['submit_html']) || empty($form->options['submit_html']) ) { |
|
692 | - continue; |
|
693 | - } |
|
690 | + $form->options = maybe_unserialize($form->options); |
|
691 | + if ( ! isset($form->options['submit_html']) || empty($form->options['submit_html']) ) { |
|
692 | + continue; |
|
693 | + } |
|
694 | 694 | |
695 | - if ( $form->options['submit_html'] != $new_default_html && $form->options['submit_html'] == $old_default_html ) { |
|
696 | - $form->options['submit_html'] = $new_default_html; |
|
695 | + if ( $form->options['submit_html'] != $new_default_html && $form->options['submit_html'] == $old_default_html ) { |
|
696 | + $form->options['submit_html'] = $new_default_html; |
|
697 | 697 | $wpdb->update( $this->forms, array( 'options' => serialize( $form->options ) ), array( 'id' => $form->id ) ); |
698 | 698 | } else if ( ! strpos( $form->options['submit_html'], 'save_draft' ) ) { |
699 | 699 | $form->options['submit_html'] = preg_replace( '~\<\/div\>(?!.*\<\/div\>)~', $draft_link . "\r\n</div>", $form->options['submit_html'] ); |
700 | 700 | $wpdb->update( $this->forms, array( 'options' => serialize( $form->options ) ), array( 'id' => $form->id ) ); |
701 | - } |
|
702 | - unset($form); |
|
703 | - } |
|
704 | - unset($forms); |
|
705 | - } |
|
701 | + } |
|
702 | + unset($form); |
|
703 | + } |
|
704 | + unset($forms); |
|
705 | + } |
|
706 | 706 | |
707 | - private function migrate_to_6() { |
|
708 | - global $wpdb; |
|
707 | + private function migrate_to_6() { |
|
708 | + global $wpdb; |
|
709 | 709 | |
710 | 710 | $no_save = array_merge( FrmField::no_save_fields(), array( 'form', 'hidden', 'user_id' ) ); |
711 | 711 | $fields = FrmDb::get_results( $this->fields, array( 'type NOT' => $no_save ), 'id, field_options' ); |
712 | 712 | |
713 | - $default_html = <<<DEFAULT_HTML |
|
713 | + $default_html = <<<DEFAULT_HTML |
|
714 | 714 | <div id="frm_field_[id]_container" class="form-field [required_class] [error_class]"> |
715 | 715 | <label class="frm_pos_[label_position]">[field_name] |
716 | 716 | <span class="frm_required">[required_label]</span> |
@@ -720,7 +720,7 @@ discard block |
||
720 | 720 | </div> |
721 | 721 | DEFAULT_HTML; |
722 | 722 | |
723 | - $old_default_html = <<<DEFAULT_HTML |
|
723 | + $old_default_html = <<<DEFAULT_HTML |
|
724 | 724 | <div id="frm_field_[id]_container" class="form-field [required_class] [error_class]"> |
725 | 725 | <label class="frm_pos_[label_position]">[field_name] |
726 | 726 | <span class="frm_required">[required_label]</span> |
@@ -730,23 +730,23 @@ discard block |
||
730 | 730 | </div> |
731 | 731 | DEFAULT_HTML; |
732 | 732 | |
733 | - $new_default_html = FrmFieldsHelper::get_default_html('text'); |
|
734 | - foreach ( $fields as $field ) { |
|
735 | - $field->field_options = maybe_unserialize($field->field_options); |
|
733 | + $new_default_html = FrmFieldsHelper::get_default_html('text'); |
|
734 | + foreach ( $fields as $field ) { |
|
735 | + $field->field_options = maybe_unserialize($field->field_options); |
|
736 | 736 | if ( ! FrmField::is_option_empty( $field, 'custom_html' ) || $field->field_options['custom_html'] == $default_html || $field->field_options['custom_html'] == $old_default_html ) { |
737 | - $field->field_options['custom_html'] = $new_default_html; |
|
737 | + $field->field_options['custom_html'] = $new_default_html; |
|
738 | 738 | $wpdb->update( $this->fields, array( 'field_options' => maybe_serialize( $field->field_options ) ), array( 'id' => $field->id ) ); |
739 | - } |
|
740 | - unset($field); |
|
741 | - } |
|
742 | - unset($default_html, $old_default_html, $fields); |
|
743 | - } |
|
744 | - |
|
745 | - private function migrate_to_4() { |
|
746 | - global $wpdb; |
|
739 | + } |
|
740 | + unset($field); |
|
741 | + } |
|
742 | + unset($default_html, $old_default_html, $fields); |
|
743 | + } |
|
744 | + |
|
745 | + private function migrate_to_4() { |
|
746 | + global $wpdb; |
|
747 | 747 | $user_ids = FrmEntryMeta::getAll( array( 'fi.type' => 'user_id' ) ); |
748 | - foreach ( $user_ids as $user_id ) { |
|
748 | + foreach ( $user_ids as $user_id ) { |
|
749 | 749 | $wpdb->update( $this->entries, array( 'user_id' => $user_id->meta_value ), array( 'id' => $user_id->item_id ) ); |
750 | - } |
|
751 | - } |
|
750 | + } |
|
751 | + } |
|
752 | 752 | } |