|
@@ -64,7 +64,7 @@ discard block |
|
|
block discarded – undo |
|
64
|
64
|
'type' => 'radio', |
|
65
|
65
|
'full_width' => true, |
|
66
|
66
|
'label' => esc_html__( 'Search Mode', 'gravityview' ), |
|
67
|
|
- 'desc' => __('Should search results match all search fields, or any?', 'gravityview'), |
|
|
67
|
+ 'desc' => __( 'Should search results match all search fields, or any?', 'gravityview' ), |
|
68
|
68
|
'value' => 'any', |
|
69
|
69
|
'class' => 'hide-if-js', |
|
70
|
70
|
'options' => array( |
|
@@ -86,7 +86,7 @@ discard block |
|
|
block discarded – undo |
|
86
|
86
|
|
|
87
|
87
|
// admin - add scripts - run at 1100 to make sure GravityView_Admin_Views::add_scripts_and_styles() runs first at 999 |
|
88
|
88
|
add_action( 'admin_enqueue_scripts', array( $this, 'add_scripts_and_styles' ), 1100 ); |
|
89
|
|
- add_action( 'wp_enqueue_scripts', array( $this, 'register_scripts') ); |
|
|
89
|
+ add_action( 'wp_enqueue_scripts', array( $this, 'register_scripts' ) ); |
|
90
|
90
|
add_filter( 'gravityview_noconflict_scripts', array( $this, 'register_no_conflict' ) ); |
|
91
|
91
|
|
|
92
|
92
|
// ajax - get the searchable fields |
|
@@ -230,7 +230,7 @@ discard block |
|
|
block discarded – undo |
|
230
|
230
|
$script_min = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; |
|
231
|
231
|
$script_source = empty( $script_min ) ? '/source' : ''; |
|
232
|
232
|
|
|
233
|
|
- wp_enqueue_script( 'gravityview_searchwidget_admin', plugins_url( 'assets/js'.$script_source.'/admin-search-widget'.$script_min.'.js', __FILE__ ), array( 'jquery', 'gravityview_views_scripts' ), \GV\Plugin::$version ); |
|
|
233
|
+ wp_enqueue_script( 'gravityview_searchwidget_admin', plugins_url( 'assets/js' . $script_source . '/admin-search-widget' . $script_min . '.js', __FILE__ ), array( 'jquery', 'gravityview_views_scripts' ), \GV\Plugin::$version ); |
|
234
|
234
|
|
|
235
|
235
|
wp_localize_script( 'gravityview_searchwidget_admin', 'gvSearchVar', array( |
|
236
|
236
|
'nonce' => wp_create_nonce( 'gravityview_ajaxsearchwidget' ), |
|
@@ -252,7 +252,7 @@ discard block |
|
|
block discarded – undo |
|
252
|
252
|
* @return array Scripts allowed in no-conflict mode, plus the search widget script |
|
253
|
253
|
*/ |
|
254
|
254
|
public function register_no_conflict( $allowed ) { |
|
255
|
|
- $allowed[] = 'gravityview_searchwidget_admin'; |
|
|
255
|
+ $allowed[ ] = 'gravityview_searchwidget_admin'; |
|
256
|
256
|
return $allowed; |
|
257
|
257
|
} |
|
258
|
258
|
|
|
@@ -265,24 +265,24 @@ discard block |
|
|
block discarded – undo |
|
265
|
265
|
*/ |
|
266
|
266
|
public static function get_searchable_fields() { |
|
267
|
267
|
|
|
268
|
|
- if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'gravityview_ajaxsearchwidget' ) ) { |
|
|
268
|
+ if ( ! isset( $_POST[ 'nonce' ] ) || ! wp_verify_nonce( $_POST[ 'nonce' ], 'gravityview_ajaxsearchwidget' ) ) { |
|
269
|
269
|
exit( '0' ); |
|
270
|
270
|
} |
|
271
|
271
|
|
|
272
|
272
|
$form = ''; |
|
273
|
273
|
|
|
274
|
274
|
// Fetch the form for the current View |
|
275
|
|
- if ( ! empty( $_POST['view_id'] ) ) { |
|
|
275
|
+ if ( ! empty( $_POST[ 'view_id' ] ) ) { |
|
276
|
276
|
|
|
277
|
|
- $form = gravityview_get_form_id( $_POST['view_id'] ); |
|
|
277
|
+ $form = gravityview_get_form_id( $_POST[ 'view_id' ] ); |
|
278
|
278
|
|
|
279
|
|
- } elseif ( ! empty( $_POST['formid'] ) ) { |
|
|
279
|
+ } elseif ( ! empty( $_POST[ 'formid' ] ) ) { |
|
280
|
280
|
|
|
281
|
|
- $form = (int) $_POST['formid']; |
|
|
281
|
+ $form = (int)$_POST[ 'formid' ]; |
|
282
|
282
|
|
|
283
|
|
- } elseif ( ! empty( $_POST['template_id'] ) && class_exists( 'GravityView_Ajax' ) ) { |
|
|
283
|
+ } elseif ( ! empty( $_POST[ 'template_id' ] ) && class_exists( 'GravityView_Ajax' ) ) { |
|
284
|
284
|
|
|
285
|
|
- $form = GravityView_Ajax::pre_get_form_fields( $_POST['template_id'] ); |
|
|
285
|
+ $form = GravityView_Ajax::pre_get_form_fields( $_POST[ 'template_id' ] ); |
|
286
|
286
|
|
|
287
|
287
|
} |
|
288
|
288
|
|
|
@@ -332,14 +332,14 @@ discard block |
|
|
block discarded – undo |
|
332
|
332
|
); |
|
333
|
333
|
|
|
334
|
334
|
if ( gravityview()->plugin->supports( \GV\Plugin::FEATURE_GFQUERY ) ) { |
|
335
|
|
- $custom_fields['is_approved'] = array( |
|
|
335
|
+ $custom_fields[ 'is_approved' ] = array( |
|
336
|
336
|
'text' => esc_html__( 'Approval Status', 'gravityview' ), |
|
337
|
337
|
'type' => 'multi', |
|
338
|
338
|
); |
|
339
|
339
|
} |
|
340
|
340
|
|
|
341
|
|
- foreach( $custom_fields as $custom_field_key => $custom_field ) { |
|
342
|
|
- $output .= sprintf( '<option value="%s" %s data-inputtypes="%s" data-placeholder="%s">%s</option>', $custom_field_key, selected( $custom_field_key, $current, false ), $custom_field['type'], self::get_field_label( array('field' => $custom_field_key ) ), $custom_field['text'] ); |
|
|
341
|
+ foreach ( $custom_fields as $custom_field_key => $custom_field ) { |
|
|
342
|
+ $output .= sprintf( '<option value="%s" %s data-inputtypes="%s" data-placeholder="%s">%s</option>', $custom_field_key, selected( $custom_field_key, $current, false ), $custom_field[ 'type' ], self::get_field_label( array( 'field' => $custom_field_key ) ), $custom_field[ 'text' ] ); |
|
343
|
343
|
} |
|
344
|
344
|
|
|
345
|
345
|
// Get fields with sub-inputs and no parent |
|
@@ -361,13 +361,13 @@ discard block |
|
|
block discarded – undo |
|
361
|
361
|
|
|
362
|
362
|
foreach ( $fields as $id => $field ) { |
|
363
|
363
|
|
|
364
|
|
- if ( in_array( $field['type'], $blacklist_field_types ) ) { |
|
|
364
|
+ if ( in_array( $field[ 'type' ], $blacklist_field_types ) ) { |
|
365
|
365
|
continue; |
|
366
|
366
|
} |
|
367
|
367
|
|
|
368
|
|
- $types = self::get_search_input_types( $id, $field['type'] ); |
|
|
368
|
+ $types = self::get_search_input_types( $id, $field[ 'type' ] ); |
|
369
|
369
|
|
|
370
|
|
- $output .= '<option value="'. $id .'" '. selected( $id, $current, false ).'data-inputtypes="'. esc_attr( $types ) .'">'. esc_html( $field['label'] ) .'</option>'; |
|
|
370
|
+ $output .= '<option value="' . $id . '" ' . selected( $id, $current, false ) . 'data-inputtypes="' . esc_attr( $types ) . '">' . esc_html( $field[ 'label' ] ) . '</option>'; |
|
371
|
371
|
} |
|
372
|
372
|
} |
|
373
|
373
|
|
|
@@ -390,7 +390,7 @@ discard block |
|
|
block discarded – undo |
|
390
|
390
|
public static function get_search_input_types( $field_id = '', $field_type = null ) { |
|
391
|
391
|
|
|
392
|
392
|
// @todo - This needs to be improved - many fields have . including products and addresses |
|
393
|
|
- if ( false !== strpos( (string) $field_id, '.' ) && in_array( $field_type, array( 'checkbox' ) ) || in_array( $field_id, array( 'is_fulfilled' ) ) ) { |
|
|
393
|
+ if ( false !== strpos( (string)$field_id, '.' ) && in_array( $field_type, array( 'checkbox' ) ) || in_array( $field_id, array( 'is_fulfilled' ) ) ) { |
|
394
|
394
|
$input_type = 'boolean'; // on/off checkbox |
|
395
|
395
|
} elseif ( in_array( $field_type, array( 'checkbox', 'post_category', 'multiselect' ) ) ) { |
|
396
|
396
|
$input_type = 'multi'; //multiselect |
|
@@ -436,19 +436,19 @@ discard block |
|
|
block discarded – undo |
|
436
|
436
|
$post_id = 0; |
|
437
|
437
|
|
|
438
|
438
|
// We're in the WordPress Widget context, and an overriding post ID has been set. |
|
439
|
|
- if ( ! empty( $widget_args['post_id'] ) ) { |
|
440
|
|
- $post_id = absint( $widget_args['post_id'] ); |
|
|
439
|
+ if ( ! empty( $widget_args[ 'post_id' ] ) ) { |
|
|
440
|
+ $post_id = absint( $widget_args[ 'post_id' ] ); |
|
441
|
441
|
} |
|
442
|
442
|
// We're in the WordPress Widget context, and the base View ID should be used |
|
443
|
|
- else if ( ! empty( $widget_args['view_id'] ) ) { |
|
444
|
|
- $post_id = absint( $widget_args['view_id'] ); |
|
|
443
|
+ else if ( ! empty( $widget_args[ 'view_id' ] ) ) { |
|
|
444
|
+ $post_id = absint( $widget_args[ 'view_id' ] ); |
|
445
|
445
|
} |
|
446
|
446
|
|
|
447
|
447
|
$args = gravityview_get_permalink_query_args( $post_id ); |
|
448
|
448
|
|
|
449
|
449
|
// Add hidden fields to the search form |
|
450
|
450
|
foreach ( $args as $key => $value ) { |
|
451
|
|
- $search_fields[] = array( |
|
|
451
|
+ $search_fields[ ] = array( |
|
452
|
452
|
'name' => $key, |
|
453
|
453
|
'input' => 'hidden', |
|
454
|
454
|
'value' => $value, |
|
@@ -487,28 +487,28 @@ discard block |
|
|
block discarded – undo |
|
487
|
487
|
/** |
|
488
|
488
|
* Include the sidebar Widgets. |
|
489
|
489
|
*/ |
|
490
|
|
- $widgets = (array) get_option( 'widget_gravityview_search', array() ); |
|
|
490
|
+ $widgets = (array)get_option( 'widget_gravityview_search', array() ); |
|
491
|
491
|
|
|
492
|
492
|
foreach ( $widgets as $widget ) { |
|
493
|
|
- if ( ! empty( $widget['view_id'] ) && $widget['view_id'] == $view->ID ) { |
|
494
|
|
- if( $_fields = json_decode( $widget['search_fields'], true ) ) { |
|
|
493
|
+ if ( ! empty( $widget[ 'view_id' ] ) && $widget[ 'view_id' ] == $view->ID ) { |
|
|
494
|
+ if ( $_fields = json_decode( $widget[ 'search_fields' ], true ) ) { |
|
495
|
495
|
foreach ( $_fields as $field ) { |
|
496
|
|
- if ( empty( $field['form_id'] ) ) { |
|
497
|
|
- $field['form_id'] = $view->form ? $view->form->ID : 0; |
|
|
496
|
+ if ( empty( $field[ 'form_id' ] ) ) { |
|
|
497
|
+ $field[ 'form_id' ] = $view->form ? $view->form->ID : 0; |
|
498
|
498
|
} |
|
499
|
|
- $searchable_fields[] = $with_full_field ? $field : $field['field']; |
|
|
499
|
+ $searchable_fields[ ] = $with_full_field ? $field : $field[ 'field' ]; |
|
500
|
500
|
} |
|
501
|
501
|
} |
|
502
|
502
|
} |
|
503
|
503
|
} |
|
504
|
504
|
|
|
505
|
505
|
foreach ( $view->widgets->by_id( $this->get_widget_id() )->all() as $widget ) { |
|
506
|
|
- if( $_fields = json_decode( $widget->configuration->get( 'search_fields' ), true ) ) { |
|
|
506
|
+ if ( $_fields = json_decode( $widget->configuration->get( 'search_fields' ), true ) ) { |
|
507
|
507
|
foreach ( $_fields as $field ) { |
|
508
|
|
- if ( empty( $field['form_id'] ) ) { |
|
509
|
|
- $field['form_id'] = $view->form ? $view->form->ID : 0; |
|
|
508
|
+ if ( empty( $field[ 'form_id' ] ) ) { |
|
|
509
|
+ $field[ 'form_id' ] = $view->form ? $view->form->ID : 0; |
|
510
|
510
|
} |
|
511
|
|
- $searchable_fields[] = $with_full_field ? $field : $field['field']; |
|
|
511
|
+ $searchable_fields[ ] = $with_full_field ? $field : $field[ 'field' ]; |
|
512
|
512
|
} |
|
513
|
513
|
} |
|
514
|
514
|
} |
|
@@ -538,7 +538,7 @@ discard block |
|
|
block discarded – undo |
|
538
|
538
|
return $search_criteria; // Return the original criteria, GF_Query modification kicks in later |
|
539
|
539
|
} |
|
540
|
540
|
|
|
541
|
|
- if( 'post' === $this->search_method ) { |
|
|
541
|
+ if ( 'post' === $this->search_method ) { |
|
542
|
542
|
$get = $_POST; |
|
543
|
543
|
} else { |
|
544
|
544
|
$get = $_GET; |
|
@@ -557,15 +557,15 @@ discard block |
|
|
block discarded – undo |
|
557
|
557
|
$get = gv_map_deep( $get, 'rawurldecode' ); |
|
558
|
558
|
|
|
559
|
559
|
// Make sure array key is set up |
|
560
|
|
- $search_criteria['field_filters'] = \GV\Utils::get( $search_criteria, 'field_filters', array() ); |
|
|
560
|
+ $search_criteria[ 'field_filters' ] = \GV\Utils::get( $search_criteria, 'field_filters', array() ); |
|
561
|
561
|
|
|
562
|
562
|
$searchable_fields = $this->get_view_searchable_fields( $view ); |
|
563
|
563
|
$searchable_field_objects = $this->get_view_searchable_fields( $view, true ); |
|
564
|
564
|
|
|
565
|
565
|
// add free search |
|
566
|
|
- if ( isset( $get['gv_search'] ) && '' !== $get['gv_search'] && in_array( 'search_all', $searchable_fields ) ) { |
|
|
566
|
+ if ( isset( $get[ 'gv_search' ] ) && '' !== $get[ 'gv_search' ] && in_array( 'search_all', $searchable_fields ) ) { |
|
567
|
567
|
|
|
568
|
|
- $search_all_value = trim( $get['gv_search'] ); |
|
|
568
|
+ $search_all_value = trim( $get[ 'gv_search' ] ); |
|
569
|
569
|
|
|
570
|
570
|
/** |
|
571
|
571
|
* @filter `gravityview/search-all-split-words` Search for each word separately or the whole phrase? |
|
@@ -590,7 +590,7 @@ discard block |
|
|
block discarded – undo |
|
590
|
590
|
} |
|
591
|
591
|
|
|
592
|
592
|
foreach ( $words as $word ) { |
|
593
|
|
- $search_criteria['field_filters'][] = array( |
|
|
593
|
+ $search_criteria[ 'field_filters' ][ ] = array( |
|
594
|
594
|
'key' => null, // The field ID to search |
|
595
|
595
|
'value' => $word, // The value to search |
|
596
|
596
|
'operator' => 'contains', // What to search in. Options: `is` or `contains` |
|
@@ -603,14 +603,14 @@ discard block |
|
|
block discarded – undo |
|
603
|
603
|
/** |
|
604
|
604
|
* Get and normalize the dates according to the input format. |
|
605
|
605
|
*/ |
|
606
|
|
- if ( $curr_start = ! empty( $get['gv_start'] ) ? $get['gv_start'] : '' ) { |
|
607
|
|
- if( $curr_start_date = date_create_from_format( $this->get_datepicker_format( true ), $curr_start ) ) { |
|
|
606
|
+ if ( $curr_start = ! empty( $get[ 'gv_start' ] ) ? $get[ 'gv_start' ] : '' ) { |
|
|
607
|
+ if ( $curr_start_date = date_create_from_format( $this->get_datepicker_format( true ), $curr_start ) ) { |
|
608
|
608
|
$curr_start = $curr_start_date->format( 'Y-m-d' ); |
|
609
|
609
|
} |
|
610
|
610
|
} |
|
611
|
611
|
|
|
612
|
|
- if ( $curr_end = ! empty( $get['gv_start'] ) ? ( ! empty( $get['gv_end'] ) ? $get['gv_end'] : '' ) : '' ) { |
|
613
|
|
- if( $curr_end_date = date_create_from_format( $this->get_datepicker_format( true ), $curr_end ) ) { |
|
|
612
|
+ if ( $curr_end = ! empty( $get[ 'gv_start' ] ) ? ( ! empty( $get[ 'gv_end' ] ) ? $get[ 'gv_end' ] : '' ) : '' ) { |
|
|
613
|
+ if ( $curr_end_date = date_create_from_format( $this->get_datepicker_format( true ), $curr_end ) ) { |
|
614
|
614
|
$curr_end = $curr_end_date->format( 'Y-m-d' ); |
|
615
|
615
|
} |
|
616
|
616
|
} |
|
@@ -645,22 +645,22 @@ discard block |
|
|
block discarded – undo |
|
645
|
645
|
*/ |
|
646
|
646
|
if ( ! empty( $curr_start ) ) { |
|
647
|
647
|
$curr_start = date( 'Y-m-d H:i:s', strtotime( $curr_start ) ); |
|
648
|
|
- $search_criteria['start_date'] = $adjust_tz ? get_gmt_from_date( $curr_start ) : $curr_start; |
|
|
648
|
+ $search_criteria[ 'start_date' ] = $adjust_tz ? get_gmt_from_date( $curr_start ) : $curr_start; |
|
649
|
649
|
} |
|
650
|
650
|
|
|
651
|
651
|
if ( ! empty( $curr_end ) ) { |
|
652
|
652
|
// Fast-forward 24 hour on the end time |
|
653
|
653
|
$curr_end = date( 'Y-m-d H:i:s', strtotime( $curr_end ) + DAY_IN_SECONDS ); |
|
654
|
|
- $search_criteria['end_date'] = $adjust_tz ? get_gmt_from_date( $curr_end ) : $curr_end; |
|
655
|
|
- if ( strpos( $search_criteria['end_date'], '00:00:00' ) ) { // See https://github.com/gravityview/GravityView/issues/1056 |
|
656
|
|
- $search_criteria['end_date'] = date( 'Y-m-d H:i:s', strtotime( $search_criteria['end_date'] ) - 1 ); |
|
|
654
|
+ $search_criteria[ 'end_date' ] = $adjust_tz ? get_gmt_from_date( $curr_end ) : $curr_end; |
|
|
655
|
+ if ( strpos( $search_criteria[ 'end_date' ], '00:00:00' ) ) { // See https://github.com/gravityview/GravityView/issues/1056 |
|
|
656
|
+ $search_criteria[ 'end_date' ] = date( 'Y-m-d H:i:s', strtotime( $search_criteria[ 'end_date' ] ) - 1 ); |
|
657
|
657
|
} |
|
658
|
658
|
} |
|
659
|
659
|
} |
|
660
|
660
|
|
|
661
|
661
|
// search for a specific entry ID |
|
662
|
662
|
if ( ! empty( $get[ 'gv_id' ] ) && in_array( 'entry_id', $searchable_fields ) ) { |
|
663
|
|
- $search_criteria['field_filters'][] = array( |
|
|
663
|
+ $search_criteria[ 'field_filters' ][ ] = array( |
|
664
|
664
|
'key' => 'id', |
|
665
|
665
|
'value' => absint( $get[ 'gv_id' ] ), |
|
666
|
666
|
'operator' => $this->get_operator( $get, 'gv_id', array( '=' ), '=' ), |
|
@@ -669,20 +669,20 @@ discard block |
|
|
block discarded – undo |
|
669
|
669
|
|
|
670
|
670
|
// search for a specific Created_by ID |
|
671
|
671
|
if ( ! empty( $get[ 'gv_by' ] ) && in_array( 'created_by', $searchable_fields ) ) { |
|
672
|
|
- $search_criteria['field_filters'][] = array( |
|
|
672
|
+ $search_criteria[ 'field_filters' ][ ] = array( |
|
673
|
673
|
'key' => 'created_by', |
|
674
|
|
- 'value' => $get['gv_by'], |
|
|
674
|
+ 'value' => $get[ 'gv_by' ], |
|
675
|
675
|
'operator' => $this->get_operator( $get, 'gv_by', array( '=' ), '=' ), |
|
676
|
676
|
); |
|
677
|
677
|
} |
|
678
|
678
|
|
|
679
|
679
|
// Get search mode passed in URL |
|
680
|
|
- $mode = isset( $get['mode'] ) && in_array( $get['mode'], array( 'any', 'all' ) ) ? $get['mode'] : 'any'; |
|
|
680
|
+ $mode = isset( $get[ 'mode' ] ) && in_array( $get[ 'mode' ], array( 'any', 'all' ) ) ? $get[ 'mode' ] : 'any'; |
|
681
|
681
|
|
|
682
|
682
|
// get the other search filters |
|
683
|
683
|
foreach ( $get as $key => $value ) { |
|
684
|
684
|
|
|
685
|
|
- if ( 0 !== strpos( $key, 'filter_' ) || gv_empty( $value, false, false ) || ( is_array( $value ) && count( $value ) === 1 && gv_empty( $value[0], false, false ) ) ) { |
|
|
685
|
+ if ( 0 !== strpos( $key, 'filter_' ) || gv_empty( $value, false, false ) || ( is_array( $value ) && count( $value ) === 1 && gv_empty( $value[ 0 ], false, false ) ) ) { |
|
686
|
686
|
continue; // Not a filter, or empty |
|
687
|
687
|
} |
|
688
|
688
|
|
|
@@ -696,19 +696,19 @@ discard block |
|
|
block discarded – undo |
|
696
|
696
|
continue; |
|
697
|
697
|
} |
|
698
|
698
|
|
|
699
|
|
- if ( ! isset( $filter['operator'] ) ) { |
|
700
|
|
- $filter['operator'] = $this->get_operator( $get, $key, array( 'contains' ), 'contains' ); |
|
|
699
|
+ if ( ! isset( $filter[ 'operator' ] ) ) { |
|
|
700
|
+ $filter[ 'operator' ] = $this->get_operator( $get, $key, array( 'contains' ), 'contains' ); |
|
701
|
701
|
} |
|
702
|
702
|
|
|
703
|
|
- if ( isset( $filter[0]['value'] ) ) { |
|
704
|
|
- $search_criteria['field_filters'] = array_merge( $search_criteria['field_filters'], $filter ); |
|
|
703
|
+ if ( isset( $filter[ 0 ][ 'value' ] ) ) { |
|
|
704
|
+ $search_criteria[ 'field_filters' ] = array_merge( $search_criteria[ 'field_filters' ], $filter ); |
|
705
|
705
|
|
|
706
|
706
|
// if date range type, set search mode to ALL |
|
707
|
|
- if ( ! empty( $filter[0]['operator'] ) && in_array( $filter[0]['operator'], array( '>=', '<=', '>', '<' ) ) ) { |
|
|
707
|
+ if ( ! empty( $filter[ 0 ][ 'operator' ] ) && in_array( $filter[ 0 ][ 'operator' ], array( '>=', '<=', '>', '<' ) ) ) { |
|
708
|
708
|
$mode = 'all'; |
|
709
|
709
|
} |
|
710
|
|
- } elseif( !empty( $filter ) ) { |
|
711
|
|
- $search_criteria['field_filters'][] = $filter; |
|
|
710
|
+ } elseif ( ! empty( $filter ) ) { |
|
|
711
|
+ $search_criteria[ 'field_filters' ][ ] = $filter; |
|
712
|
712
|
} |
|
713
|
713
|
} |
|
714
|
714
|
|
|
@@ -717,7 +717,7 @@ discard block |
|
|
block discarded – undo |
|
717
|
717
|
* @since 1.5.1 |
|
718
|
718
|
* @param[out,in] string $mode Search mode (`any` vs `all`) |
|
719
|
719
|
*/ |
|
720
|
|
- $search_criteria['field_filters']['mode'] = apply_filters( 'gravityview/search/mode', $mode ); |
|
|
720
|
+ $search_criteria[ 'field_filters' ][ 'mode' ] = apply_filters( 'gravityview/search/mode', $mode ); |
|
721
|
721
|
|
|
722
|
722
|
gravityview()->log->debug( 'Returned Search Criteria: ', array( 'data' => $search_criteria ) ); |
|
723
|
723
|
|
|
@@ -751,19 +751,19 @@ discard block |
|
|
block discarded – undo |
|
751
|
751
|
|
|
752
|
752
|
$query_class = $view->get_query_class(); |
|
753
|
753
|
|
|
754
|
|
- if ( empty( $search_criteria['field_filters'] ) ) { |
|
|
754
|
+ if ( empty( $search_criteria[ 'field_filters' ] ) ) { |
|
755
|
755
|
return; |
|
756
|
756
|
} |
|
757
|
757
|
|
|
758
|
758
|
$widgets = $view->widgets->by_id( $this->widget_id ); |
|
759
|
759
|
if ( $widgets->count() ) { |
|
760
|
760
|
$widgets = $widgets->all(); |
|
761
|
|
- $widget = $widgets[0]; |
|
|
761
|
+ $widget = $widgets[ 0 ]; |
|
762
|
762
|
|
|
763
|
763
|
$search_fields = json_decode( $widget->configuration->get( 'search_fields' ), true ); |
|
764
|
764
|
|
|
765
|
|
- foreach ( (array) $search_fields as $search_field ) { |
|
766
|
|
- if ( 'created_by' === $search_field['field'] && 'input_text' === $search_field['input'] ) { |
|
|
765
|
+ foreach ( (array)$search_fields as $search_field ) { |
|
|
766
|
+ if ( 'created_by' === $search_field[ 'field' ] && 'input_text' === $search_field[ 'input' ] ) { |
|
767
|
767
|
$created_by_text_mode = true; |
|
768
|
768
|
} |
|
769
|
769
|
} |
|
@@ -772,7 +772,7 @@ discard block |
|
|
block discarded – undo |
|
772
|
772
|
$extra_conditions = array(); |
|
773
|
773
|
$mode = 'any'; |
|
774
|
774
|
|
|
775
|
|
- foreach ( $search_criteria['field_filters'] as &$filter ) { |
|
|
775
|
+ foreach ( $search_criteria[ 'field_filters' ] as &$filter ) { |
|
776
|
776
|
if ( ! is_array( $filter ) ) { |
|
777
|
777
|
if ( in_array( strtolower( $filter ), array( 'any', 'all' ) ) ) { |
|
778
|
778
|
$mode = $filter; |
|
@@ -781,13 +781,13 @@ discard block |
|
|
block discarded – undo |
|
781
|
781
|
} |
|
782
|
782
|
|
|
783
|
783
|
// Construct a manual query for unapproved statuses |
|
784
|
|
- if ( 'is_approved' === $filter['key'] && in_array( \GravityView_Entry_Approval_Status::UNAPPROVED, (array) $filter['value'] ) ) { |
|
785
|
|
- $_tmp_query = new $query_class( $view->form->ID, array( |
|
|
784
|
+ if ( 'is_approved' === $filter[ 'key' ] && in_array( \GravityView_Entry_Approval_Status::UNAPPROVED, (array)$filter[ 'value' ] ) ) { |
|
|
785
|
+ $_tmp_query = new $query_class( $view->form->ID, array( |
|
786
|
786
|
'field_filters' => array( |
|
787
|
787
|
array( |
|
788
|
788
|
'operator' => 'in', |
|
789
|
789
|
'key' => 'is_approved', |
|
790
|
|
- 'value' => (array) $filter['value'], |
|
|
790
|
+ 'value' => (array)$filter[ 'value' ], |
|
791
|
791
|
), |
|
792
|
792
|
array( |
|
793
|
793
|
'operator' => 'is', |
|
@@ -799,30 +799,30 @@ discard block |
|
|
block discarded – undo |
|
799
|
799
|
) ); |
|
800
|
800
|
$_tmp_query_parts = $_tmp_query->_introspect(); |
|
801
|
801
|
|
|
802
|
|
- $extra_conditions[] = $_tmp_query_parts['where']; |
|
|
802
|
+ $extra_conditions[ ] = $_tmp_query_parts[ 'where' ]; |
|
803
|
803
|
|
|
804
|
804
|
$filter = false; |
|
805
|
805
|
continue; |
|
806
|
806
|
} |
|
807
|
807
|
|
|
808
|
808
|
// Construct manual query for text mode creator search |
|
809
|
|
- if ( 'created_by' === $filter['key'] && ! empty( $created_by_text_mode ) ) { |
|
810
|
|
- $extra_conditions[] = new GravityView_Widget_Search_Author_GF_Query_Condition( $filter, $view ); |
|
|
809
|
+ if ( 'created_by' === $filter[ 'key' ] && ! empty( $created_by_text_mode ) ) { |
|
|
810
|
+ $extra_conditions[ ] = new GravityView_Widget_Search_Author_GF_Query_Condition( $filter, $view ); |
|
811
|
811
|
$filter = false; |
|
812
|
812
|
continue; |
|
813
|
813
|
} |
|
814
|
814
|
|
|
815
|
815
|
// By default, we want searches to be wildcard for each field. |
|
816
|
|
- $filter['operator'] = empty( $filter['operator'] ) ? 'contains' : $filter['operator']; |
|
|
816
|
+ $filter[ 'operator' ] = empty( $filter[ 'operator' ] ) ? 'contains' : $filter[ 'operator' ]; |
|
817
|
817
|
|
|
818
|
818
|
// For multichoice, let's have an in (OR) search. |
|
819
|
|
- if ( is_array( $filter['value'] ) ) { |
|
820
|
|
- $filter['operator'] = 'in'; // @todo what about in contains (OR LIKE chains)? |
|
|
819
|
+ if ( is_array( $filter[ 'value' ] ) ) { |
|
|
820
|
+ $filter[ 'operator' ] = 'in'; // @todo what about in contains (OR LIKE chains)? |
|
821
|
821
|
} |
|
822
|
822
|
|
|
823
|
823
|
// Default form with joins functionality |
|
824
|
|
- if ( empty( $filter['form_id'] ) ) { |
|
825
|
|
- $filter['form_id'] = $view->form ? $view->form->ID : 0; |
|
|
824
|
+ if ( empty( $filter[ 'form_id' ] ) ) { |
|
|
825
|
+ $filter[ 'form_id' ] = $view->form ? $view->form->ID : 0; |
|
826
|
826
|
} |
|
827
|
827
|
|
|
828
|
828
|
/** |
|
@@ -832,28 +832,28 @@ discard block |
|
|
block discarded – undo |
|
832
|
832
|
* @since develop |
|
833
|
833
|
* @param \GV\View $view The View we're operating on. |
|
834
|
834
|
*/ |
|
835
|
|
- $filter['operator'] = apply_filters( 'gravityview_search_operator', $filter['operator'], $filter, $view ); |
|
|
835
|
+ $filter[ 'operator' ] = apply_filters( 'gravityview_search_operator', $filter[ 'operator' ], $filter, $view ); |
|
836
|
836
|
} |
|
837
|
837
|
|
|
838
|
|
- if ( ! empty( $search_criteria['start_date'] ) || ! empty( $search_criteria['end_date'] ) ) { |
|
|
838
|
+ if ( ! empty( $search_criteria[ 'start_date' ] ) || ! empty( $search_criteria[ 'end_date' ] ) ) { |
|
839
|
839
|
$date_criteria = array(); |
|
840
|
840
|
|
|
841
|
|
- if ( isset( $search_criteria['start_date'] ) ) { |
|
842
|
|
- $date_criteria['start_date'] = $search_criteria['start_date']; |
|
|
841
|
+ if ( isset( $search_criteria[ 'start_date' ] ) ) { |
|
|
842
|
+ $date_criteria[ 'start_date' ] = $search_criteria[ 'start_date' ]; |
|
843
|
843
|
} |
|
844
|
844
|
|
|
845
|
|
- if ( isset( $search_criteria['end_date'] ) ) { |
|
846
|
|
- $date_criteria['end_date'] = $search_criteria['end_date']; |
|
|
845
|
+ if ( isset( $search_criteria[ 'end_date' ] ) ) { |
|
|
846
|
+ $date_criteria[ 'end_date' ] = $search_criteria[ 'end_date' ]; |
|
847
|
847
|
} |
|
848
|
848
|
|
|
849
|
849
|
$_tmp_query = new $query_class( $view->form->ID, $date_criteria ); |
|
850
|
850
|
$_tmp_query_parts = $_tmp_query->_introspect(); |
|
851
|
|
- $extra_conditions[] = $_tmp_query_parts['where']; |
|
|
851
|
+ $extra_conditions[ ] = $_tmp_query_parts[ 'where' ]; |
|
852
|
852
|
} |
|
853
|
853
|
|
|
854
|
854
|
$search_conditions = array(); |
|
855
|
855
|
|
|
856
|
|
- if ( $filters = array_filter( $search_criteria['field_filters'] ) ) { |
|
|
856
|
+ if ( $filters = array_filter( $search_criteria[ 'field_filters' ] ) ) { |
|
857
|
857
|
|
|
858
|
858
|
foreach ( $filters as $filter ) { |
|
859
|
859
|
if ( ! is_array( $filter ) ) { |
|
@@ -866,20 +866,20 @@ discard block |
|
|
block discarded – undo |
|
866
|
866
|
* code by reusing what's inside GF_Query already as they |
|
867
|
867
|
* take care of many small things like forcing numeric, etc. |
|
868
|
868
|
*/ |
|
869
|
|
- $_tmp_query = new $query_class( $filter['form_id'], array( 'mode' => 'any', 'field_filters' => array( $filter ) ) ); |
|
|
869
|
+ $_tmp_query = new $query_class( $filter[ 'form_id' ], array( 'mode' => 'any', 'field_filters' => array( $filter ) ) ); |
|
870
|
870
|
$_tmp_query_parts = $_tmp_query->_introspect(); |
|
871
|
|
- $search_condition = $_tmp_query_parts['where']; |
|
|
871
|
+ $search_condition = $_tmp_query_parts[ 'where' ]; |
|
872
|
872
|
|
|
873
|
|
- if ( empty( $filter['key'] ) && $search_condition->expressions ) { |
|
874
|
|
- $search_conditions[] = $search_condition; // new GravityView_Widget_Search_All_GF_Query_Condition( $search_condition, $view ); |
|
|
873
|
+ if ( empty( $filter[ 'key' ] ) && $search_condition->expressions ) { |
|
|
874
|
+ $search_conditions[ ] = $search_condition; // new GravityView_Widget_Search_All_GF_Query_Condition( $search_condition, $view ); |
|
875
|
875
|
} else { |
|
876
|
876
|
$left = $search_condition->left; |
|
877
|
877
|
$alias = $query->_alias( $left->field_id, $left->source, $left->is_entry_column() ? 't' : 'm' ); |
|
878
|
878
|
|
|
879
|
879
|
if ( $view->joins && $left->field_id == GF_Query_Column::META ) { |
|
880
|
|
- $search_conditions[] = new GravityView_Widget_Search_All_GF_Query_Condition( $search_condition, $view ); |
|
|
880
|
+ $search_conditions[ ] = new GravityView_Widget_Search_All_GF_Query_Condition( $search_condition, $view ); |
|
881
|
881
|
} else { |
|
882
|
|
- $search_conditions[] = new GF_Query_Condition( |
|
|
882
|
+ $search_conditions[ ] = new GF_Query_Condition( |
|
883
|
883
|
new GF_Query_Column( $left->field_id, $left->source, $alias ), |
|
884
|
884
|
$search_condition->operator, |
|
885
|
885
|
$search_condition->right |
|
@@ -901,7 +901,7 @@ discard block |
|
|
block discarded – undo |
|
901
|
901
|
/** |
|
902
|
902
|
* Combine the parts as a new WHERE clause. |
|
903
|
903
|
*/ |
|
904
|
|
- $where = call_user_func_array( '\GF_Query_Condition::_and', array_merge( array( $query_parts['where'] ), $search_conditions, $extra_conditions ) ); |
|
|
904
|
+ $where = call_user_func_array( '\GF_Query_Condition::_and', array_merge( array( $query_parts[ 'where' ] ), $search_conditions, $extra_conditions ) ); |
|
905
|
905
|
$query->where( $where ); |
|
906
|
906
|
} |
|
907
|
907
|
|
|
@@ -924,7 +924,7 @@ discard block |
|
|
block discarded – undo |
|
924
|
924
|
$field_id = str_replace( 'filter_', '', $key ); |
|
925
|
925
|
|
|
926
|
926
|
// calculates field_id, removing 'filter_' and for '_' for advanced fields ( like name or checkbox ) |
|
927
|
|
- if ( preg_match('/^[0-9_]+$/ism', $field_id ) ) { |
|
|
927
|
+ if ( preg_match( '/^[0-9_]+$/ism', $field_id ) ) { |
|
928
|
928
|
$field_id = str_replace( '_', '.', $field_id ); |
|
929
|
929
|
} |
|
930
|
930
|
|
|
@@ -981,7 +981,7 @@ discard block |
|
|
block discarded – undo |
|
981
|
981
|
// form is in searchable fields |
|
982
|
982
|
$found = false; |
|
983
|
983
|
foreach ( $searchable_fields as $field ) { |
|
984
|
|
- if ( $field_id == $field['field'] && $form->ID == $field['form_id'] ) { |
|
|
984
|
+ if ( $field_id == $field[ 'field' ] && $form->ID == $field[ 'form_id' ] ) { |
|
985
|
985
|
$found = true; |
|
986
|
986
|
break; |
|
987
|
987
|
} |
|
@@ -1017,7 +1017,7 @@ discard block |
|
|
block discarded – undo |
|
1017
|
1017
|
|
|
1018
|
1018
|
case 'select': |
|
1019
|
1019
|
case 'radio': |
|
1020
|
|
- $filter['operator'] = $this->get_operator( $get, $key, array( 'is' ), 'is' ); |
|
|
1020
|
+ $filter[ 'operator' ] = $this->get_operator( $get, $key, array( 'is' ), 'is' ); |
|
1021
|
1021
|
break; |
|
1022
|
1022
|
|
|
1023
|
1023
|
case 'post_category': |
|
@@ -1031,7 +1031,7 @@ discard block |
|
|
block discarded – undo |
|
1031
|
1031
|
|
|
1032
|
1032
|
foreach ( $value as $val ) { |
|
1033
|
1033
|
$cat = get_term( $val, 'category' ); |
|
1034
|
|
- $filter[] = array( |
|
|
1034
|
+ $filter[ ] = array( |
|
1035
|
1035
|
'key' => $field_id, |
|
1036
|
1036
|
'value' => esc_attr( $cat->name ) . ':' . $val, |
|
1037
|
1037
|
'operator' => $this->get_operator( $get, $key, array( 'is' ), 'is' ), |
|
@@ -1050,7 +1050,7 @@ discard block |
|
|
block discarded – undo |
|
1050
|
1050
|
$filter = array(); |
|
1051
|
1051
|
|
|
1052
|
1052
|
foreach ( $value as $val ) { |
|
1053
|
|
- $filter[] = array( 'key' => $field_id, 'value' => $val ); |
|
|
1053
|
+ $filter[ ] = array( 'key' => $field_id, 'value' => $val ); |
|
1054
|
1054
|
} |
|
1055
|
1055
|
|
|
1056
|
1056
|
break; |
|
@@ -1059,9 +1059,9 @@ discard block |
|
|
block discarded – undo |
|
1059
|
1059
|
// convert checkbox on/off into the correct search filter |
|
1060
|
1060
|
if ( false !== strpos( $field_id, '.' ) && ! empty( $form_field->inputs ) && ! empty( $form_field->choices ) ) { |
|
1061
|
1061
|
foreach ( $form_field->inputs as $k => $input ) { |
|
1062
|
|
- if ( $input['id'] == $field_id ) { |
|
1063
|
|
- $filter['value'] = $form_field->choices[ $k ]['value']; |
|
1064
|
|
- $filter['operator'] = $this->get_operator( $get, $key, array( 'is' ), 'is' ); |
|
|
1062
|
+ if ( $input[ 'id' ] == $field_id ) { |
|
|
1063
|
+ $filter[ 'value' ] = $form_field->choices[ $k ][ 'value' ]; |
|
|
1064
|
+ $filter[ 'operator' ] = $this->get_operator( $get, $key, array( 'is' ), 'is' ); |
|
1065
|
1065
|
break; |
|
1066
|
1066
|
} |
|
1067
|
1067
|
} |
|
@@ -1071,7 +1071,7 @@ discard block |
|
|
block discarded – undo |
|
1071
|
1071
|
$filter = array(); |
|
1072
|
1072
|
|
|
1073
|
1073
|
foreach ( $value as $val ) { |
|
1074
|
|
- $filter[] = array( |
|
|
1074
|
+ $filter[ ] = array( |
|
1075
|
1075
|
'key' => $field_id, |
|
1076
|
1076
|
'value' => $val, |
|
1077
|
1077
|
'operator' => $this->get_operator( $get, $key, array( 'is' ), 'is' ), |
|
@@ -1092,9 +1092,9 @@ discard block |
|
|
block discarded – undo |
|
1092
|
1092
|
foreach ( $words as $word ) { |
|
1093
|
1093
|
if ( ! empty( $word ) && strlen( $word ) > 1 ) { |
|
1094
|
1094
|
// Keep the same key for each filter |
|
1095
|
|
- $filter['value'] = $word; |
|
|
1095
|
+ $filter[ 'value' ] = $word; |
|
1096
|
1096
|
// Add a search for the value |
|
1097
|
|
- $filters[] = $filter; |
|
|
1097
|
+ $filters[ ] = $filter; |
|
1098
|
1098
|
} |
|
1099
|
1099
|
} |
|
1100
|
1100
|
|
|
@@ -1108,19 +1108,19 @@ discard block |
|
|
block discarded – undo |
|
1108
|
1108
|
|
|
1109
|
1109
|
foreach ( $searchable_fields as $searchable_field ) { |
|
1110
|
1110
|
|
|
1111
|
|
- if( $form_field->ID !== $searchable_field['field'] ) { |
|
|
1111
|
+ if ( $form_field->ID !== $searchable_field[ 'field' ] ) { |
|
1112
|
1112
|
continue; |
|
1113
|
1113
|
} |
|
1114
|
1114
|
|
|
1115
|
1115
|
// Only exact-match dropdowns, not text search |
|
1116
|
|
- if( in_array( $searchable_field['input'], array( 'text', 'search' ), true ) ) { |
|
|
1116
|
+ if ( in_array( $searchable_field[ 'input' ], array( 'text', 'search' ), true ) ) { |
|
1117
|
1117
|
continue; |
|
1118
|
1118
|
} |
|
1119
|
1119
|
|
|
1120
|
1120
|
$input_id = gravityview_get_input_id_from_id( $form_field->ID ); |
|
1121
|
1121
|
|
|
1122
|
1122
|
if ( 4 === $input_id ) { |
|
1123
|
|
- $filter['operator'] = $this->get_operator( $get, $key, array( 'is' ), 'is' ); |
|
|
1123
|
+ $filter[ 'operator' ] = $this->get_operator( $get, $key, array( 'is' ), 'is' ); |
|
1124
|
1124
|
}; |
|
1125
|
1125
|
} |
|
1126
|
1126
|
} |
|
@@ -1147,12 +1147,12 @@ discard block |
|
|
block discarded – undo |
|
1147
|
1147
|
* @since 1.16.3 |
|
1148
|
1148
|
* Safeguard until GF implements '<=' operator |
|
1149
|
1149
|
*/ |
|
1150
|
|
- if( !GFFormsModel::is_valid_operator( $operator ) && $operator === '<=' ) { |
|
|
1150
|
+ if ( ! GFFormsModel::is_valid_operator( $operator ) && $operator === '<=' ) { |
|
1151
|
1151
|
$operator = '<'; |
|
1152
|
1152
|
$date = date( 'Y-m-d', strtotime( self::get_formatted_date( $date, 'Y-m-d', $date_format ) . ' +1 day' ) ); |
|
1153
|
1153
|
} |
|
1154
|
1154
|
|
|
1155
|
|
- $filter[] = array( |
|
|
1155
|
+ $filter[ ] = array( |
|
1156
|
1156
|
'key' => $field_id, |
|
1157
|
1157
|
'value' => self::get_formatted_date( $date, 'Y-m-d', $date_format ), |
|
1158
|
1158
|
'operator' => $this->get_operator( $get, $key, array( $operator ), $operator ), |
|
@@ -1160,8 +1160,8 @@ discard block |
|
|
block discarded – undo |
|
1160
|
1160
|
} |
|
1161
|
1161
|
} else { |
|
1162
|
1162
|
$date = $value; |
|
1163
|
|
- $filter['value'] = self::get_formatted_date( $date, 'Y-m-d', $date_format ); |
|
1164
|
|
- $filter['operator'] = $this->get_operator( $get, $key, array( 'is' ), 'is' ); |
|
|
1163
|
+ $filter[ 'value' ] = self::get_formatted_date( $date, 'Y-m-d', $date_format ); |
|
|
1164
|
+ $filter[ 'operator' ] = $this->get_operator( $get, $key, array( 'is' ), 'is' ); |
|
1165
|
1165
|
} |
|
1166
|
1166
|
|
|
1167
|
1167
|
break; |
|
@@ -1192,7 +1192,7 @@ discard block |
|
|
block discarded – undo |
|
1192
|
1192
|
'ymd_dot' => 'Y.m.d', |
|
1193
|
1193
|
); |
|
1194
|
1194
|
|
|
1195
|
|
- if ( ! empty( $field->dateFormat ) && isset( $datepicker[ $field->dateFormat ] ) ){ |
|
|
1195
|
+ if ( ! empty( $field->dateFormat ) && isset( $datepicker[ $field->dateFormat ] ) ) { |
|
1196
|
1196
|
$format = $datepicker[ $field->dateFormat ]; |
|
1197
|
1197
|
} |
|
1198
|
1198
|
|
|
@@ -1229,7 +1229,7 @@ discard block |
|
|
block discarded – undo |
|
1229
|
1229
|
public function add_template_path( $file_paths ) { |
|
1230
|
1230
|
|
|
1231
|
1231
|
// Index 100 is the default GravityView template path. |
|
1232
|
|
- $file_paths[102] = self::$file . 'templates/'; |
|
|
1232
|
+ $file_paths[ 102 ] = self::$file . 'templates/'; |
|
1233
|
1233
|
|
|
1234
|
1234
|
return $file_paths; |
|
1235
|
1235
|
} |
|
@@ -1248,7 +1248,7 @@ discard block |
|
|
block discarded – undo |
|
1248
|
1248
|
$has_date = false; |
|
1249
|
1249
|
|
|
1250
|
1250
|
foreach ( $search_fields as $k => $field ) { |
|
1251
|
|
- if ( in_array( $field['input'], array( 'date', 'date_range', 'entry_date' ) ) ) { |
|
|
1251
|
+ if ( in_array( $field[ 'input' ], array( 'date', 'date_range', 'entry_date' ) ) ) { |
|
1252
|
1252
|
$has_date = true; |
|
1253
|
1253
|
break; |
|
1254
|
1254
|
} |
|
@@ -1275,7 +1275,7 @@ discard block |
|
|
block discarded – undo |
|
1275
|
1275
|
} |
|
1276
|
1276
|
|
|
1277
|
1277
|
// get configured search fields |
|
1278
|
|
- $search_fields = ! empty( $widget_args['search_fields'] ) ? json_decode( $widget_args['search_fields'], true ) : ''; |
|
|
1278
|
+ $search_fields = ! empty( $widget_args[ 'search_fields' ] ) ? json_decode( $widget_args[ 'search_fields' ], true ) : ''; |
|
1279
|
1279
|
|
|
1280
|
1280
|
if ( empty( $search_fields ) || ! is_array( $search_fields ) ) { |
|
1281
|
1281
|
gravityview()->log->debug( 'No search fields configured for widget:', array( 'data' => $widget_args ) ); |
|
@@ -1291,40 +1291,40 @@ discard block |
|
|
block discarded – undo |
|
1291
|
1291
|
|
|
1292
|
1292
|
$updated_field = $this->get_search_filter_details( $updated_field ); |
|
1293
|
1293
|
|
|
1294
|
|
- switch ( $field['field'] ) { |
|
|
1294
|
+ switch ( $field[ 'field' ] ) { |
|
1295
|
1295
|
|
|
1296
|
1296
|
case 'search_all': |
|
1297
|
|
- $updated_field['key'] = 'search_all'; |
|
1298
|
|
- $updated_field['input'] = 'search_all'; |
|
1299
|
|
- $updated_field['value'] = $this->rgget_or_rgpost( 'gv_search' ); |
|
|
1297
|
+ $updated_field[ 'key' ] = 'search_all'; |
|
|
1298
|
+ $updated_field[ 'input' ] = 'search_all'; |
|
|
1299
|
+ $updated_field[ 'value' ] = $this->rgget_or_rgpost( 'gv_search' ); |
|
1300
|
1300
|
break; |
|
1301
|
1301
|
|
|
1302
|
1302
|
case 'entry_date': |
|
1303
|
|
- $updated_field['key'] = 'entry_date'; |
|
1304
|
|
- $updated_field['input'] = 'entry_date'; |
|
1305
|
|
- $updated_field['value'] = array( |
|
|
1303
|
+ $updated_field[ 'key' ] = 'entry_date'; |
|
|
1304
|
+ $updated_field[ 'input' ] = 'entry_date'; |
|
|
1305
|
+ $updated_field[ 'value' ] = array( |
|
1306
|
1306
|
'start' => $this->rgget_or_rgpost( 'gv_start' ), |
|
1307
|
1307
|
'end' => $this->rgget_or_rgpost( 'gv_end' ), |
|
1308
|
1308
|
); |
|
1309
|
1309
|
break; |
|
1310
|
1310
|
|
|
1311
|
1311
|
case 'entry_id': |
|
1312
|
|
- $updated_field['key'] = 'entry_id'; |
|
1313
|
|
- $updated_field['input'] = 'entry_id'; |
|
1314
|
|
- $updated_field['value'] = $this->rgget_or_rgpost( 'gv_id' ); |
|
|
1312
|
+ $updated_field[ 'key' ] = 'entry_id'; |
|
|
1313
|
+ $updated_field[ 'input' ] = 'entry_id'; |
|
|
1314
|
+ $updated_field[ 'value' ] = $this->rgget_or_rgpost( 'gv_id' ); |
|
1315
|
1315
|
break; |
|
1316
|
1316
|
|
|
1317
|
1317
|
case 'created_by': |
|
1318
|
|
- $updated_field['key'] = 'created_by'; |
|
1319
|
|
- $updated_field['name'] = 'gv_by'; |
|
1320
|
|
- $updated_field['value'] = $this->rgget_or_rgpost( 'gv_by' ); |
|
1321
|
|
- $updated_field['choices'] = self::get_created_by_choices( $view ); |
|
|
1318
|
+ $updated_field[ 'key' ] = 'created_by'; |
|
|
1319
|
+ $updated_field[ 'name' ] = 'gv_by'; |
|
|
1320
|
+ $updated_field[ 'value' ] = $this->rgget_or_rgpost( 'gv_by' ); |
|
|
1321
|
+ $updated_field[ 'choices' ] = self::get_created_by_choices( $view ); |
|
1322
|
1322
|
break; |
|
1323
|
1323
|
|
|
1324
|
1324
|
case 'is_approved': |
|
1325
|
|
- $updated_field['key'] = 'is_approved'; |
|
1326
|
|
- $updated_field['value'] = $this->rgget_or_rgpost( 'filter_is_approved' ); |
|
1327
|
|
- $updated_field['choices'] = self::get_is_approved_choices(); |
|
|
1325
|
+ $updated_field[ 'key' ] = 'is_approved'; |
|
|
1326
|
+ $updated_field[ 'value' ] = $this->rgget_or_rgpost( 'filter_is_approved' ); |
|
|
1327
|
+ $updated_field[ 'choices' ] = self::get_is_approved_choices(); |
|
1328
|
1328
|
break; |
|
1329
|
1329
|
} |
|
1330
|
1330
|
|
|
@@ -1343,16 +1343,16 @@ discard block |
|
|
block discarded – undo |
|
1343
|
1343
|
*/ |
|
1344
|
1344
|
$gravityview_view->search_fields = apply_filters( 'gravityview_widget_search_filters', $search_fields, $this, $widget_args, $context ); |
|
1345
|
1345
|
|
|
1346
|
|
- $gravityview_view->search_layout = ! empty( $widget_args['search_layout'] ) ? $widget_args['search_layout'] : 'horizontal'; |
|
|
1346
|
+ $gravityview_view->search_layout = ! empty( $widget_args[ 'search_layout' ] ) ? $widget_args[ 'search_layout' ] : 'horizontal'; |
|
1347
|
1347
|
|
|
1348
|
1348
|
/** @since 1.14 */ |
|
1349
|
|
- $gravityview_view->search_mode = ! empty( $widget_args['search_mode'] ) ? $widget_args['search_mode'] : 'any'; |
|
|
1349
|
+ $gravityview_view->search_mode = ! empty( $widget_args[ 'search_mode' ] ) ? $widget_args[ 'search_mode' ] : 'any'; |
|
1350
|
1350
|
|
|
1351
|
|
- $custom_class = ! empty( $widget_args['custom_class'] ) ? $widget_args['custom_class'] : ''; |
|
|
1351
|
+ $custom_class = ! empty( $widget_args[ 'custom_class' ] ) ? $widget_args[ 'custom_class' ] : ''; |
|
1352
|
1352
|
|
|
1353
|
1353
|
$gravityview_view->search_class = self::get_search_class( $custom_class ); |
|
1354
|
1354
|
|
|
1355
|
|
- $gravityview_view->search_clear = ! empty( $widget_args['search_clear'] ) ? $widget_args['search_clear'] : false; |
|
|
1355
|
+ $gravityview_view->search_clear = ! empty( $widget_args[ 'search_clear' ] ) ? $widget_args[ 'search_clear' ] : false; |
|
1356
|
1356
|
|
|
1357
|
1357
|
if ( $this->has_date_field( $search_fields ) ) { |
|
1358
|
1358
|
// enqueue datepicker stuff only if needed! |
|
@@ -1374,10 +1374,10 @@ discard block |
|
|
block discarded – undo |
|
1374
|
1374
|
public static function get_search_class( $custom_class = '' ) { |
|
1375
|
1375
|
$gravityview_view = GravityView_View::getInstance(); |
|
1376
|
1376
|
|
|
1377
|
|
- $search_class = 'gv-search-'.$gravityview_view->search_layout; |
|
|
1377
|
+ $search_class = 'gv-search-' . $gravityview_view->search_layout; |
|
1378
|
1378
|
|
|
1379
|
|
- if ( ! empty( $custom_class ) ) { |
|
1380
|
|
- $search_class .= ' '.$custom_class; |
|
|
1379
|
+ if ( ! empty( $custom_class ) ) { |
|
|
1380
|
+ $search_class .= ' ' . $custom_class; |
|
1381
|
1381
|
} |
|
1382
|
1382
|
|
|
1383
|
1383
|
/** |
|
@@ -1421,9 +1421,9 @@ discard block |
|
|
block discarded – undo |
|
1421
|
1421
|
|
|
1422
|
1422
|
if ( ! $label ) { |
|
1423
|
1423
|
|
|
1424
|
|
- $label = isset( $form_field['label'] ) ? $form_field['label'] : ''; |
|
|
1424
|
+ $label = isset( $form_field[ 'label' ] ) ? $form_field[ 'label' ] : ''; |
|
1425
|
1425
|
|
|
1426
|
|
- switch( $field['field'] ) { |
|
|
1426
|
+ switch ( $field[ 'field' ] ) { |
|
1427
|
1427
|
case 'search_all': |
|
1428
|
1428
|
$label = __( 'Search Entries:', 'gravityview' ); |
|
1429
|
1429
|
break; |
|
@@ -1435,10 +1435,10 @@ discard block |
|
|
block discarded – undo |
|
1435
|
1435
|
break; |
|
1436
|
1436
|
default: |
|
1437
|
1437
|
// If this is a field input, not a field |
|
1438
|
|
- if ( strpos( $field['field'], '.' ) > 0 && ! empty( $form_field['inputs'] ) ) { |
|
|
1438
|
+ if ( strpos( $field[ 'field' ], '.' ) > 0 && ! empty( $form_field[ 'inputs' ] ) ) { |
|
1439
|
1439
|
|
|
1440
|
1440
|
// Get the label for the field in question, which returns an array |
|
1441
|
|
- $items = wp_list_filter( $form_field['inputs'], array( 'id' => $field['field'] ) ); |
|
|
1441
|
+ $items = wp_list_filter( $form_field[ 'inputs' ], array( 'id' => $field[ 'field' ] ) ); |
|
1442
|
1442
|
|
|
1443
|
1443
|
// Get the item with the `label` key |
|
1444
|
1444
|
$values = wp_list_pluck( $items, 'label' ); |
|
@@ -1477,32 +1477,32 @@ discard block |
|
|
block discarded – undo |
|
1477
|
1477
|
$form = $gravityview_view->getForm(); |
|
1478
|
1478
|
|
|
1479
|
1479
|
// for advanced field ids (eg, first name / last name ) |
|
1480
|
|
- $name = 'filter_' . str_replace( '.', '_', $field['field'] ); |
|
|
1480
|
+ $name = 'filter_' . str_replace( '.', '_', $field[ 'field' ] ); |
|
1481
|
1481
|
|
|
1482
|
1482
|
// get searched value from $_GET/$_POST (string or array) |
|
1483
|
1483
|
$value = $this->rgget_or_rgpost( $name ); |
|
1484
|
1484
|
|
|
1485
|
1485
|
// get form field details |
|
1486
|
|
- $form_field = gravityview_get_field( $form, $field['field'] ); |
|
|
1486
|
+ $form_field = gravityview_get_field( $form, $field[ 'field' ] ); |
|
1487
|
1487
|
|
|
1488
|
1488
|
$filter = array( |
|
1489
|
|
- 'key' => $field['field'], |
|
|
1489
|
+ 'key' => $field[ 'field' ], |
|
1490
|
1490
|
'name' => $name, |
|
1491
|
1491
|
'label' => self::get_field_label( $field, $form_field ), |
|
1492
|
|
- 'input' => $field['input'], |
|
|
1492
|
+ 'input' => $field[ 'input' ], |
|
1493
|
1493
|
'value' => $value, |
|
1494
|
|
- 'type' => $form_field['type'], |
|
|
1494
|
+ 'type' => $form_field[ 'type' ], |
|
1495
|
1495
|
); |
|
1496
|
1496
|
|
|
1497
|
1497
|
// collect choices |
|
1498
|
|
- if ( 'post_category' === $form_field['type'] && ! empty( $form_field['displayAllCategories'] ) && empty( $form_field['choices'] ) ) { |
|
1499
|
|
- $filter['choices'] = gravityview_get_terms_choices(); |
|
1500
|
|
- } elseif ( ! empty( $form_field['choices'] ) ) { |
|
1501
|
|
- $filter['choices'] = $form_field['choices']; |
|
|
1498
|
+ if ( 'post_category' === $form_field[ 'type' ] && ! empty( $form_field[ 'displayAllCategories' ] ) && empty( $form_field[ 'choices' ] ) ) { |
|
|
1499
|
+ $filter[ 'choices' ] = gravityview_get_terms_choices(); |
|
|
1500
|
+ } elseif ( ! empty( $form_field[ 'choices' ] ) ) { |
|
|
1501
|
+ $filter[ 'choices' ] = $form_field[ 'choices' ]; |
|
1502
|
1502
|
} |
|
1503
|
1503
|
|
|
1504
|
|
- if ( 'date_range' === $field['input'] && empty( $value ) ) { |
|
1505
|
|
- $filter['value'] = array( 'start' => '', 'end' => '' ); |
|
|
1504
|
+ if ( 'date_range' === $field[ 'input' ] && empty( $value ) ) { |
|
|
1505
|
+ $filter[ 'value' ] = array( 'start' => '', 'end' => '' ); |
|
1506
|
1506
|
} |
|
1507
|
1507
|
|
|
1508
|
1508
|
return $filter; |
|
@@ -1537,7 +1537,7 @@ discard block |
|
|
block discarded – undo |
|
1537
|
1537
|
* @param \GV\View $view The view. |
|
1538
|
1538
|
*/ |
|
1539
|
1539
|
$text = apply_filters( 'gravityview/search/created_by/text', $user->display_name, $user, $view ); |
|
1540
|
|
- $choices[] = array( |
|
|
1540
|
+ $choices[ ] = array( |
|
1541
|
1541
|
'value' => $user->ID, |
|
1542
|
1542
|
'text' => $text, |
|
1543
|
1543
|
); |
|
@@ -1557,9 +1557,9 @@ discard block |
|
|
block discarded – undo |
|
1557
|
1557
|
|
|
1558
|
1558
|
$choices = array(); |
|
1559
|
1559
|
foreach ( GravityView_Entry_Approval_Status::get_all() as $status ) { |
|
1560
|
|
- $choices[] = array( |
|
1561
|
|
- 'value' => $status['value'], |
|
1562
|
|
- 'text' => $status['label'], |
|
|
1560
|
+ $choices[ ] = array( |
|
|
1561
|
+ 'value' => $status[ 'value' ], |
|
|
1562
|
+ 'text' => $status[ 'label' ], |
|
1563
|
1563
|
); |
|
1564
|
1564
|
} |
|
1565
|
1565
|
|
|
@@ -1611,7 +1611,7 @@ discard block |
|
|
block discarded – undo |
|
1611
|
1611
|
*/ |
|
1612
|
1612
|
public function add_datepicker_js_dependency( $js_dependencies ) { |
|
1613
|
1613
|
|
|
1614
|
|
- $js_dependencies[] = 'jquery-ui-datepicker'; |
|
|
1614
|
+ $js_dependencies[ ] = 'jquery-ui-datepicker'; |
|
1615
|
1615
|
|
|
1616
|
1616
|
return $js_dependencies; |
|
1617
|
1617
|
} |
|
@@ -1655,7 +1655,7 @@ discard block |
|
|
block discarded – undo |
|
1655
|
1655
|
'isRTL' => is_rtl(), |
|
1656
|
1656
|
), $view_data ); |
|
1657
|
1657
|
|
|
1658
|
|
- $localizations['datepicker'] = $datepicker_settings; |
|
|
1658
|
+ $localizations[ 'datepicker' ] = $datepicker_settings; |
|
1659
|
1659
|
|
|
1660
|
1660
|
return $localizations; |
|
1661
|
1661
|
|
|
@@ -1682,7 +1682,7 @@ discard block |
|
|
block discarded – undo |
|
1682
|
1682
|
* @return void |
|
1683
|
1683
|
*/ |
|
1684
|
1684
|
private function maybe_enqueue_flexibility() { |
|
1685
|
|
- if ( isset( $_SERVER['HTTP_USER_AGENT'] ) && preg_match( '/MSIE [8-9]/', $_SERVER['HTTP_USER_AGENT'] ) ) { |
|
|
1685
|
+ if ( isset( $_SERVER[ 'HTTP_USER_AGENT' ] ) && preg_match( '/MSIE [8-9]/', $_SERVER[ 'HTTP_USER_AGENT' ] ) ) { |
|
1686
|
1686
|
wp_enqueue_script( 'gv-flexibility' ); |
|
1687
|
1687
|
} |
|
1688
|
1688
|
} |
|
@@ -1704,7 +1704,7 @@ discard block |
|
|
block discarded – undo |
|
1704
|
1704
|
add_filter( 'gravityview_js_localization', array( $this, 'add_datepicker_localization' ), 10, 2 ); |
|
1705
|
1705
|
|
|
1706
|
1706
|
$scheme = is_ssl() ? 'https://' : 'http://'; |
|
1707
|
|
- wp_enqueue_style( 'jquery-ui-datepicker', $scheme.'ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/themes/smoothness/jquery-ui.css' ); |
|
|
1707
|
+ wp_enqueue_style( 'jquery-ui-datepicker', $scheme . 'ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/themes/smoothness/jquery-ui.css' ); |
|
1708
|
1708
|
|
|
1709
|
1709
|
/** |
|
1710
|
1710
|
* @filter `gravityview_search_datepicker_class` |
|
@@ -1783,7 +1783,7 @@ discard block |
|
|
block discarded – undo |
|
1783
|
1783
|
public function add_preview_inputs() { |
|
1784
|
1784
|
global $wp; |
|
1785
|
1785
|
|
|
1786
|
|
- if ( ! is_preview() || ! current_user_can( 'publish_gravityviews') ) { |
|
|
1786
|
+ if ( ! is_preview() || ! current_user_can( 'publish_gravityviews' ) ) { |
|
1787
|
1787
|
return; |
|
1788
|
1788
|
} |
|
1789
|
1789
|
|
|
@@ -1835,7 +1835,7 @@ discard block |
|
|
block discarded – undo |
|
1835
|
1835
|
*/ |
|
1836
|
1836
|
class GravityView_Widget_Search_Author_GF_Query_Condition extends \GF_Query_Condition { |
|
1837
|
1837
|
public function __construct( $filter, $view ) { |
|
1838
|
|
- $this->value = $filter['value']; |
|
|
1838
|
+ $this->value = $filter[ 'value' ]; |
|
1839
|
1839
|
$this->view = $view; |
|
1840
|
1840
|
} |
|
1841
|
1841
|
|
|
@@ -1867,11 +1867,11 @@ discard block |
|
|
block discarded – undo |
|
1867
|
1867
|
$conditions = array(); |
|
1868
|
1868
|
|
|
1869
|
1869
|
foreach ( $user_fields as $user_field ) { |
|
1870
|
|
- $conditions[] = $wpdb->prepare( "`u`.`$user_field` LIKE %s", '%' . $wpdb->esc_like( $this->value ) . '%' ); |
|
|
1870
|
+ $conditions[ ] = $wpdb->prepare( "`u`.`$user_field` LIKE %s", '%' . $wpdb->esc_like( $this->value ) . '%' ); |
|
1871
|
1871
|
} |
|
1872
|
1872
|
|
|
1873
|
1873
|
foreach ( $user_meta_fields as $meta_field ) { |
|
1874
|
|
- $conditions[] = $wpdb->prepare( "(`um`.`meta_key` = %s AND `um`.`meta_value` LIKE %s)", $meta_field, '%' . $wpdb->esc_like( $this->value ) . '%' ); |
|
|
1874
|
+ $conditions[ ] = $wpdb->prepare( "(`um`.`meta_key` = %s AND `um`.`meta_value` LIKE %s)", $meta_field, '%' . $wpdb->esc_like( $this->value ) . '%' ); |
|
1875
|
1875
|
} |
|
1876
|
1876
|
|
|
1877
|
1877
|
$conditions = '(' . implode( ' OR ', $conditions ) . ')'; |
|
@@ -1898,7 +1898,7 @@ discard block |
|
|
block discarded – undo |
|
1898
|
1898
|
$conditions = array(); |
|
1899
|
1899
|
|
|
1900
|
1900
|
if ( $this->search_condition->left->field_id === \GF_Query_Column::META ) { |
|
1901
|
|
- $conditions[] = sprintf( "EXISTS(SELECT * FROM `$table` WHERE `meta_value` %s %s AND `entry_id` = `%s`.`id`)", |
|
|
1901
|
+ $conditions[ ] = sprintf( "EXISTS(SELECT * FROM `$table` WHERE `meta_value` %s %s AND `entry_id` = `%s`.`id`)", |
|
1902
|
1902
|
$this->search_condition->operator, $this->search_condition->right->sql( $query ), $query->search->left->alias ); |
|
1903
|
1903
|
} |
|
1904
|
1904
|
|