Completed
Push — develop ( 61b96c...a55ed0 )
by Zack
16:44 queued 13:30
created
includes/widgets/class-gravityview-widget-custom-content.php 1 patch
Spacing   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
 
18 18
 	function __construct() {
19 19
 
20
-		$this->widget_description = __('Insert custom text or HTML as a widget', 'gravityview' );
20
+		$this->widget_description = __( 'Insert custom text or HTML as a widget', 'gravityview' );
21 21
 
22 22
 		$default_values = array(
23 23
 			'header' => 1,
@@ -42,39 +42,39 @@  discard block
 block discarded – undo
42 42
 			),
43 43
 		);
44 44
 
45
-		parent::__construct( __( 'Custom Content', 'gravityview' ) , 'custom_content', $default_values, $settings );
45
+		parent::__construct( __( 'Custom Content', 'gravityview' ), 'custom_content', $default_values, $settings );
46 46
 	}
47 47
 
48
-	public function render_frontend( $widget_args, $content = '', $context = '') {
48
+	public function render_frontend( $widget_args, $content = '', $context = '' ) {
49 49
 
50
-		if( !$this->pre_render_frontend() ) {
50
+		if ( ! $this->pre_render_frontend() ) {
51 51
 			return;
52 52
 		}
53 53
 
54
-		if( !empty( $widget_args['title'] ) ) {
55
-			echo $widget_args['title'];
54
+		if ( ! empty( $widget_args[ 'title' ] ) ) {
55
+			echo $widget_args[ 'title' ];
56 56
 		}
57 57
 
58 58
 
59 59
 		// Make sure the class is loaded in DataTables
60
-		if( !class_exists( 'GFFormDisplay' ) ) {
60
+		if ( ! class_exists( 'GFFormDisplay' ) ) {
61 61
 			include_once( GFCommon::get_base_path() . '/form_display.php' );
62 62
 		}
63 63
 
64
-		$widget_args['content'] = trim( rtrim( $widget_args['content'] ) );
64
+		$widget_args[ 'content' ] = trim( rtrim( $widget_args[ 'content' ] ) );
65 65
 
66 66
 		// No custom content
67
-		if( empty( $widget_args['content'] ) ) {
68
-			do_action('gravityview_log_debug', sprintf( '%s[render_frontend]: No content.', get_class($this)) );
67
+		if ( empty( $widget_args[ 'content' ] ) ) {
68
+			do_action( 'gravityview_log_debug', sprintf( '%s[render_frontend]: No content.', get_class( $this ) ) );
69 69
 			return;
70 70
 		}
71 71
 
72 72
 		// Add paragraphs?
73
-		if( !empty( $widget_args['wpautop'] ) ) {
74
-			$widget_args['content'] = wpautop( $widget_args['content'] );
73
+		if ( ! empty( $widget_args[ 'wpautop' ] ) ) {
74
+			$widget_args[ 'content' ] = wpautop( $widget_args[ 'content' ] );
75 75
 		}
76 76
 
77
-		$content = $widget_args['content'];
77
+		$content = $widget_args[ 'content' ];
78 78
 
79 79
 		$content = GravityView_Merge_Tags::replace_variables( $content );
80 80
 
@@ -84,10 +84,10 @@  discard block
 block discarded – undo
84 84
 
85 85
 
86 86
 		// Add custom class
87
-		$class = !empty( $widget_args['custom_class'] ) ? $widget_args['custom_class'] : '';
87
+		$class = ! empty( $widget_args[ 'custom_class' ] ) ? $widget_args[ 'custom_class' ] : '';
88 88
 		$class = gravityview_sanitize_html_class( $class );
89 89
 
90
-		echo '<div class="gv-widget-custom-content '.$class.'">'. $content .'</div>';
90
+		echo '<div class="gv-widget-custom-content ' . $class . '">' . $content . '</div>';
91 91
 
92 92
 	}
93 93
 
Please login to merge, or discard this patch.
includes/widgets/class-gravityview-widget-pagination-info.php 1 patch
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
 
17 17
 	function __construct() {
18 18
 
19
-		$this->widget_description = __('Summary of the number of visible entries out of the total results.', 'gravityview' );
19
+		$this->widget_description = __( 'Summary of the number of visible entries out of the total results.', 'gravityview' );
20 20
 
21 21
 		$default_values = array(
22 22
 			'header' => 1,
@@ -25,18 +25,18 @@  discard block
 block discarded – undo
25 25
 
26 26
 		$settings = array();
27 27
 
28
-		parent::__construct( __( 'Show Pagination Info', 'gravityview' ) , 'page_info', $default_values, $settings );
28
+		parent::__construct( __( 'Show Pagination Info', 'gravityview' ), 'page_info', $default_values, $settings );
29 29
 	}
30 30
 
31
-	public function render_frontend( $widget_args, $content = '', $context = '') {
31
+	public function render_frontend( $widget_args, $content = '', $context = '' ) {
32 32
 		$gravityview_view = GravityView_View::getInstance();
33 33
 
34
-		if( !$this->pre_render_frontend() ) {
34
+		if ( ! $this->pre_render_frontend() ) {
35 35
 			return;
36 36
 		}
37 37
 
38
-		if( !empty( $widget_args['title'] ) ) {
39
-			echo $widget_args['title'];
38
+		if ( ! empty( $widget_args[ 'title' ] ) ) {
39
+			echo $widget_args[ 'title' ];
40 40
 		}
41 41
 
42 42
 		$pagination_counts = $gravityview_view->getPaginationCounts();
@@ -45,16 +45,16 @@  discard block
 block discarded – undo
45 45
 
46 46
 		$output = '';
47 47
 
48
-		if( ! empty( $pagination_counts ) ) {
48
+		if ( ! empty( $pagination_counts ) ) {
49 49
 
50
-			$first = $pagination_counts['first'];
51
-			$last = $pagination_counts['last'];
52
-			$total = $pagination_counts['total'];
50
+			$first = $pagination_counts[ 'first' ];
51
+			$last = $pagination_counts[ 'last' ];
52
+			$total = $pagination_counts[ 'total' ];
53 53
 
54
-			$class = !empty( $widget_args['custom_class'] ) ? $widget_args['custom_class'] : '';
54
+			$class = ! empty( $widget_args[ 'custom_class' ] ) ? $widget_args[ 'custom_class' ] : '';
55 55
 			$class = gravityview_sanitize_html_class( $class );
56 56
 
57
-			$output = '<div class="gv-widget-pagination '.$class.'"><p>'. sprintf(__( 'Displaying %1$s - %2$s of %3$s', 'gravityview' ), number_format_i18n( $first ), number_format_i18n( $last ), number_format_i18n( $total ) ) . '</p></div>';
57
+			$output = '<div class="gv-widget-pagination ' . $class . '"><p>' . sprintf( __( 'Displaying %1$s - %2$s of %3$s', 'gravityview' ), number_format_i18n( $first ), number_format_i18n( $last ), number_format_i18n( $total ) ) . '</p></div>';
58 58
 		}
59 59
 
60 60
 		/**
Please login to merge, or discard this patch.
includes/class-gravityview-settings.php 3 patches
Doc Comments   +1 added lines patch added patch discarded remove patch
@@ -301,6 +301,7 @@
 block discarded – undo
301 301
 	 * Make protected public
302 302
 	 * @inheritDoc
303 303
 	 * @access public
304
+	 * @param string $setting_name
304 305
 	 */
305 306
 	public function get_app_setting( $setting_name ) {
306 307
 
Please login to merge, or discard this patch.
Indentation   +95 added lines, -95 removed lines patch added patch discarded remove patch
@@ -122,10 +122,10 @@  discard block
 block discarded – undo
122 122
 	}
123 123
 
124 124
 	/**
125
-     * Uninstall all traces of GravityView
126
-     *
127
-     * Note: method is public because parent method is public
128
-     *
125
+	 * Uninstall all traces of GravityView
126
+	 *
127
+	 * Note: method is public because parent method is public
128
+	 *
129 129
 	 * @return bool
130 130
 	 */
131 131
 	public function uninstall() {
@@ -137,53 +137,53 @@  discard block
 block discarded – undo
137 137
 		$uninstaller->fire_everything();
138 138
 
139 139
 		/**
140
-         * Set the path so that Gravity Forms can de-activate GravityView
141
-         * @see GFAddOn::uninstall_addon
142
-         * @uses deactivate_plugins()
143
-         */
140
+		 * Set the path so that Gravity Forms can de-activate GravityView
141
+		 * @see GFAddOn::uninstall_addon
142
+		 * @uses deactivate_plugins()
143
+		 */
144 144
 		$this->_path = GRAVITYVIEW_FILE;
145 145
 
146 146
 		return true;
147 147
 	}
148 148
 
149 149
 	/**
150
-     * Get an array of reasons why the plugin might be uninstalled
151
-     *
152
-     * @since 1.17.5
153
-     *
150
+	 * Get an array of reasons why the plugin might be uninstalled
151
+	 *
152
+	 * @since 1.17.5
153
+	 *
154 154
 	 * @return array Array of reasons with the label and followup questions for each uninstall reason
155 155
 	 */
156 156
 	private function get_uninstall_reasons() {
157 157
 
158 158
 		$reasons = array(
159 159
 			'will-continue' => array(
160
-                'label' => esc_html__( 'I am going to continue using GravityView', 'gravityview' ),
161
-            ),
160
+				'label' => esc_html__( 'I am going to continue using GravityView', 'gravityview' ),
161
+			),
162 162
 			'no-longer-need' => array(
163
-                'label' => esc_html__( 'I no longer need GravityView', 'gravityview' ),
164
-            ),
163
+				'label' => esc_html__( 'I no longer need GravityView', 'gravityview' ),
164
+			),
165 165
 			'doesnt-work' => array(
166
-                'label' => esc_html__( 'The plugin doesn\'t work', 'gravityview' ),
167
-            ),
166
+				'label' => esc_html__( 'The plugin doesn\'t work', 'gravityview' ),
167
+			),
168 168
 			'found-other' => array(
169
-                'label' => esc_html__( 'I found a better plugin', 'gravityview' ),
170
-                'followup' => esc_attr__('What plugin you are using, and why?', 'gravityview'),
171
-            ),
169
+				'label' => esc_html__( 'I found a better plugin', 'gravityview' ),
170
+				'followup' => esc_attr__('What plugin you are using, and why?', 'gravityview'),
171
+			),
172 172
 			'other' => array(
173
-                'label' => esc_html__( 'Other', 'gravityview' ),
174
-            ),
173
+				'label' => esc_html__( 'Other', 'gravityview' ),
174
+			),
175 175
 		);
176 176
 
177 177
 		shuffle( $reasons );
178 178
 
179 179
 		return $reasons;
180
-    }
180
+	}
181 181
 
182 182
 	/**
183
-     * Display a feedback form when the plugin is uninstalled
184
-     *
185
-     * @since 1.17.5
186
-     *
183
+	 * Display a feedback form when the plugin is uninstalled
184
+	 *
185
+	 * @since 1.17.5
186
+	 *
187 187
 	 * @return string HTML of the uninstallation form
188 188
 	 */
189 189
 	public function uninstall_form() {
@@ -263,7 +263,7 @@  discard block
 block discarded – undo
263 263
             <h2><?php esc_html_e( 'Why did you uninstall GravityView?', 'gravityview' ); ?></h2>
264 264
             <ul>
265 265
 				<?php
266
-                $reasons = $this->get_uninstall_reasons();
266
+				$reasons = $this->get_uninstall_reasons();
267 267
 				foreach ( $reasons as $reason ) {
268 268
 					printf( '<li><label><input name="reason" type="radio" value="other" data-followup="%s"> %s</label></li>', rgar( $reason, 'followup' ), rgar( $reason, 'label' ) );
269 269
 				}
@@ -426,7 +426,7 @@  discard block
 block discarded – undo
426 426
 		$license_key = self::getSetting('license_key');
427 427
 		if( '' === $license_key ) {
428 428
 			$license_status = 'inactive';
429
-        }
429
+		}
430 430
 		$license_id = empty( $license_key ) ? 'license' : $license_key;
431 431
 
432 432
 		$message = esc_html__('Your GravityView license %s. This means you&rsquo;re missing out on updates and support! %sActivate your license%s or %sget a license here%s.', 'gravityview');
@@ -441,7 +441,7 @@  discard block
 block discarded – undo
441 441
 		$update_below = false;
442 442
 		$primary_button_link = admin_url( 'edit.php?post_type=gravityview&amp;page=gravityview_settings' );
443 443
 
444
-        switch ( $license_status ) {
444
+		switch ( $license_status ) {
445 445
 			/** @since 1.17 */
446 446
 			case 'expired':
447 447
 				$title = __('Expired License', 'gravityview');
@@ -487,12 +487,12 @@  discard block
 block discarded – undo
487 487
 	}
488 488
 
489 489
 	/**
490
-     * Add tooltip script to app settings page. Not enqueued by Gravity Forms for some reason.
491
-     *
492
-     * @since 1.21.5
493
-     *
494
-     * @see GFAddOn::scripts()
495
-     *
490
+	 * Add tooltip script to app settings page. Not enqueued by Gravity Forms for some reason.
491
+	 *
492
+	 * @since 1.21.5
493
+	 *
494
+	 * @see GFAddOn::scripts()
495
+	 *
496 496
 	 * @return array Array of scripts
497 497
 	 */
498 498
 	public function scripts() {
@@ -501,10 +501,10 @@  discard block
 block discarded – undo
501 501
 		$scripts[] = array(
502 502
 			'handle'  => 'gform_tooltip_init',
503 503
 			'enqueue' => array(
504
-                array(
505
-			        'admin_page' => array( 'app_settings' )
506
-                )
507
-            )
504
+				array(
505
+					'admin_page' => array( 'app_settings' )
506
+				)
507
+			)
508 508
 		);
509 509
 
510 510
 		return $scripts;
@@ -523,10 +523,10 @@  discard block
 block discarded – undo
523 523
 			'src'     => plugins_url( 'assets/css/admin-settings.css', GRAVITYVIEW_FILE ),
524 524
 			'version' => GravityView_Plugin::version,
525 525
 			"deps" => array(
526
-                'gform_admin',
526
+				'gform_admin',
527 527
 				'gaddon_form_settings_css',
528
-                'gform_tooltip',
529
-                'gform_font_awesome',
528
+				'gform_tooltip',
529
+				'gform_font_awesome',
530 530
 			),
531 531
 			'enqueue' => array(
532 532
 				array( 'admin_page' => array(
@@ -592,12 +592,12 @@  discard block
 block discarded – undo
592 592
 	}
593 593
 
594 594
 	public function app_settings_tab() {
595
-	    parent::app_settings_tab();
595
+		parent::app_settings_tab();
596 596
 
597 597
 		if ( $this->maybe_uninstall() ) {
598
-            echo $this->uninstall_form();
598
+			echo $this->uninstall_form();
599 599
 		}
600
-    }
600
+	}
601 601
 
602 602
 	/**
603 603
 	 * Make protected public
@@ -633,7 +633,7 @@  discard block
 block discarded – undo
633 633
 	 */
634 634
 	public function get_app_settings() {
635 635
 
636
-	    $settings = get_option( 'gravityformsaddon_' . $this->_slug . '_app_settings', $this->get_default_settings() );
636
+		$settings = get_option( 'gravityformsaddon_' . $this->_slug . '_app_settings', $this->get_default_settings() );
637 637
 
638 638
 		if( defined( 'GRAVITYVIEW_LICENSE_KEY' ) ) {
639 639
 			$settings['license_key'] = GRAVITYVIEW_LICENSE_KEY;
@@ -674,9 +674,9 @@  discard block
 block discarded – undo
674 674
 	 */
675 675
 	protected function settings_edd_license( $field, $echo = true ) {
676 676
 
677
-	    if ( defined( 'GRAVITYVIEW_LICENSE_KEY' ) && GRAVITYVIEW_LICENSE_KEY ) {
678
-		    $field['input_type'] = 'password';
679
-        }
677
+		if ( defined( 'GRAVITYVIEW_LICENSE_KEY' ) && GRAVITYVIEW_LICENSE_KEY ) {
678
+			$field['input_type'] = 'password';
679
+		}
680 680
 
681 681
 		$text = $this->settings_text( $field, false );
682 682
 
@@ -731,8 +731,8 @@  discard block
 block discarded – undo
731 731
                     type="' . $field['type'] . '"
732 732
                     name="' . esc_attr( $name ) . '"
733 733
                     value="' . $value . '" ' .
734
-		        implode( ' ', $attributes ) .
735
-		        ' />';
734
+				implode( ' ', $attributes ) .
735
+				' />';
736 736
 
737 737
 		if ( $echo ) {
738 738
 			echo $html;
@@ -773,19 +773,19 @@  discard block
 block discarded – undo
773 773
 
774 774
 
775 775
 	/**
776
-     * Keep GravityView styling for `$field['description']`, even though Gravity Forms added support for it
777
-     *
778
-     * Converts `$field['description']` to `$field['gv_description']`
779
-     * Converts `$field['subtitle']` to `$field['description']`
780
-     *
781
-     * @see GravityView_Settings::single_setting_label Converts `gv_description` back to `description`
782
-     * @see http://share.gravityview.co/P28uGp/2OIRKxog for image that shows subtitle vs description
783
-     *
784
-     * @since 1.21.5.2
785
-     *
776
+	 * Keep GravityView styling for `$field['description']`, even though Gravity Forms added support for it
777
+	 *
778
+	 * Converts `$field['description']` to `$field['gv_description']`
779
+	 * Converts `$field['subtitle']` to `$field['description']`
780
+	 *
781
+	 * @see GravityView_Settings::single_setting_label Converts `gv_description` back to `description`
782
+	 * @see http://share.gravityview.co/P28uGp/2OIRKxog for image that shows subtitle vs description
783
+	 *
784
+	 * @since 1.21.5.2
785
+	 *
786 786
 	 * @param array $field
787
-     *
788
-     * @return void
787
+	 *
788
+	 * @return void
789 789
 	 */
790 790
 	public function single_setting_row( $field ) {
791 791
 
@@ -980,7 +980,7 @@  discard block
 block discarded – undo
980 980
 					array(
981 981
 						'label' => _x('Show me beta versions if they are available.', 'gravityview'),
982 982
 						'value' => '1',
983
-                        'name'  => 'beta',
983
+						'name'  => 'beta',
984 984
 					),
985 985
 				),
986 986
 				'description'   => __( 'You will have early access to the latest GravityView features and improvements. There may be bugs! If you encounter an issue, help make GravityView better by reporting it!', 'gravityview'),
@@ -1005,39 +1005,39 @@  discard block
 block discarded – undo
1005 1005
 
1006 1006
 			if( empty( $field['disabled'] ) ) {
1007 1007
 				unset( $field['disabled'] );
1008
-            }
1008
+			}
1009 1009
 		}
1010 1010
 
1011
-        $sections = array(
1012
-            array(
1013
-                'description' =>      sprintf( '<span class="version-info description">%s</span>', sprintf( __('You are running GravityView version %s', 'gravityview'), GravityView_Plugin::version ) ),
1014
-                'fields'      => $fields,
1015
-            )
1016
-        );
1011
+		$sections = array(
1012
+			array(
1013
+				'description' =>      sprintf( '<span class="version-info description">%s</span>', sprintf( __('You are running GravityView version %s', 'gravityview'), GravityView_Plugin::version ) ),
1014
+				'fields'      => $fields,
1015
+			)
1016
+		);
1017 1017
 
1018
-        // custom 'update settings' button
1019
-        $button = array(
1020
-            'class' => 'button button-primary button-hero',
1021
-            'type'     => 'save',
1022
-        );
1018
+		// custom 'update settings' button
1019
+		$button = array(
1020
+			'class' => 'button button-primary button-hero',
1021
+			'type'     => 'save',
1022
+		);
1023 1023
 
1024 1024
 		if( $disabled_attribute ) {
1025 1025
 			$button['disabled'] = $disabled_attribute;
1026 1026
 		}
1027 1027
 
1028 1028
 
1029
-        /**
1030
-         * @filter `gravityview/settings/extension/sections` Modify the GravityView settings page
1031
-         * Extensions can tap in here to insert their own section and settings.
1032
-         * <code>
1033
-         *   $sections[] = array(
1034
-         *      'title' => __( 'GravityView My Extension Settings', 'gravityview' ),
1035
-         *      'fields' => $settings,
1036
-         *   );
1037
-         * </code>
1038
-         * @param array $extension_settings Empty array, ready for extension settings!
1039
-         */
1040
-        $extension_sections = apply_filters( 'gravityview/settings/extension/sections', array() );
1029
+		/**
1030
+		 * @filter `gravityview/settings/extension/sections` Modify the GravityView settings page
1031
+		 * Extensions can tap in here to insert their own section and settings.
1032
+		 * <code>
1033
+		 *   $sections[] = array(
1034
+		 *      'title' => __( 'GravityView My Extension Settings', 'gravityview' ),
1035
+		 *      'fields' => $settings,
1036
+		 *   );
1037
+		 * </code>
1038
+		 * @param array $extension_settings Empty array, ready for extension settings!
1039
+		 */
1040
+		$extension_sections = apply_filters( 'gravityview/settings/extension/sections', array() );
1041 1041
 
1042 1042
 		// If there are extensions, add a section for them
1043 1043
 		if ( ! empty( $extension_sections ) ) {
@@ -1050,13 +1050,13 @@  discard block
 block discarded – undo
1050 1050
 				}
1051 1051
 			}
1052 1052
 
1053
-            $k = count( $extension_sections ) - 1 ;
1054
-            $extension_sections[ $k ]['fields'][] = $button;
1053
+			$k = count( $extension_sections ) - 1 ;
1054
+			$extension_sections[ $k ]['fields'][] = $button;
1055 1055
 			$sections = array_merge( $sections, $extension_sections );
1056 1056
 		} else {
1057
-            // add the 'update settings' button to the general section
1058
-            $sections[0]['fields'][] = $button;
1059
-        }
1057
+			// add the 'update settings' button to the general section
1058
+			$sections[0]['fields'][] = $button;
1059
+		}
1060 1060
 
1061 1061
 		return $sections;
1062 1062
 	}
Please login to merge, or discard this patch.
Spacing   +93 added lines, -93 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-if( ! class_exists('GFAddOn') ) {
3
+if ( ! class_exists( 'GFAddOn' ) ) {
4 4
 	return;
5 5
 }
6 6
 
@@ -75,7 +75,7 @@  discard block
 block discarded – undo
75 75
 	 */
76 76
 	public function __construct( $prevent_multiple_instances = '' ) {
77 77
 
78
-		if( $prevent_multiple_instances === 'get_instance' ) {
78
+		if ( $prevent_multiple_instances === 'get_instance' ) {
79 79
 			return parent::__construct();
80 80
 		}
81 81
 
@@ -87,7 +87,7 @@  discard block
 block discarded – undo
87 87
 	 */
88 88
 	public static function get_instance() {
89 89
 
90
-		if( empty( self::$instance ) ) {
90
+		if ( empty( self::$instance ) ) {
91 91
 			self::$instance = new self( 'get_instance' );
92 92
 		}
93 93
 
@@ -106,7 +106,7 @@  discard block
 block discarded – undo
106 106
 	 */
107 107
 	public function current_user_can_any( $caps ) {
108 108
 
109
-		if( empty( $caps ) ) {
109
+		if ( empty( $caps ) ) {
110 110
 			$caps = array( 'gravityview_full_access' );
111 111
 		}
112 112
 
@@ -167,7 +167,7 @@  discard block
 block discarded – undo
167 167
             ),
168 168
 			'found-other' => array(
169 169
                 'label' => esc_html__( 'I found a better plugin', 'gravityview' ),
170
-                'followup' => esc_attr__('What plugin you are using, and why?', 'gravityview'),
170
+                'followup' => esc_attr__( 'What plugin you are using, and why?', 'gravityview' ),
171 171
             ),
172 172
 			'other' => array(
173 173
                 'label' => esc_html__( 'Other', 'gravityview' ),
@@ -254,7 +254,7 @@  discard block
 block discarded – undo
254 254
                 });
255 255
 
256 256
                 function gv_feedback_append_error_message() {
257
-                    $('#gv-uninstall-thanks').append('<div class="notice error"><?php echo esc_js( __('There was an error sharing your feedback. Sorry! Please email us at [email protected]', 'gravityview' ) ) ?></div>');
257
+                    $('#gv-uninstall-thanks').append('<div class="notice error"><?php echo esc_js( __( 'There was an error sharing your feedback. Sorry! Please email us at [email protected]', 'gravityview' ) ) ?></div>');
258 258
                 }
259 259
             });
260 260
         </script>
@@ -271,15 +271,15 @@  discard block
 block discarded – undo
271 271
             </ul>
272 272
             <div class="gv-followup widefat">
273 273
                 <p><strong><label for="gv-reason-details"><?php esc_html_e( 'Comments', 'gravityview' ); ?></label></strong></p>
274
-                <textarea id="gv-reason-details" name="reason_details" data-default="<?php esc_attr_e('Please share your thoughts about GravityView', 'gravityview') ?>" placeholder="<?php esc_attr_e('Please share your thoughts about GravityView', 'gravityview'); ?>" class="large-text"></textarea>
274
+                <textarea id="gv-reason-details" name="reason_details" data-default="<?php esc_attr_e( 'Please share your thoughts about GravityView', 'gravityview' ) ?>" placeholder="<?php esc_attr_e( 'Please share your thoughts about GravityView', 'gravityview' ); ?>" class="large-text"></textarea>
275 275
             </div>
276 276
             <div class="scale-description">
277
-                <p><strong><?php esc_html_e('How likely are you to recommend GravityView?', 'gravityview' ); ?></strong></p>
277
+                <p><strong><?php esc_html_e( 'How likely are you to recommend GravityView?', 'gravityview' ); ?></strong></p>
278 278
                 <ul class="inline">
279 279
 					<?php
280 280
 					$i = 0;
281
-					while( $i < 11 ) {
282
-						echo '<li class="inline number-scale"><label><input name="likely_to_refer" id="likely_to_refer_'.$i.'" value="'.$i.'" type="radio"> '.$i.'</label></li>';
281
+					while ( $i < 11 ) {
282
+						echo '<li class="inline number-scale"><label><input name="likely_to_refer" id="likely_to_refer_' . $i . '" value="' . $i . '" type="radio"> ' . $i . '</label></li>';
283 283
 						$i++;
284 284
 					}
285 285
 					?>
@@ -288,7 +288,7 @@  discard block
 block discarded – undo
288 288
             </div>
289 289
 
290 290
             <div class="gv-form-field-wrapper">
291
-                <label><input type="checkbox" class="checkbox" name="follow_up_with_me" value="1" /> <?php esc_html_e('Please follow up with me about my feedback', 'gravityview'); ?></label>
291
+                <label><input type="checkbox" class="checkbox" name="follow_up_with_me" value="1" /> <?php esc_html_e( 'Please follow up with me about my feedback', 'gravityview' ); ?></label>
292 292
             </div>
293 293
 
294 294
             <div class="submit">
@@ -302,7 +302,7 @@  discard block
 block discarded – undo
302 302
         <div id="gv-uninstall-thanks" class="notice notice-large notice-updated below-h2" style="display:none;">
303 303
             <h3 class="notice-title"><?php esc_html_e( 'Thank you for using GravityView!', 'gravityview' ); ?></h3>
304 304
             <p><?php echo gravityview_get_floaty(); ?>
305
-				<?php echo make_clickable( esc_html__('Your feedback helps us improve GravityView. If you have any questions or comments, email us: [email protected]', 'gravityview' ) ); ?>
305
+				<?php echo make_clickable( esc_html__( 'Your feedback helps us improve GravityView. If you have any questions or comments, email us: [email protected]', 'gravityview' ) ); ?>
306 306
             </p>
307 307
             <div class="wp-clearfix"></div>
308 308
         </div>
@@ -376,7 +376,7 @@  discard block
 block discarded – undo
376 376
 		add_filter( 'gform_addon_app_settings_menu_gravityview', array( $this, 'modify_app_settings_menu_title' ) );
377 377
 
378 378
 		/** @since 1.7.6 */
379
-		add_action('network_admin_menu', array( $this, 'add_network_menu' ) );
379
+		add_action( 'network_admin_menu', array( $this, 'add_network_menu' ) );
380 380
 
381 381
 		parent::init_admin();
382 382
 	}
@@ -390,7 +390,7 @@  discard block
 block discarded – undo
390 390
 	 */
391 391
 	public function modify_app_settings_menu_title( $setting_tabs ) {
392 392
 
393
-		$setting_tabs[0]['label'] = __( 'GravityView Settings', 'gravityview');
393
+		$setting_tabs[ 0 ][ 'label' ] = __( 'GravityView Settings', 'gravityview' );
394 394
 
395 395
 		return $setting_tabs;
396 396
 	}
@@ -407,11 +407,11 @@  discard block
 block discarded – undo
407 407
 	 */
408 408
 	private function _load_license_handler() {
409 409
 
410
-		if( !empty( $this->License_Handler ) ) {
410
+		if ( ! empty( $this->License_Handler ) ) {
411 411
 			return;
412 412
 		}
413 413
 
414
-		require_once( GRAVITYVIEW_DIR . 'includes/class-gv-license-handler.php');
414
+		require_once( GRAVITYVIEW_DIR . 'includes/class-gv-license-handler.php' );
415 415
 
416 416
 		$this->License_Handler = GV_License_Handler::get_instance( $this );
417 417
 	}
@@ -422,21 +422,21 @@  discard block
 block discarded – undo
422 422
 	 */
423 423
 	function license_key_notice() {
424 424
 
425
-		$license_status = self::getSetting('license_key_status');
426
-		$license_key = self::getSetting('license_key');
427
-		if( '' === $license_key ) {
425
+		$license_status = self::getSetting( 'license_key_status' );
426
+		$license_key = self::getSetting( 'license_key' );
427
+		if ( '' === $license_key ) {
428 428
 			$license_status = 'inactive';
429 429
         }
430 430
 		$license_id = empty( $license_key ) ? 'license' : $license_key;
431 431
 
432
-		$message = esc_html__('Your GravityView license %s. This means you&rsquo;re missing out on updates and support! %sActivate your license%s or %sget a license here%s.', 'gravityview');
432
+		$message = esc_html__( 'Your GravityView license %s. This means you&rsquo;re missing out on updates and support! %sActivate your license%s or %sget a license here%s.', 'gravityview' );
433 433
 
434 434
 		/**
435 435
 		 * I wanted to remove the period from after the buttons in the string,
436 436
 		 * but didn't want to mess up the translation strings for the translators.
437 437
 		 */
438 438
 		$message = mb_substr( $message, 0, mb_strlen( $message ) - 1 );
439
-		$title = __('Inactive License', 'gravityview');
439
+		$title = __( 'Inactive License', 'gravityview' );
440 440
 		$status = '';
441 441
 		$update_below = false;
442 442
 		$primary_button_link = admin_url( 'edit.php?post_type=gravityview&amp;page=gravityview_settings' );
@@ -444,17 +444,17 @@  discard block
 block discarded – undo
444 444
         switch ( $license_status ) {
445 445
 			/** @since 1.17 */
446 446
 			case 'expired':
447
-				$title = __('Expired License', 'gravityview');
447
+				$title = __( 'Expired License', 'gravityview' );
448 448
 				$status = 'expired';
449
-				$message = $this->get_license_handler()->strings( 'expired', self::getSetting('license_key_response') );
449
+				$message = $this->get_license_handler()->strings( 'expired', self::getSetting( 'license_key_response' ) );
450 450
 				break;
451 451
 			case 'invalid':
452
-				$title = __('Invalid License', 'gravityview');
453
-				$status = __('is invalid', 'gravityview');
452
+				$title = __( 'Invalid License', 'gravityview' );
453
+				$status = __( 'is invalid', 'gravityview' );
454 454
 				break;
455 455
 			case 'deactivated':
456
-				$status = __('is inactive', 'gravityview');
457
-				$update_below = __('Activate your license key below.', 'gravityview');
456
+				$status = __( 'is inactive', 'gravityview' );
457
+				$update_below = __( 'Activate your license key below.', 'gravityview' );
458 458
 				break;
459 459
 			/** @noinspection PhpMissingBreakStatementInspection */
460 460
 			case '':
@@ -462,20 +462,20 @@  discard block
 block discarded – undo
462 462
 				// break intentionally left blank
463 463
 			case 'inactive':
464 464
 			case 'site_inactive':
465
-				$status = __('has not been activated', 'gravityview');
466
-				$update_below = __('Activate your license key below.', 'gravityview');
465
+				$status = __( 'has not been activated', 'gravityview' );
466
+				$update_below = __( 'Activate your license key below.', 'gravityview' );
467 467
 				break;
468 468
 		}
469
-		$url = 'https://gravityview.co/pricing/?utm_source=admin_notice&utm_medium=admin&utm_content='.$license_status.'&utm_campaign=Admin%20Notice';
469
+		$url = 'https://gravityview.co/pricing/?utm_source=admin_notice&utm_medium=admin&utm_content=' . $license_status . '&utm_campaign=Admin%20Notice';
470 470
 
471 471
 		// Show a different notice on settings page for inactive licenses (hide the buttons)
472
-		if( $update_below && gravityview_is_admin_page( '', 'settings' ) ) {
472
+		if ( $update_below && gravityview_is_admin_page( '', 'settings' ) ) {
473 473
 			$message = sprintf( $message, $status, '<div class="hidden">', '', '', '</div><a href="#" onclick="jQuery(\'#license_key\').focus(); return false;">' . $update_below . '</a>' );
474 474
 		} else {
475 475
 			$message = sprintf( $message, $status, "\n\n" . '<a href="' . esc_url( $primary_button_link ) . '" class="button button-primary">', '</a>', '<a href="' . esc_url( $url ) . '" class="button button-secondary">', '</a>' );
476 476
 		}
477 477
 
478
-		if( !empty( $status ) ) {
478
+		if ( ! empty( $status ) ) {
479 479
 			GravityView_Admin_Notices::add_notice( array(
480 480
 				'message' => $message,
481 481
 				'class'   => 'updated',
@@ -498,7 +498,7 @@  discard block
 block discarded – undo
498 498
 	public function scripts() {
499 499
 		$scripts = parent::scripts();
500 500
 
501
-		$scripts[] = array(
501
+		$scripts[ ] = array(
502 502
 			'handle'  => 'gform_tooltip_init',
503 503
 			'enqueue' => array(
504 504
                 array(
@@ -518,7 +518,7 @@  discard block
 block discarded – undo
518 518
 
519 519
 		$styles = parent::styles();
520 520
 
521
-		$styles[] = array(
521
+		$styles[ ] = array(
522 522
 			'handle'  => 'gravityview_settings',
523 523
 			'src'     => plugins_url( 'assets/css/admin-settings.css', GRAVITYVIEW_FILE ),
524 524
 			'version' => GravityView_Plugin::version,
@@ -544,7 +544,7 @@  discard block
 block discarded – undo
544 544
 	 * @return void
545 545
 	 */
546 546
 	public function add_network_menu() {
547
-		if( GravityView_Plugin::is_network_activated() ) {
547
+		if ( GravityView_Plugin::is_network_activated() ) {
548 548
 			add_menu_page( __( 'Settings', 'gravityview' ), __( 'GravityView', 'gravityview' ), $this->_capabilities_app_settings, "{$this->_slug}_settings", array( $this, 'app_tab_page' ), 'none' );
549 549
 		}
550 550
 	}
@@ -561,7 +561,7 @@  discard block
 block discarded – undo
561 561
 		 * If multisite and not network admin, we don't want the settings to show.
562 562
 		 * @since 1.7.6
563 563
 		 */
564
-		$show_submenu = !is_multisite() ||  is_main_site() || !GravityView_Plugin::is_network_activated() || ( is_network_admin() && GravityView_Plugin::is_network_activated() );
564
+		$show_submenu = ! is_multisite() || is_main_site() || ! GravityView_Plugin::is_network_activated() || ( is_network_admin() && GravityView_Plugin::is_network_activated() );
565 565
 
566 566
 		/**
567 567
 		 * Override whether to show the Settings menu on a per-blog basis.
@@ -570,7 +570,7 @@  discard block
 block discarded – undo
570 570
 		 */
571 571
 		$show_submenu = apply_filters( 'gravityview/show-settings-menu', $show_submenu );
572 572
 
573
-		if( $show_submenu ) {
573
+		if ( $show_submenu ) {
574 574
 			add_submenu_page( 'edit.php?post_type=gravityview', __( 'Settings', 'gravityview' ), __( 'Settings', 'gravityview' ), $this->_capabilities_app_settings, $this->_slug . '_settings', array( $this, 'app_tab_page' ) );
575 575
 		}
576 576
 	}
@@ -609,7 +609,7 @@  discard block
 block discarded – undo
609 609
 		/**
610 610
 		 * Backward compatibility with Redux
611 611
 		 */
612
-		if( $setting_name === 'license' ) {
612
+		if ( $setting_name === 'license' ) {
613 613
 			return array(
614 614
 				'license' => parent::get_app_setting( 'license_key' ),
615 615
 				'status' => parent::get_app_setting( 'license_key_status' ),
@@ -635,8 +635,8 @@  discard block
 block discarded – undo
635 635
 
636 636
 	    $settings = get_option( 'gravityformsaddon_' . $this->_slug . '_app_settings', $this->get_default_settings() );
637 637
 
638
-		if( defined( 'GRAVITYVIEW_LICENSE_KEY' ) ) {
639
-			$settings['license_key'] = GRAVITYVIEW_LICENSE_KEY;
638
+		if ( defined( 'GRAVITYVIEW_LICENSE_KEY' ) ) {
639
+			$settings[ 'license_key' ] = GRAVITYVIEW_LICENSE_KEY;
640 640
 		}
641 641
 
642 642
 		return $settings;
@@ -675,7 +675,7 @@  discard block
 block discarded – undo
675 675
 	protected function settings_edd_license( $field, $echo = true ) {
676 676
 
677 677
 	    if ( defined( 'GRAVITYVIEW_LICENSE_KEY' ) && GRAVITYVIEW_LICENSE_KEY ) {
678
-		    $field['input_type'] = 'password';
678
+		    $field[ 'input_type' ] = 'password';
679 679
         }
680 680
 
681 681
 		$text = $this->settings_text( $field, false );
@@ -684,7 +684,7 @@  discard block
 block discarded – undo
684 684
 
685 685
 		$return = $text . $activation;
686 686
 
687
-		if( $echo ) {
687
+		if ( $echo ) {
688 688
 			echo $return;
689 689
 		}
690 690
 
@@ -711,15 +711,15 @@  discard block
 block discarded – undo
711 711
 	 */
712 712
 	public function settings_submit( $field, $echo = true ) {
713 713
 
714
-		$field['type']  = ( isset($field['type']) && in_array( $field['type'], array('submit','reset','button') ) ) ? $field['type'] : 'submit';
714
+		$field[ 'type' ] = ( isset( $field[ 'type' ] ) && in_array( $field[ 'type' ], array( 'submit', 'reset', 'button' ) ) ) ? $field[ 'type' ] : 'submit';
715 715
 
716 716
 		$attributes    = $this->get_field_attributes( $field );
717 717
 		$default_value = rgar( $field, 'value' ) ? rgar( $field, 'value' ) : rgar( $field, 'default_value' );
718
-		$value         = $this->get_setting( $field['name'], $default_value );
718
+		$value         = $this->get_setting( $field[ 'name' ], $default_value );
719 719
 
720 720
 
721
-		$attributes['class'] = isset( $attributes['class'] ) ? esc_attr( $attributes['class'] ) : 'button-primary gfbutton';
722
-		$name    = ( $field['name'] === 'gform-settings-save' ) ? $field['name'] : '_gaddon_setting_'.$field['name'];
721
+		$attributes[ 'class' ] = isset( $attributes[ 'class' ] ) ? esc_attr( $attributes[ 'class' ] ) : 'button-primary gfbutton';
722
+		$name = ( $field[ 'name' ] === 'gform-settings-save' ) ? $field[ 'name' ] : '_gaddon_setting_' . $field[ 'name' ];
723 723
 
724 724
 		if ( empty( $value ) ) {
725 725
 			$value = __( 'Update Settings', 'gravityview' );
@@ -728,7 +728,7 @@  discard block
 block discarded – undo
728 728
 		$attributes = $this->get_field_attributes( $field );
729 729
 
730 730
 		$html = '<input
731
-                    type="' . $field['type'] . '"
731
+                    type="' . $field[ 'type' ] . '"
732 732
                     name="' . esc_attr( $name ) . '"
733 733
                     value="' . $value . '" ' .
734 734
 		        implode( ' ', $attributes ) .
@@ -750,12 +750,12 @@  discard block
 block discarded – undo
750 750
 	 * @return string
751 751
 	 */
752 752
 	public function settings_save( $field, $echo = true ) {
753
-		$field['type']  = 'submit';
754
-		$field['name']  = 'gform-settings-save';
755
-		$field['class'] = isset( $field['class'] ) ? $field['class'] : 'button-primary gfbutton';
753
+		$field[ 'type' ]  = 'submit';
754
+		$field[ 'name' ]  = 'gform-settings-save';
755
+		$field[ 'class' ] = isset( $field[ 'class' ] ) ? $field[ 'class' ] : 'button-primary gfbutton';
756 756
 
757 757
 		if ( ! rgar( $field, 'value' ) ) {
758
-			$field['value'] = __( 'Update Settings', 'gravityview' );
758
+			$field[ 'value' ] = __( 'Update Settings', 'gravityview' );
759 759
 		}
760 760
 
761 761
 		$output = $this->settings_submit( $field, false );
@@ -764,7 +764,7 @@  discard block
 block discarded – undo
764 764
 		$this->app_settings_uninstall_tab();
765 765
 		$output .= ob_get_clean();
766 766
 
767
-		if( $echo ) {
767
+		if ( $echo ) {
768 768
 			echo $output;
769 769
 		}
770 770
 
@@ -789,8 +789,8 @@  discard block
 block discarded – undo
789 789
 	 */
790 790
 	public function single_setting_row( $field ) {
791 791
 
792
-		$field['gv_description'] = rgar( $field, 'description' );
793
-		$field['description']    = rgar( $field, 'subtitle' );
792
+		$field[ 'gv_description' ] = rgar( $field, 'description' );
793
+		$field[ 'description' ]    = rgar( $field, 'subtitle' );
794 794
 
795 795
 		parent::single_setting_row( $field );
796 796
 	}
@@ -805,7 +805,7 @@  discard block
 block discarded – undo
805 805
 		parent::single_setting_label( $field );
806 806
 
807 807
 		if ( $description = rgar( $field, 'gv_description' ) ) {
808
-			echo '<span class="description">'. $description .'</span>';
808
+			echo '<span class="description">' . $description . '</span>';
809 809
 		}
810 810
 	}
811 811
 
@@ -867,11 +867,11 @@  discard block
 block discarded – undo
867 867
 
868 868
 		// If the posted key doesn't match the activated/deactivated key (set using the Activate License button, AJAX response),
869 869
 		// then we assume it's changed. If it's changed, unset the status and the previous response.
870
-		if( $local_key !== $response_key ) {
870
+		if ( $local_key !== $response_key ) {
871 871
 
872
-			unset( $posted_settings['license_key_response'] );
873
-			unset( $posted_settings['license_key_status'] );
874
-			GFCommon::add_error_message( __('The license key you entered has been saved, but not activated. Please activate the license.', 'gravityview' ) );
872
+			unset( $posted_settings[ 'license_key_response' ] );
873
+			unset( $posted_settings[ 'license_key_status' ] );
874
+			GFCommon::add_error_message( __( 'The license key you entered has been saved, but not activated. Please activate the license.', 'gravityview' ) );
875 875
 		}
876 876
 
877 877
 		return $posted_settings;
@@ -906,26 +906,26 @@  discard block
 block discarded – undo
906 906
 				'label'             => __( 'License Key', 'gravityview' ),
907 907
 				'description'          => __( 'Enter the license key that was sent to you on purchase. This enables plugin updates &amp; support.', 'gravityview' ) . $this->get_license_handler()->license_details( $this->get_app_setting( 'license_key_response' ) ),
908 908
 				'type'              => 'edd_license',
909
-				'disabled'          => ( defined( 'GRAVITYVIEW_LICENSE_KEY' )  && GRAVITYVIEW_LICENSE_KEY ),
910
-				'data-pending-text' => __('Verifying license&hellip;', 'gravityview'),
911
-				'default_value'           => $default_settings['license_key'],
909
+				'disabled'          => ( defined( 'GRAVITYVIEW_LICENSE_KEY' ) && GRAVITYVIEW_LICENSE_KEY ),
910
+				'data-pending-text' => __( 'Verifying license&hellip;', 'gravityview' ),
911
+				'default_value'           => $default_settings[ 'license_key' ],
912 912
 				'class'             => ( '' == $this->get_app_setting( 'license_key' ) ) ? 'activate code regular-text edd-license-key' : 'deactivate code regular-text edd-license-key',
913 913
 			),
914 914
 			array(
915 915
 				'name'       => 'license_key_response',
916
-				'default_value'  => $default_settings['license_key_response'],
916
+				'default_value'  => $default_settings[ 'license_key_response' ],
917 917
 				'type'     => 'hidden',
918 918
 			),
919 919
 			array(
920 920
 				'name'       => 'license_key_status',
921
-				'default_value'  => $default_settings['license_key_status'],
921
+				'default_value'  => $default_settings[ 'license_key_status' ],
922 922
 				'type'     => 'hidden',
923 923
 			),
924 924
 			array(
925 925
 				'name'       => 'support-email',
926 926
 				'type'     => 'text',
927 927
 				'validate' => 'email',
928
-				'default_value'  => $default_settings['support-email'],
928
+				'default_value'  => $default_settings[ 'support-email' ],
929 929
 				'label'    => __( 'Support Email', 'gravityview' ),
930 930
 				'description' => __( 'In order to provide responses to your support requests, please provide your email address.', 'gravityview' ),
931 931
 				'class'    => 'code regular-text',
@@ -937,53 +937,53 @@  discard block
 block discarded – undo
937 937
 				'name'         => 'support_port',
938 938
 				'type'       => 'radio',
939 939
 				'label'      => __( 'Show Support Port?', 'gravityview' ),
940
-				'default_value'    => $default_settings['support_port'],
940
+				'default_value'    => $default_settings[ 'support_port' ],
941 941
 				'horizontal' => 1,
942 942
 				'choices'    => array(
943 943
 					array(
944
-						'label' => _x('Show', 'Setting: Show or Hide', 'gravityview'),
944
+						'label' => _x( 'Show', 'Setting: Show or Hide', 'gravityview' ),
945 945
 						'value' => '1',
946 946
 					),
947 947
 					array(
948
-						'label' => _x('Hide', 'Setting: Show or Hide', 'gravityview'),
948
+						'label' => _x( 'Hide', 'Setting: Show or Hide', 'gravityview' ),
949 949
 						'value' => '0',
950 950
 					),
951 951
 				),
952
-				'tooltip' => '<p><img src="' . esc_url_raw( plugins_url('assets/images/beacon.png', GRAVITYVIEW_FILE ) ) . '" alt="' . esc_attr__( 'The Support Port looks like this.', 'gravityview' ) . '" class="alignright" style="max-width:40px; margin:.5em;" />' . esc_html__('The Support Port provides quick access to how-to articles and tutorials. For administrators, it also makes it easy to contact support.', 'gravityview') . '</p>',
952
+				'tooltip' => '<p><img src="' . esc_url_raw( plugins_url( 'assets/images/beacon.png', GRAVITYVIEW_FILE ) ) . '" alt="' . esc_attr__( 'The Support Port looks like this.', 'gravityview' ) . '" class="alignright" style="max-width:40px; margin:.5em;" />' . esc_html__( 'The Support Port provides quick access to how-to articles and tutorials. For administrators, it also makes it easy to contact support.', 'gravityview' ) . '</p>',
953 953
 				'description'   => __( 'Show the Support Port on GravityView pages?', 'gravityview' ),
954 954
 			),
955 955
 			array(
956 956
 				'name'         => 'no-conflict-mode',
957 957
 				'type'       => 'radio',
958 958
 				'label'      => __( 'No-Conflict Mode', 'gravityview' ),
959
-				'default_value'    => $default_settings['no-conflict-mode'],
959
+				'default_value'    => $default_settings[ 'no-conflict-mode' ],
960 960
 				'horizontal' => 1,
961 961
 				'choices'    => array(
962 962
 					array(
963
-						'label' => _x('On', 'Setting: On or off', 'gravityview'),
963
+						'label' => _x( 'On', 'Setting: On or off', 'gravityview' ),
964 964
 						'value' => '1',
965 965
 					),
966 966
 					array(
967
-						'label' => _x('Off', 'Setting: On or off', 'gravityview'),
967
+						'label' => _x( 'Off', 'Setting: On or off', 'gravityview' ),
968 968
 						'value' => '0',
969 969
 					),
970 970
 				),
971
-				'description'   => __( 'Set this to ON to prevent extraneous scripts and styles from being printed on GravityView admin pages, reducing conflicts with other plugins and themes.', 'gravityview' ) . ' ' . __('If your Edit View tabs are ugly, enable this setting.', 'gravityview'),
971
+				'description'   => __( 'Set this to ON to prevent extraneous scripts and styles from being printed on GravityView admin pages, reducing conflicts with other plugins and themes.', 'gravityview' ) . ' ' . __( 'If your Edit View tabs are ugly, enable this setting.', 'gravityview' ),
972 972
 			),
973 973
 			array(
974 974
 				'name'       => 'beta',
975 975
 				'type'       => 'checkbox',
976 976
 				'label'      => __( 'Become a Beta Tester', 'gravityview' ),
977
-				'default_value'    => $default_settings['beta'],
977
+				'default_value'    => $default_settings[ 'beta' ],
978 978
 				'horizontal' => 1,
979 979
 				'choices'    => array(
980 980
 					array(
981
-						'label' => _x('Show me beta versions if they are available.', 'gravityview'),
981
+						'label' => _x( 'Show me beta versions if they are available.', 'gravityview' ),
982 982
 						'value' => '1',
983 983
                         'name'  => 'beta',
984 984
 					),
985 985
 				),
986
-				'description'   => __( 'You will have early access to the latest GravityView features and improvements. There may be bugs! If you encounter an issue, help make GravityView better by reporting it!', 'gravityview'),
986
+				'description'   => __( 'You will have early access to the latest GravityView features and improvements. There may be bugs! If you encounter an issue, help make GravityView better by reporting it!', 'gravityview' ),
987 987
 			),
988 988
 		) );
989 989
 
@@ -994,23 +994,23 @@  discard block
 block discarded – undo
994 994
 		 * @since 1.7.4
995 995
 		 */
996 996
 		foreach ( $fields as &$field ) {
997
-			$field['name']          = isset( $field['name'] ) ? $field['name'] : rgget('id', $field );
998
-			$field['label']         = isset( $field['label'] ) ? $field['label'] : rgget('title', $field );
999
-			$field['default_value'] = isset( $field['default_value'] ) ? $field['default_value'] : rgget('default', $field );
1000
-			$field['description']   = isset( $field['description'] ) ? $field['description'] : rgget('subtitle', $field );
997
+			$field[ 'name' ]          = isset( $field[ 'name' ] ) ? $field[ 'name' ] : rgget( 'id', $field );
998
+			$field[ 'label' ]         = isset( $field[ 'label' ] ) ? $field[ 'label' ] : rgget( 'title', $field );
999
+			$field[ 'default_value' ] = isset( $field[ 'default_value' ] ) ? $field[ 'default_value' ] : rgget( 'default', $field );
1000
+			$field[ 'description' ]   = isset( $field[ 'description' ] ) ? $field[ 'description' ] : rgget( 'subtitle', $field );
1001 1001
 
1002
-			if( $disabled_attribute ) {
1003
-				$field['disabled']  = $disabled_attribute;
1002
+			if ( $disabled_attribute ) {
1003
+				$field[ 'disabled' ] = $disabled_attribute;
1004 1004
 			}
1005 1005
 
1006
-			if( empty( $field['disabled'] ) ) {
1007
-				unset( $field['disabled'] );
1006
+			if ( empty( $field[ 'disabled' ] ) ) {
1007
+				unset( $field[ 'disabled' ] );
1008 1008
             }
1009 1009
 		}
1010 1010
 
1011 1011
         $sections = array(
1012 1012
             array(
1013
-                'description' =>      sprintf( '<span class="version-info description">%s</span>', sprintf( __('You are running GravityView version %s', 'gravityview'), GravityView_Plugin::version ) ),
1013
+                'description' =>      sprintf( '<span class="version-info description">%s</span>', sprintf( __( 'You are running GravityView version %s', 'gravityview' ), GravityView_Plugin::version ) ),
1014 1014
                 'fields'      => $fields,
1015 1015
             )
1016 1016
         );
@@ -1021,8 +1021,8 @@  discard block
 block discarded – undo
1021 1021
             'type'     => 'save',
1022 1022
         );
1023 1023
 
1024
-		if( $disabled_attribute ) {
1025
-			$button['disabled'] = $disabled_attribute;
1024
+		if ( $disabled_attribute ) {
1025
+			$button[ 'disabled' ] = $disabled_attribute;
1026 1026
 		}
1027 1027
 
1028 1028
 
@@ -1042,20 +1042,20 @@  discard block
 block discarded – undo
1042 1042
 		// If there are extensions, add a section for them
1043 1043
 		if ( ! empty( $extension_sections ) ) {
1044 1044
 
1045
-			if( $disabled_attribute ) {
1045
+			if ( $disabled_attribute ) {
1046 1046
 				foreach ( $extension_sections as &$section ) {
1047
-					foreach ( $section['fields'] as &$field ) {
1048
-						$field['disabled'] = $disabled_attribute;
1047
+					foreach ( $section[ 'fields' ] as &$field ) {
1048
+						$field[ 'disabled' ] = $disabled_attribute;
1049 1049
 					}
1050 1050
 				}
1051 1051
 			}
1052 1052
 
1053
-            $k = count( $extension_sections ) - 1 ;
1054
-            $extension_sections[ $k ]['fields'][] = $button;
1053
+            $k = count( $extension_sections ) - 1;
1054
+            $extension_sections[ $k ][ 'fields' ][ ] = $button;
1055 1055
 			$sections = array_merge( $sections, $extension_sections );
1056 1056
 		} else {
1057 1057
             // add the 'update settings' button to the general section
1058
-            $sections[0]['fields'][] = $button;
1058
+            $sections[ 0 ][ 'fields' ][ ] = $button;
1059 1059
         }
1060 1060
 
1061 1061
 		return $sections;
Please login to merge, or discard this patch.
includes/extensions/edit-entry/class-edit-entry-render.php 3 patches
Braces   +2 added lines, -4 removed lines patch added patch discarded remove patch
@@ -613,7 +613,7 @@  discard block
 block discarded – undo
613 613
 
614 614
             $back_link = esc_url( remove_query_arg( array( 'page', 'view', 'edit' ) ) );
615 615
 
616
-            if( ! $this->is_valid ){
616
+            if( ! $this->is_valid ) {
617 617
 
618 618
                 // Keeping this compatible with Gravity Forms.
619 619
                 $validation_message = "<div class='validation_error'>" . __('There was a problem with your submission.', 'gravityview') . " " . __('Errors have been highlighted below.', 'gravityview') . "</div>";
@@ -1620,9 +1620,7 @@  discard block
 block discarded – undo
1620 1620
         // Verify
1621 1621
         else if( ! $this->is_edit_entry() ) {
1622 1622
             $valid = false;
1623
-        }
1624
-
1625
-        else {
1623
+        } else {
1626 1624
             $valid = wp_verify_nonce( $_GET['edit'], self::$nonce_key );
1627 1625
         }
1628 1626
 
Please login to merge, or discard this patch.
Indentation   +1593 added lines, -1593 removed lines patch added patch discarded remove patch
@@ -10,20 +10,20 @@  discard block
 block discarded – undo
10 10
  */
11 11
 
12 12
 if ( ! defined( 'WPINC' ) ) {
13
-    die;
13
+	die;
14 14
 }
15 15
 
16 16
 class GravityView_Edit_Entry_Render {
17 17
 
18
-    /**
19
-     * @var GravityView_Edit_Entry
20
-     */
21
-    protected $loader;
18
+	/**
19
+	 * @var GravityView_Edit_Entry
20
+	 */
21
+	protected $loader;
22 22
 
23 23
 	/**
24 24
 	 * @var string String used to generate unique nonce for the entry/form/view combination. Allows access to edit page.
25 25
 	 */
26
-    static $nonce_key;
26
+	static $nonce_key;
27 27
 
28 28
 	/**
29 29
 	 * @since 1.9
@@ -37,12 +37,12 @@  discard block
 block discarded – undo
37 37
 	 */
38 38
 	private static $supports_save_and_continue = false;
39 39
 
40
-    /**
41
-     * Gravity Forms entry array
42
-     *
43
-     * @var array
44
-     */
45
-    public $entry;
40
+	/**
41
+	 * Gravity Forms entry array
42
+	 *
43
+	 * @var array
44
+	 */
45
+	public $entry;
46 46
 
47 47
 	/**
48 48
 	 * Gravity Forms entry array (it won't get changed during this class lifecycle)
@@ -51,134 +51,134 @@  discard block
 block discarded – undo
51 51
 	 */
52 52
 	private static $original_entry = array();
53 53
 
54
-    /**
55
-     * Gravity Forms form array (GravityView modifies the content through this class lifecycle)
56
-     *
57
-     * @var array
58
-     */
54
+	/**
55
+	 * Gravity Forms form array (GravityView modifies the content through this class lifecycle)
56
+	 *
57
+	 * @var array
58
+	 */
59 59
 	public $form;
60 60
 
61
-    /**
62
-     * Gravity Forms form array (it won't get changed during this class lifecycle)
63
-     * @since 1.16.2.1
64
-     * @var array
65
-     */
66
-    private static $original_form;
67
-
68
-    /**
69
-     * Gravity Forms form array after the form validation process
70
-     * @since 1.13
71
-     * @var array
72
-     */
61
+	/**
62
+	 * Gravity Forms form array (it won't get changed during this class lifecycle)
63
+	 * @since 1.16.2.1
64
+	 * @var array
65
+	 */
66
+	private static $original_form;
67
+
68
+	/**
69
+	 * Gravity Forms form array after the form validation process
70
+	 * @since 1.13
71
+	 * @var array
72
+	 */
73 73
 	public $form_after_validation = null;
74 74
 
75
-    /**
76
-     * Hold an array of GF field objects that have calculation rules
77
-     * @var array
78
-     */
75
+	/**
76
+	 * Hold an array of GF field objects that have calculation rules
77
+	 * @var array
78
+	 */
79 79
 	public $fields_with_calculation = array();
80 80
 
81
-    /**
82
-     * Gravity Forms form id
83
-     *
84
-     * @var int
85
-     */
81
+	/**
82
+	 * Gravity Forms form id
83
+	 *
84
+	 * @var int
85
+	 */
86 86
 	public $form_id;
87 87
 
88
-    /**
89
-     * ID of the current view
90
-     *
91
-     * @var int
92
-     */
88
+	/**
89
+	 * ID of the current view
90
+	 *
91
+	 * @var int
92
+	 */
93 93
 	public $view_id;
94 94
 
95
-    /**
96
-     * Updated entry is valid (GF Validation object)
97
-     *
98
-     * @var array
99
-     */
95
+	/**
96
+	 * Updated entry is valid (GF Validation object)
97
+	 *
98
+	 * @var array
99
+	 */
100 100
 	public $is_valid = NULL;
101 101
 
102
-    function __construct( GravityView_Edit_Entry $loader ) {
103
-        $this->loader = $loader;
104
-    }
102
+	function __construct( GravityView_Edit_Entry $loader ) {
103
+		$this->loader = $loader;
104
+	}
105 105
 
106
-    function load() {
106
+	function load() {
107 107
 
108
-        /** @define "GRAVITYVIEW_DIR" "../../../" */
109
-        include_once( GRAVITYVIEW_DIR .'includes/class-admin-approve-entries.php' );
108
+		/** @define "GRAVITYVIEW_DIR" "../../../" */
109
+		include_once( GRAVITYVIEW_DIR .'includes/class-admin-approve-entries.php' );
110 110
 
111
-        // Don't display an embedded form when editing an entry
112
-        add_action( 'wp_head', array( $this, 'prevent_render_form' ) );
113
-        add_action( 'wp_footer', array( $this, 'prevent_render_form' ) );
111
+		// Don't display an embedded form when editing an entry
112
+		add_action( 'wp_head', array( $this, 'prevent_render_form' ) );
113
+		add_action( 'wp_footer', array( $this, 'prevent_render_form' ) );
114 114
 
115
-        // Stop Gravity Forms processing what is ours!
116
-        add_filter( 'wp', array( $this, 'prevent_maybe_process_form'), 8 );
115
+		// Stop Gravity Forms processing what is ours!
116
+		add_filter( 'wp', array( $this, 'prevent_maybe_process_form'), 8 );
117 117
 
118
-        add_filter( 'gravityview_is_edit_entry', array( $this, 'is_edit_entry') );
118
+		add_filter( 'gravityview_is_edit_entry', array( $this, 'is_edit_entry') );
119 119
 
120
-        add_action( 'gravityview_edit_entry', array( $this, 'init' ) );
120
+		add_action( 'gravityview_edit_entry', array( $this, 'init' ) );
121 121
 
122
-        // Disable conditional logic if needed (since 1.9)
123
-        add_filter( 'gform_has_conditional_logic', array( $this, 'manage_conditional_logic' ), 10, 2 );
122
+		// Disable conditional logic if needed (since 1.9)
123
+		add_filter( 'gform_has_conditional_logic', array( $this, 'manage_conditional_logic' ), 10, 2 );
124 124
 
125
-        // Make sure GF doesn't validate max files (since 1.9)
126
-        add_filter( 'gform_plupload_settings', array( $this, 'modify_fileupload_settings' ), 10, 3 );
125
+		// Make sure GF doesn't validate max files (since 1.9)
126
+		add_filter( 'gform_plupload_settings', array( $this, 'modify_fileupload_settings' ), 10, 3 );
127 127
 
128
-        // Add fields expected by GFFormDisplay::validate()
129
-        add_filter( 'gform_pre_validation', array( $this, 'gform_pre_validation') );
128
+		// Add fields expected by GFFormDisplay::validate()
129
+		add_filter( 'gform_pre_validation', array( $this, 'gform_pre_validation') );
130 130
 
131 131
 		// Fix multiselect value for GF 2.2
132 132
 		add_filter( 'gravityview/edit_entry/field_value_multiselect', array( $this, 'fix_multiselect_value_serialization' ), 10, 3 );
133
-    }
134
-
135
-    /**
136
-     * Don't show any forms embedded on a page when GravityView is in Edit Entry mode
137
-     *
138
-     * Adds a `__return_empty_string` filter on the Gravity Forms shortcode on the `wp_head` action
139
-     * And then removes it on the `wp_footer` action
140
-     *
141
-     * @since 1.16.1
142
-     *
143
-     * @return void
144
-     */
145
-    public function prevent_render_form() {
146
-        if( $this->is_edit_entry() ) {
147
-            if( 'wp_head' === current_filter() ) {
148
-                add_filter( 'gform_shortcode_form', '__return_empty_string' );
149
-            } else {
150
-                remove_filter( 'gform_shortcode_form', '__return_empty_string' );
151
-            }
152
-        }
153
-    }
154
-
155
-    /**
156
-     * Because we're mimicking being a front-end Gravity Forms form while using a Gravity Forms
157
-     * backend form, we need to prevent them from saving twice.
158
-     * @return void
159
-     */
160
-    public function prevent_maybe_process_form() {
161
-
162
-        if( ! empty( $_POST ) ) {
163
-	        do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[prevent_maybe_process_form] $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
164
-        }
165
-
166
-        if( $this->is_edit_entry_submission() ) {
167
-            remove_action( 'wp',  array( 'RGForms', 'maybe_process_form'), 9 );
168
-	        remove_action( 'wp',  array( 'GFForms', 'maybe_process_form'), 9 );
169
-        }
170
-    }
171
-
172
-    /**
173
-     * Is the current page an Edit Entry page?
174
-     * @return boolean
175
-     */
176
-    public function is_edit_entry() {
177
-
178
-        $is_edit_entry = GravityView_frontend::is_single_entry() && ! empty( $_GET['edit'] );
179
-
180
-        return ( $is_edit_entry || $this->is_edit_entry_submission() );
181
-    }
133
+	}
134
+
135
+	/**
136
+	 * Don't show any forms embedded on a page when GravityView is in Edit Entry mode
137
+	 *
138
+	 * Adds a `__return_empty_string` filter on the Gravity Forms shortcode on the `wp_head` action
139
+	 * And then removes it on the `wp_footer` action
140
+	 *
141
+	 * @since 1.16.1
142
+	 *
143
+	 * @return void
144
+	 */
145
+	public function prevent_render_form() {
146
+		if( $this->is_edit_entry() ) {
147
+			if( 'wp_head' === current_filter() ) {
148
+				add_filter( 'gform_shortcode_form', '__return_empty_string' );
149
+			} else {
150
+				remove_filter( 'gform_shortcode_form', '__return_empty_string' );
151
+			}
152
+		}
153
+	}
154
+
155
+	/**
156
+	 * Because we're mimicking being a front-end Gravity Forms form while using a Gravity Forms
157
+	 * backend form, we need to prevent them from saving twice.
158
+	 * @return void
159
+	 */
160
+	public function prevent_maybe_process_form() {
161
+
162
+		if( ! empty( $_POST ) ) {
163
+			do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[prevent_maybe_process_form] $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
164
+		}
165
+
166
+		if( $this->is_edit_entry_submission() ) {
167
+			remove_action( 'wp',  array( 'RGForms', 'maybe_process_form'), 9 );
168
+			remove_action( 'wp',  array( 'GFForms', 'maybe_process_form'), 9 );
169
+		}
170
+	}
171
+
172
+	/**
173
+	 * Is the current page an Edit Entry page?
174
+	 * @return boolean
175
+	 */
176
+	public function is_edit_entry() {
177
+
178
+		$is_edit_entry = GravityView_frontend::is_single_entry() && ! empty( $_GET['edit'] );
179
+
180
+		return ( $is_edit_entry || $this->is_edit_entry_submission() );
181
+	}
182 182
 
183 183
 	/**
184 184
 	 * Is the current page an Edit Entry page?
@@ -189,173 +189,173 @@  discard block
 block discarded – undo
189 189
 		return !empty( $_POST[ self::$nonce_field ] );
190 190
 	}
191 191
 
192
-    /**
193
-     * When Edit entry view is requested setup the vars
194
-     */
195
-    private function setup_vars() {
196
-        $gravityview_view = GravityView_View::getInstance();
192
+	/**
193
+	 * When Edit entry view is requested setup the vars
194
+	 */
195
+	private function setup_vars() {
196
+		$gravityview_view = GravityView_View::getInstance();
197 197
 
198 198
 
199
-        $entries = $gravityview_view->getEntries();
200
-	    self::$original_entry = $entries[0];
201
-	    $this->entry = $entries[0];
199
+		$entries = $gravityview_view->getEntries();
200
+		self::$original_entry = $entries[0];
201
+		$this->entry = $entries[0];
202 202
 
203
-        self::$original_form = $gravityview_view->getForm();
204
-        $this->form = $gravityview_view->getForm();
205
-        $this->form_id = $gravityview_view->getFormId();
206
-        $this->view_id = $gravityview_view->getViewId();
203
+		self::$original_form = $gravityview_view->getForm();
204
+		$this->form = $gravityview_view->getForm();
205
+		$this->form_id = $gravityview_view->getFormId();
206
+		$this->view_id = $gravityview_view->getViewId();
207 207
 
208
-        self::$nonce_key = GravityView_Edit_Entry::get_nonce_key( $this->view_id, $this->form_id, $this->entry['id'] );
209
-    }
208
+		self::$nonce_key = GravityView_Edit_Entry::get_nonce_key( $this->view_id, $this->form_id, $this->entry['id'] );
209
+	}
210 210
 
211 211
 
212
-    /**
213
-     * Load required files and trigger edit flow
214
-     *
215
-     * Run when the is_edit_entry returns true.
216
-     *
217
-     * @param GravityView_View_Data $gv_data GravityView Data object
218
-     * @return void
219
-     */
220
-    public function init( $gv_data ) {
212
+	/**
213
+	 * Load required files and trigger edit flow
214
+	 *
215
+	 * Run when the is_edit_entry returns true.
216
+	 *
217
+	 * @param GravityView_View_Data $gv_data GravityView Data object
218
+	 * @return void
219
+	 */
220
+	public function init( $gv_data ) {
221 221
 
222
-        require_once( GFCommon::get_base_path() . '/form_display.php' );
223
-        require_once( GFCommon::get_base_path() . '/entry_detail.php' );
222
+		require_once( GFCommon::get_base_path() . '/form_display.php' );
223
+		require_once( GFCommon::get_base_path() . '/entry_detail.php' );
224 224
 
225
-        $this->setup_vars();
225
+		$this->setup_vars();
226 226
 
227
-        // Multiple Views embedded, don't proceed if nonce fails
227
+		// Multiple Views embedded, don't proceed if nonce fails
228 228
 		$multiple_views = defined( 'GRAVITYVIEW_FUTURE_CORE_LOADED' ) ? gravityview()->views->count() > 1 : $gv_data->has_multiple_views();
229
-        if( $multiple_views && ! wp_verify_nonce( $_GET['edit'], self::$nonce_key ) ) {
230
-            do_action('gravityview_log_error', __METHOD__ . ': Nonce validation failed for the Edit Entry request; returning' );
231
-            return;
232
-        }
229
+		if( $multiple_views && ! wp_verify_nonce( $_GET['edit'], self::$nonce_key ) ) {
230
+			do_action('gravityview_log_error', __METHOD__ . ': Nonce validation failed for the Edit Entry request; returning' );
231
+			return;
232
+		}
233 233
 
234
-        // Sorry, you're not allowed here.
235
-        if( false === $this->user_can_edit_entry( true ) ) {
236
-            do_action('gravityview_log_error', __METHOD__ . ': User is not allowed to edit this entry; returning', $this->entry );
237
-            return;
238
-        }
234
+		// Sorry, you're not allowed here.
235
+		if( false === $this->user_can_edit_entry( true ) ) {
236
+			do_action('gravityview_log_error', __METHOD__ . ': User is not allowed to edit this entry; returning', $this->entry );
237
+			return;
238
+		}
239 239
 
240
-        $this->print_scripts();
240
+		$this->print_scripts();
241 241
 
242
-        $this->process_save();
242
+		$this->process_save();
243 243
 
244
-        $this->edit_entry_form();
244
+		$this->edit_entry_form();
245 245
 
246
-    }
246
+	}
247 247
 
248 248
 
249
-    /**
250
-     * Force Gravity Forms to output scripts as if it were in the admin
251
-     * @return void
252
-     */
253
-    private function print_scripts() {
254
-        $gravityview_view = GravityView_View::getInstance();
249
+	/**
250
+	 * Force Gravity Forms to output scripts as if it were in the admin
251
+	 * @return void
252
+	 */
253
+	private function print_scripts() {
254
+		$gravityview_view = GravityView_View::getInstance();
255 255
 
256
-        wp_register_script( 'gform_gravityforms', GFCommon::get_base_url().'/js/gravityforms.js', array( 'jquery', 'gform_json', 'gform_placeholder', 'sack', 'plupload-all', 'gravityview-fe-view' ) );
256
+		wp_register_script( 'gform_gravityforms', GFCommon::get_base_url().'/js/gravityforms.js', array( 'jquery', 'gform_json', 'gform_placeholder', 'sack', 'plupload-all', 'gravityview-fe-view' ) );
257 257
 
258
-        GFFormDisplay::enqueue_form_scripts($gravityview_view->getForm(), false);
258
+		GFFormDisplay::enqueue_form_scripts($gravityview_view->getForm(), false);
259 259
 
260
-        // Sack is required for images
261
-        wp_print_scripts( array( 'sack', 'gform_gravityforms' ) );
262
-    }
260
+		// Sack is required for images
261
+		wp_print_scripts( array( 'sack', 'gform_gravityforms' ) );
262
+	}
263 263
 
264 264
 
265
-    /**
266
-     * Process edit entry form save
267
-     */
268
-    private function process_save() {
265
+	/**
266
+	 * Process edit entry form save
267
+	 */
268
+	private function process_save() {
269 269
 
270
-        if( empty( $_POST ) || ! isset( $_POST['lid'] ) ) {
271
-            return;
272
-        }
270
+		if( empty( $_POST ) || ! isset( $_POST['lid'] ) ) {
271
+			return;
272
+		}
273 273
 
274
-        // Make sure the entry, view, and form IDs are all correct
275
-        $valid = $this->verify_nonce();
274
+		// Make sure the entry, view, and form IDs are all correct
275
+		$valid = $this->verify_nonce();
276 276
 
277
-        if( !$valid ) {
278
-            do_action('gravityview_log_error', __METHOD__ . ' Nonce validation failed.' );
279
-            return;
280
-        }
277
+		if( !$valid ) {
278
+			do_action('gravityview_log_error', __METHOD__ . ' Nonce validation failed.' );
279
+			return;
280
+		}
281 281
 
282
-        if( $this->entry['id'] !== $_POST['lid'] ) {
283
-            do_action('gravityview_log_error', __METHOD__ . ' Entry ID did not match posted entry ID.' );
284
-            return;
285
-        }
282
+		if( $this->entry['id'] !== $_POST['lid'] ) {
283
+			do_action('gravityview_log_error', __METHOD__ . ' Entry ID did not match posted entry ID.' );
284
+			return;
285
+		}
286 286
 
287
-        do_action('gravityview_log_debug', __METHOD__ . ': $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
287
+		do_action('gravityview_log_debug', __METHOD__ . ': $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
288 288
 
289
-        $this->process_save_process_files( $this->form_id );
289
+		$this->process_save_process_files( $this->form_id );
290 290
 
291
-        $this->validate();
291
+		$this->validate();
292 292
 
293
-        if( $this->is_valid ) {
293
+		if( $this->is_valid ) {
294 294
 
295
-            do_action('gravityview_log_debug', __METHOD__ . ': Submission is valid.' );
295
+			do_action('gravityview_log_debug', __METHOD__ . ': Submission is valid.' );
296 296
 
297
-            /**
298
-             * @hack This step is needed to unset the adminOnly from form fields, to add the calculation fields
299
-             */
300
-            $form = $this->form_prepare_for_save();
297
+			/**
298
+			 * @hack This step is needed to unset the adminOnly from form fields, to add the calculation fields
299
+			 */
300
+			$form = $this->form_prepare_for_save();
301 301
 
302
-            /**
303
-             * @hack to avoid the capability validation of the method save_lead for GF 1.9+
304
-             */
305
-            unset( $_GET['page'] );
302
+			/**
303
+			 * @hack to avoid the capability validation of the method save_lead for GF 1.9+
304
+			 */
305
+			unset( $_GET['page'] );
306 306
 
307
-            $date_created = $this->entry['date_created'];
307
+			$date_created = $this->entry['date_created'];
308 308
 
309
-            /**
310
-             * @hack to force Gravity Forms to use $read_value_from_post in GFFormsModel::save_lead()
311
-             * @since 1.17.2
312
-             */
313
-            unset( $this->entry['date_created'] );
309
+			/**
310
+			 * @hack to force Gravity Forms to use $read_value_from_post in GFFormsModel::save_lead()
311
+			 * @since 1.17.2
312
+			 */
313
+			unset( $this->entry['date_created'] );
314 314
 
315
-            GFFormsModel::save_lead( $form, $this->entry );
315
+			GFFormsModel::save_lead( $form, $this->entry );
316 316
 
317
-	        // Delete the values for hidden inputs
318
-	        $this->unset_hidden_field_values();
317
+			// Delete the values for hidden inputs
318
+			$this->unset_hidden_field_values();
319 319
             
320
-            $this->entry['date_created'] = $date_created;
320
+			$this->entry['date_created'] = $date_created;
321 321
 
322
-            // Process calculation fields
323
-            $this->update_calculation_fields();
322
+			// Process calculation fields
323
+			$this->update_calculation_fields();
324 324
 
325
-            // Perform actions normally performed after updating a lead
326
-            $this->after_update();
325
+			// Perform actions normally performed after updating a lead
326
+			$this->after_update();
327 327
 
328
-	        /**
329
-             * Must be AFTER after_update()!
330
-             * @see https://github.com/gravityview/GravityView/issues/764
331
-             */
332
-            $this->maybe_update_post_fields( $form );
328
+			/**
329
+			 * Must be AFTER after_update()!
330
+			 * @see https://github.com/gravityview/GravityView/issues/764
331
+			 */
332
+			$this->maybe_update_post_fields( $form );
333 333
 
334
-            /**
335
-             * @action `gravityview/edit_entry/after_update` Perform an action after the entry has been updated using Edit Entry
336
-             * @param array $form Gravity Forms form array
337
-             * @param string $entry_id Numeric ID of the entry that was updated
338
-             * @param GravityView_Edit_Entry_Render $this This object
339
-             */
340
-            do_action( 'gravityview/edit_entry/after_update', $this->form, $this->entry['id'], $this );
334
+			/**
335
+			 * @action `gravityview/edit_entry/after_update` Perform an action after the entry has been updated using Edit Entry
336
+			 * @param array $form Gravity Forms form array
337
+			 * @param string $entry_id Numeric ID of the entry that was updated
338
+			 * @param GravityView_Edit_Entry_Render $this This object
339
+			 */
340
+			do_action( 'gravityview/edit_entry/after_update', $this->form, $this->entry['id'], $this );
341 341
 
342
-        } else {
343
-            do_action('gravityview_log_error', __METHOD__ . ': Submission is NOT valid.', $this->entry );
344
-        }
342
+		} else {
343
+			do_action('gravityview_log_error', __METHOD__ . ': Submission is NOT valid.', $this->entry );
344
+		}
345 345
 
346
-    } // process_save
346
+	} // process_save
347 347
 
348 348
 	/**
349 349
 	 * Delete the value of fields hidden by conditional logic when the entry is edited
350
-     *
351
-     * @uses GFFormsModel::update_lead_field_value()
352
-     *
353
-     * @since 1.17.4
354
-     *
355
-     * @return void
350
+	 *
351
+	 * @uses GFFormsModel::update_lead_field_value()
352
+	 *
353
+	 * @since 1.17.4
354
+	 *
355
+	 * @return void
356 356
 	 */
357
-    private function unset_hidden_field_values() {
358
-	    global $wpdb;
357
+	private function unset_hidden_field_values() {
358
+		global $wpdb;
359 359
 
360 360
 		if ( method_exists( 'GFFormsModel', 'get_entry_meta_table_name' ) ) {
361 361
 			$entry_meta_table = GFFormsModel::get_entry_meta_table_name();
@@ -365,58 +365,58 @@  discard block
 block discarded – undo
365 365
 			$current_fields = $wpdb->get_results( $wpdb->prepare( "SELECT id, field_number FROM $lead_detail_table WHERE lead_id=%d", $this->entry['id'] ) );
366 366
 		}
367 367
 
368
-	    foreach ( $this->entry as $input_id => $field_value ) {
368
+		foreach ( $this->entry as $input_id => $field_value ) {
369 369
 
370
-		    $field = RGFormsModel::get_field( $this->form, $input_id );
370
+			$field = RGFormsModel::get_field( $this->form, $input_id );
371 371
 
372
-		    // Reset fields that are hidden
373
-		    // Don't pass $entry as fourth parameter; force using $_POST values to calculate conditional logic
374
-		    if ( GFFormsModel::is_field_hidden( $this->form, $field, array(), NULL ) ) {
372
+			// Reset fields that are hidden
373
+			// Don't pass $entry as fourth parameter; force using $_POST values to calculate conditional logic
374
+			if ( GFFormsModel::is_field_hidden( $this->form, $field, array(), NULL ) ) {
375 375
 
376
-		        // List fields are stored as empty arrays when empty
377
-			    $empty_value = $this->is_field_json_encoded( $field ) ? '[]' : '';
376
+				// List fields are stored as empty arrays when empty
377
+				$empty_value = $this->is_field_json_encoded( $field ) ? '[]' : '';
378 378
 
379
-			    $lead_detail_id = GFFormsModel::get_lead_detail_id( $current_fields, $input_id );
379
+				$lead_detail_id = GFFormsModel::get_lead_detail_id( $current_fields, $input_id );
380 380
 
381
-			    GFFormsModel::update_lead_field_value( $this->form, $this->entry, $field, $lead_detail_id, $input_id, $empty_value );
381
+				GFFormsModel::update_lead_field_value( $this->form, $this->entry, $field, $lead_detail_id, $input_id, $empty_value );
382 382
 
383
-			    // Prevent the $_POST values of hidden fields from being used as default values when rendering the form
384
-                // after submission
385
-			    $post_input_id = 'input_' . str_replace( '.', '_', $input_id );
386
-			    $_POST[ $post_input_id ] = '';
387
-		    }
388
-	    }
389
-    }
383
+				// Prevent the $_POST values of hidden fields from being used as default values when rendering the form
384
+				// after submission
385
+				$post_input_id = 'input_' . str_replace( '.', '_', $input_id );
386
+				$_POST[ $post_input_id ] = '';
387
+			}
388
+		}
389
+	}
390 390
 
391
-    /**
392
-     * Have GF handle file uploads
393
-     *
394
-     * Copy of code from GFFormDisplay::process_form()
395
-     *
396
-     * @param int $form_id
397
-     */
398
-    private function process_save_process_files( $form_id ) {
391
+	/**
392
+	 * Have GF handle file uploads
393
+	 *
394
+	 * Copy of code from GFFormDisplay::process_form()
395
+	 *
396
+	 * @param int $form_id
397
+	 */
398
+	private function process_save_process_files( $form_id ) {
399 399
 
400
-        //Loading files that have been uploaded to temp folder
401
-        $files = GFCommon::json_decode( stripslashes( RGForms::post( 'gform_uploaded_files' ) ) );
402
-        if ( ! is_array( $files ) ) {
403
-            $files = array();
404
-        }
400
+		//Loading files that have been uploaded to temp folder
401
+		$files = GFCommon::json_decode( stripslashes( RGForms::post( 'gform_uploaded_files' ) ) );
402
+		if ( ! is_array( $files ) ) {
403
+			$files = array();
404
+		}
405 405
 
406 406
 		/**
407 407
 		 * Make sure the fileuploads are not overwritten if no such request was done.
408
-         * @since 1.20.1
408
+		 * @since 1.20.1
409 409
 		 */
410 410
 		add_filter( "gform_save_field_value_$form_id", array( $this, 'save_field_value' ), 99, 5 );
411 411
 
412
-        RGFormsModel::$uploaded_files[ $form_id ] = $files;
413
-    }
412
+		RGFormsModel::$uploaded_files[ $form_id ] = $files;
413
+	}
414 414
 
415 415
 	/**
416 416
 	 * Make sure the fileuploads are not overwritten if no such request was done.
417 417
 	 *
418
-     * TO ONLY BE USED INTERNALLY; DO NOT DEVELOP ON; MAY BE REMOVED AT ANY TIME.
419
-     *
418
+	 * TO ONLY BE USED INTERNALLY; DO NOT DEVELOP ON; MAY BE REMOVED AT ANY TIME.
419
+	 *
420 420
 	 * @since 1.20.1
421 421
 	 *
422 422
 	 * @param string $value Field value
@@ -451,156 +451,156 @@  discard block
 block discarded – undo
451 451
 		return $value;
452 452
 	}
453 453
 
454
-    /**
455
-     * Remove max_files validation (done on gravityforms.js) to avoid conflicts with GravityView
456
-     * Late validation done on self::custom_validation
457
-     *
458
-     * @param $plupload_init array Plupload settings
459
-     * @param $form_id
460
-     * @param $instance
461
-     * @return mixed
462
-     */
463
-    public function modify_fileupload_settings( $plupload_init, $form_id, $instance ) {
464
-        if( ! $this->is_edit_entry() ) {
465
-            return $plupload_init;
466
-        }
467
-
468
-        $plupload_init['gf_vars']['max_files'] = 0;
469
-
470
-        return $plupload_init;
471
-    }
472
-
473
-
474
-    /**
475
-     * Unset adminOnly and convert field input key to string
476
-     * @return array $form
477
-     */
478
-    private function form_prepare_for_save() {
479
-
480
-        $form = $this->form;
481
-
482
-	    /** @var GF_Field $field */
483
-        foreach( $form['fields'] as $k => &$field ) {
484
-
485
-            /**
486
-             * Remove the fields with calculation formulas before save to avoid conflicts with GF logic
487
-             * @since 1.16.3
488
-             * @var GF_Field $field
489
-             */
490
-            if( $field->has_calculation() ) {
491
-                unset( $form['fields'][ $k ] );
492
-            }
493
-
494
-            $field->adminOnly = false;
495
-
496
-            if( isset( $field->inputs ) && is_array( $field->inputs ) ) {
497
-                foreach( $field->inputs as $key => $input ) {
498
-                    $field->inputs[ $key ][ 'id' ] = (string)$input['id'];
499
-                }
500
-            }
501
-        }
502
-
503
-        return $form;
504
-    }
505
-
506
-    private function update_calculation_fields() {
507
-
508
-        $form = self::$original_form;
509
-        $update = false;
510
-
511
-        // get the most up to date entry values
512
-        $entry = GFAPI::get_entry( $this->entry['id'] );
513
-
514
-        if( !empty( $this->fields_with_calculation ) ) {
515
-            $update = true;
516
-            foreach ( $this->fields_with_calculation as $calc_field ) {
517
-                $inputs = $calc_field->get_entry_inputs();
518
-                if ( is_array( $inputs ) ) {
519
-                    foreach ( $inputs as $input ) {
520
-                        $input_name = 'input_' . str_replace( '.', '_', $input['id'] );
521
-                        $entry[ strval( $input['id'] ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
522
-                    }
523
-                } else {
524
-                    $input_name = 'input_' . str_replace( '.', '_', $calc_field->id);
525
-                    $entry[ strval( $calc_field->id ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
526
-                }
527
-            }
528
-
529
-        }
530
-
531
-        if( $update ) {
532
-
533
-            $return_entry = GFAPI::update_entry( $entry );
534
-
535
-            if( is_wp_error( $return_entry ) ) {
536
-                do_action( 'gravityview_log_error', 'Updating the entry calculation fields failed', $return_entry );
537
-            } else {
538
-                do_action( 'gravityview_log_debug', 'Updating the entry calculation fields succeeded' );
539
-            }
540
-        }
541
-    }
542
-
543
-    /**
544
-     * Handle updating the Post Image field
545
-     *
546
-     * Sets a new Featured Image if configured in Gravity Forms; otherwise uploads/updates media
547
-     *
548
-     * @since 1.17
549
-     *
550
-     * @uses GFFormsModel::media_handle_upload
551
-     * @uses set_post_thumbnail
552
-     * 
553
-     * @param array $form GF Form array
554
-     * @param GF_Field $field GF Field
555
-     * @param string $field_id Numeric ID of the field
556
-     * @param string $value
557
-     * @param array $entry GF Entry currently being edited
558
-     * @param int $post_id ID of the Post being edited
559
-     *
560
-     * @return mixed|string
561
-     */
562
-    private function update_post_image( $form, $field, $field_id, $value, $entry, $post_id ) {
563
-
564
-        $input_name = 'input_' . $field_id;
565
-
566
-        if ( !empty( $_FILES[ $input_name ]['name'] ) ) {
567
-
568
-            // We have a new image
569
-
570
-            $value = RGFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'] );
571
-
572
-            $ary = ! empty( $value ) ? explode( '|:|', $value ) : array();
573
-            $img_url = rgar( $ary, 0 );
574
-
575
-            $img_title       = count( $ary ) > 1 ? $ary[1] : '';
576
-            $img_caption     = count( $ary ) > 2 ? $ary[2] : '';
577
-            $img_description = count( $ary ) > 3 ? $ary[3] : '';
578
-
579
-            $image_meta = array(
580
-                'post_excerpt' => $img_caption,
581
-                'post_content' => $img_description,
582
-            );
583
-
584
-            //adding title only if it is not empty. It will default to the file name if it is not in the array
585
-            if ( ! empty( $img_title ) ) {
586
-                $image_meta['post_title'] = $img_title;
587
-            }
588
-
589
-            /**
590
-             * todo: As soon as \GFFormsModel::media_handle_upload becomes a public method, move this call to \GFFormsModel::media_handle_upload and remove the hack from this class.
591
-             * Note: the method became public in GF 1.9.17.7, but we don't require that version yet.
592
-             */
593
-            require_once GRAVITYVIEW_DIR . 'includes/class-gravityview-gfformsmodel.php';
594
-            $media_id = GravityView_GFFormsModel::media_handle_upload( $img_url, $post_id, $image_meta );
595
-
596
-            // is this field set as featured image?
597
-            if ( $media_id && $field->postFeaturedImage ) {
598
-                set_post_thumbnail( $post_id, $media_id );
599
-            }
600
-
601
-        } elseif ( !empty( $_POST[ $input_name ] ) && is_array( $value ) ) {
602
-
603
-            $img_url = $_POST[ $input_name ];
454
+	/**
455
+	 * Remove max_files validation (done on gravityforms.js) to avoid conflicts with GravityView
456
+	 * Late validation done on self::custom_validation
457
+	 *
458
+	 * @param $plupload_init array Plupload settings
459
+	 * @param $form_id
460
+	 * @param $instance
461
+	 * @return mixed
462
+	 */
463
+	public function modify_fileupload_settings( $plupload_init, $form_id, $instance ) {
464
+		if( ! $this->is_edit_entry() ) {
465
+			return $plupload_init;
466
+		}
467
+
468
+		$plupload_init['gf_vars']['max_files'] = 0;
469
+
470
+		return $plupload_init;
471
+	}
472
+
473
+
474
+	/**
475
+	 * Unset adminOnly and convert field input key to string
476
+	 * @return array $form
477
+	 */
478
+	private function form_prepare_for_save() {
479
+
480
+		$form = $this->form;
481
+
482
+		/** @var GF_Field $field */
483
+		foreach( $form['fields'] as $k => &$field ) {
484
+
485
+			/**
486
+			 * Remove the fields with calculation formulas before save to avoid conflicts with GF logic
487
+			 * @since 1.16.3
488
+			 * @var GF_Field $field
489
+			 */
490
+			if( $field->has_calculation() ) {
491
+				unset( $form['fields'][ $k ] );
492
+			}
493
+
494
+			$field->adminOnly = false;
495
+
496
+			if( isset( $field->inputs ) && is_array( $field->inputs ) ) {
497
+				foreach( $field->inputs as $key => $input ) {
498
+					$field->inputs[ $key ][ 'id' ] = (string)$input['id'];
499
+				}
500
+			}
501
+		}
502
+
503
+		return $form;
504
+	}
505
+
506
+	private function update_calculation_fields() {
507
+
508
+		$form = self::$original_form;
509
+		$update = false;
510
+
511
+		// get the most up to date entry values
512
+		$entry = GFAPI::get_entry( $this->entry['id'] );
513
+
514
+		if( !empty( $this->fields_with_calculation ) ) {
515
+			$update = true;
516
+			foreach ( $this->fields_with_calculation as $calc_field ) {
517
+				$inputs = $calc_field->get_entry_inputs();
518
+				if ( is_array( $inputs ) ) {
519
+					foreach ( $inputs as $input ) {
520
+						$input_name = 'input_' . str_replace( '.', '_', $input['id'] );
521
+						$entry[ strval( $input['id'] ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
522
+					}
523
+				} else {
524
+					$input_name = 'input_' . str_replace( '.', '_', $calc_field->id);
525
+					$entry[ strval( $calc_field->id ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
526
+				}
527
+			}
528
+
529
+		}
530
+
531
+		if( $update ) {
532
+
533
+			$return_entry = GFAPI::update_entry( $entry );
534
+
535
+			if( is_wp_error( $return_entry ) ) {
536
+				do_action( 'gravityview_log_error', 'Updating the entry calculation fields failed', $return_entry );
537
+			} else {
538
+				do_action( 'gravityview_log_debug', 'Updating the entry calculation fields succeeded' );
539
+			}
540
+		}
541
+	}
542
+
543
+	/**
544
+	 * Handle updating the Post Image field
545
+	 *
546
+	 * Sets a new Featured Image if configured in Gravity Forms; otherwise uploads/updates media
547
+	 *
548
+	 * @since 1.17
549
+	 *
550
+	 * @uses GFFormsModel::media_handle_upload
551
+	 * @uses set_post_thumbnail
552
+	 * 
553
+	 * @param array $form GF Form array
554
+	 * @param GF_Field $field GF Field
555
+	 * @param string $field_id Numeric ID of the field
556
+	 * @param string $value
557
+	 * @param array $entry GF Entry currently being edited
558
+	 * @param int $post_id ID of the Post being edited
559
+	 *
560
+	 * @return mixed|string
561
+	 */
562
+	private function update_post_image( $form, $field, $field_id, $value, $entry, $post_id ) {
563
+
564
+		$input_name = 'input_' . $field_id;
565
+
566
+		if ( !empty( $_FILES[ $input_name ]['name'] ) ) {
567
+
568
+			// We have a new image
569
+
570
+			$value = RGFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'] );
571
+
572
+			$ary = ! empty( $value ) ? explode( '|:|', $value ) : array();
573
+			$img_url = rgar( $ary, 0 );
574
+
575
+			$img_title       = count( $ary ) > 1 ? $ary[1] : '';
576
+			$img_caption     = count( $ary ) > 2 ? $ary[2] : '';
577
+			$img_description = count( $ary ) > 3 ? $ary[3] : '';
578
+
579
+			$image_meta = array(
580
+				'post_excerpt' => $img_caption,
581
+				'post_content' => $img_description,
582
+			);
583
+
584
+			//adding title only if it is not empty. It will default to the file name if it is not in the array
585
+			if ( ! empty( $img_title ) ) {
586
+				$image_meta['post_title'] = $img_title;
587
+			}
588
+
589
+			/**
590
+			 * todo: As soon as \GFFormsModel::media_handle_upload becomes a public method, move this call to \GFFormsModel::media_handle_upload and remove the hack from this class.
591
+			 * Note: the method became public in GF 1.9.17.7, but we don't require that version yet.
592
+			 */
593
+			require_once GRAVITYVIEW_DIR . 'includes/class-gravityview-gfformsmodel.php';
594
+			$media_id = GravityView_GFFormsModel::media_handle_upload( $img_url, $post_id, $image_meta );
595
+
596
+			// is this field set as featured image?
597
+			if ( $media_id && $field->postFeaturedImage ) {
598
+				set_post_thumbnail( $post_id, $media_id );
599
+			}
600
+
601
+		} elseif ( !empty( $_POST[ $input_name ] ) && is_array( $value ) ) {
602
+
603
+			$img_url = $_POST[ $input_name ];
604 604
 
605 605
 			$img_title       = rgar( $_POST, $input_name.'_1' );
606 606
 			$img_caption     = rgar( $_POST, $input_name .'_4' );
@@ -620,221 +620,221 @@  discard block
 block discarded – undo
620 620
 				// update image title, caption or description
621 621
 				wp_update_post( $image_meta );
622 622
 			}
623
-        } else {
624
-
625
-            // if we get here, image was removed or not set.
626
-            $value = '';
627
-
628
-            if ( $field->postFeaturedImage ) {
629
-                delete_post_thumbnail( $post_id );
630
-            }
631
-        }
632
-
633
-        return $value;
634
-    }
635
-
636
-    /**
637
-     * Loop through the fields being edited and if they include Post fields, update the Entry's post object
638
-     *
639
-     * @param array $form Gravity Forms form
640
-     *
641
-     * @return void
642
-     */
643
-    private function maybe_update_post_fields( $form ) {
644
-
645
-        if( empty( $this->entry['post_id'] ) ) {
646
-	        do_action( 'gravityview_log_debug', __METHOD__ . ': This entry has no post fields. Continuing...' );
647
-            return;
648
-        }
649
-
650
-        $post_id = $this->entry['post_id'];
651
-
652
-        // Security check
653
-        if( false === GVCommon::has_cap( 'edit_post', $post_id ) ) {
654
-            do_action( 'gravityview_log_error', 'The current user does not have the ability to edit Post #'.$post_id );
655
-            return;
656
-        }
657
-
658
-        $update_entry = false;
659
-
660
-        $updated_post = $original_post = get_post( $post_id );
661
-
662
-        foreach ( $this->entry as $field_id => $value ) {
663
-
664
-            $field = RGFormsModel::get_field( $form, $field_id );
665
-
666
-            if( ! $field ) {
667
-                continue;
668
-            }
669
-
670
-            if( GFCommon::is_post_field( $field ) && 'post_category' !== $field->type ) {
671
-
672
-                // Get the value of the field, including $_POSTed value
673
-                $value = RGFormsModel::get_field_value( $field );
674
-
675
-                // Use temporary entry variable, to make values available to fill_post_template() and update_post_image()
676
-                $entry_tmp = $this->entry;
677
-                $entry_tmp["{$field_id}"] = $value;
678
-
679
-                switch( $field->type ) {
680
-
681
-                    case 'post_title':
682
-                        $post_title = $value;
683
-                        if( rgar( $form, 'postTitleTemplateEnabled' ) ) {
684
-                            $post_title = $this->fill_post_template( $form['postTitleTemplate'], $form, $entry_tmp );
685
-                        }
686
-                        $updated_post->post_title = $post_title;
687
-                        $updated_post->post_name  = $post_title;
688
-                        unset( $post_title );
689
-                        break;
690
-
691
-                    case 'post_content':
692
-                        $post_content = $value;
693
-                        if( rgar( $form, 'postContentTemplateEnabled' ) ) {
694
-                            $post_content = $this->fill_post_template( $form['postContentTemplate'], $form, $entry_tmp, true );
695
-                        }
696
-                        $updated_post->post_content = $post_content;
697
-                        unset( $post_content );
698
-                        break;
699
-                    case 'post_excerpt':
700
-                        $updated_post->post_excerpt = $value;
701
-                        break;
702
-                    case 'post_tags':
703
-                        wp_set_post_tags( $post_id, $value, false );
704
-                        break;
705
-                    case 'post_category':
706
-                        break;
707
-                    case 'post_custom_field':
623
+		} else {
624
+
625
+			// if we get here, image was removed or not set.
626
+			$value = '';
627
+
628
+			if ( $field->postFeaturedImage ) {
629
+				delete_post_thumbnail( $post_id );
630
+			}
631
+		}
632
+
633
+		return $value;
634
+	}
635
+
636
+	/**
637
+	 * Loop through the fields being edited and if they include Post fields, update the Entry's post object
638
+	 *
639
+	 * @param array $form Gravity Forms form
640
+	 *
641
+	 * @return void
642
+	 */
643
+	private function maybe_update_post_fields( $form ) {
644
+
645
+		if( empty( $this->entry['post_id'] ) ) {
646
+			do_action( 'gravityview_log_debug', __METHOD__ . ': This entry has no post fields. Continuing...' );
647
+			return;
648
+		}
649
+
650
+		$post_id = $this->entry['post_id'];
651
+
652
+		// Security check
653
+		if( false === GVCommon::has_cap( 'edit_post', $post_id ) ) {
654
+			do_action( 'gravityview_log_error', 'The current user does not have the ability to edit Post #'.$post_id );
655
+			return;
656
+		}
657
+
658
+		$update_entry = false;
659
+
660
+		$updated_post = $original_post = get_post( $post_id );
661
+
662
+		foreach ( $this->entry as $field_id => $value ) {
663
+
664
+			$field = RGFormsModel::get_field( $form, $field_id );
665
+
666
+			if( ! $field ) {
667
+				continue;
668
+			}
669
+
670
+			if( GFCommon::is_post_field( $field ) && 'post_category' !== $field->type ) {
671
+
672
+				// Get the value of the field, including $_POSTed value
673
+				$value = RGFormsModel::get_field_value( $field );
674
+
675
+				// Use temporary entry variable, to make values available to fill_post_template() and update_post_image()
676
+				$entry_tmp = $this->entry;
677
+				$entry_tmp["{$field_id}"] = $value;
678
+
679
+				switch( $field->type ) {
680
+
681
+					case 'post_title':
682
+						$post_title = $value;
683
+						if( rgar( $form, 'postTitleTemplateEnabled' ) ) {
684
+							$post_title = $this->fill_post_template( $form['postTitleTemplate'], $form, $entry_tmp );
685
+						}
686
+						$updated_post->post_title = $post_title;
687
+						$updated_post->post_name  = $post_title;
688
+						unset( $post_title );
689
+						break;
690
+
691
+					case 'post_content':
692
+						$post_content = $value;
693
+						if( rgar( $form, 'postContentTemplateEnabled' ) ) {
694
+							$post_content = $this->fill_post_template( $form['postContentTemplate'], $form, $entry_tmp, true );
695
+						}
696
+						$updated_post->post_content = $post_content;
697
+						unset( $post_content );
698
+						break;
699
+					case 'post_excerpt':
700
+						$updated_post->post_excerpt = $value;
701
+						break;
702
+					case 'post_tags':
703
+						wp_set_post_tags( $post_id, $value, false );
704
+						break;
705
+					case 'post_category':
706
+						break;
707
+					case 'post_custom_field':
708 708
 						if ( is_array( $value ) && ( floatval( $field_id ) !== floatval( $field->id ) ) ) {
709 709
 							$value = $value[ $field_id ];
710 710
 						}
711 711
 
712
-                        if( ! empty( $field->customFieldTemplateEnabled ) ) {
713
-                            $value = $this->fill_post_template( $field->customFieldTemplate, $form, $entry_tmp, true );
714
-                        }
712
+						if( ! empty( $field->customFieldTemplateEnabled ) ) {
713
+							$value = $this->fill_post_template( $field->customFieldTemplate, $form, $entry_tmp, true );
714
+						}
715 715
 
716
-	                    if ( $this->is_field_json_encoded( $field ) && ! is_string( $value ) ) {
717
-		                    $value = function_exists('wp_json_encode') ? wp_json_encode( $value ) : json_encode( $value );
718
-	                    }
716
+						if ( $this->is_field_json_encoded( $field ) && ! is_string( $value ) ) {
717
+							$value = function_exists('wp_json_encode') ? wp_json_encode( $value ) : json_encode( $value );
718
+						}
719 719
 
720
-                        update_post_meta( $post_id, $field->postCustomFieldName, $value );
721
-                        break;
720
+						update_post_meta( $post_id, $field->postCustomFieldName, $value );
721
+						break;
722 722
 
723
-                    case 'post_image':
724
-                        $value = $this->update_post_image( $form, $field, $field_id, $value, $this->entry, $post_id );
725
-                        break;
723
+					case 'post_image':
724
+						$value = $this->update_post_image( $form, $field, $field_id, $value, $this->entry, $post_id );
725
+						break;
726 726
 
727
-                }
727
+				}
728 728
 
729
-                // update entry after
730
-                $this->entry["{$field_id}"] = $value;
729
+				// update entry after
730
+				$this->entry["{$field_id}"] = $value;
731 731
 
732
-                $update_entry = true;
732
+				$update_entry = true;
733 733
 
734
-                unset( $entry_tmp );
735
-            }
734
+				unset( $entry_tmp );
735
+			}
736 736
 
737
-        }
737
+		}
738 738
 
739
-        if( $update_entry ) {
739
+		if( $update_entry ) {
740 740
 
741
-            $return_entry = GFAPI::update_entry( $this->entry );
741
+			$return_entry = GFAPI::update_entry( $this->entry );
742 742
 
743
-            if( is_wp_error( $return_entry ) ) {
744
-               do_action( 'gravityview_log_error', 'Updating the entry post fields failed', array( '$this->entry' => $this->entry, '$return_entry' => $return_entry ) );
745
-            } else {
746
-                do_action( 'gravityview_log_debug', 'Updating the entry post fields for post #'.$post_id.' succeeded' );
747
-            }
743
+			if( is_wp_error( $return_entry ) ) {
744
+			   do_action( 'gravityview_log_error', 'Updating the entry post fields failed', array( '$this->entry' => $this->entry, '$return_entry' => $return_entry ) );
745
+			} else {
746
+				do_action( 'gravityview_log_debug', 'Updating the entry post fields for post #'.$post_id.' succeeded' );
747
+			}
748 748
 
749
-        }
749
+		}
750 750
 
751
-        $return_post = wp_update_post( $updated_post, true );
751
+		$return_post = wp_update_post( $updated_post, true );
752 752
 
753
-        if( is_wp_error( $return_post ) ) {
754
-            $return_post->add_data( $updated_post, '$updated_post' );
755
-            do_action( 'gravityview_log_error', 'Updating the post content failed', compact( 'updated_post', 'return_post' ) );
756
-        } else {
757
-            do_action( 'gravityview_log_debug', 'Updating the post content for post #'.$post_id.' succeeded', $updated_post );
758
-        }
759
-    }
753
+		if( is_wp_error( $return_post ) ) {
754
+			$return_post->add_data( $updated_post, '$updated_post' );
755
+			do_action( 'gravityview_log_error', 'Updating the post content failed', compact( 'updated_post', 'return_post' ) );
756
+		} else {
757
+			do_action( 'gravityview_log_debug', 'Updating the post content for post #'.$post_id.' succeeded', $updated_post );
758
+		}
759
+	}
760 760
 
761 761
 	/**
762
-     * Is the field stored in a JSON-encoded manner?
763
-     *
762
+	 * Is the field stored in a JSON-encoded manner?
763
+	 *
764 764
 	 * @param GF_Field $field
765 765
 	 *
766 766
 	 * @return bool True: stored in DB json_encode()'d; False: not encoded
767 767
 	 */
768
-    private function is_field_json_encoded( $field ) {
768
+	private function is_field_json_encoded( $field ) {
769 769
 
770
-	    $json_encoded = false;
770
+		$json_encoded = false;
771 771
 
772
-        $input_type = RGFormsModel::get_input_type( $field );
772
+		$input_type = RGFormsModel::get_input_type( $field );
773 773
 
774
-	    // Only certain custom field types are supported
775
-	    switch( $input_type ) {
776
-		    case 'fileupload':
777
-		    case 'list':
778
-		    case 'multiselect':
779
-			    $json_encoded = true;
780
-			    break;
781
-	    }
774
+		// Only certain custom field types are supported
775
+		switch( $input_type ) {
776
+			case 'fileupload':
777
+			case 'list':
778
+			case 'multiselect':
779
+				$json_encoded = true;
780
+				break;
781
+		}
782 782
 
783
-	    return $json_encoded;
784
-    }
783
+		return $json_encoded;
784
+	}
785 785
 
786
-    /**
787
-     * Convert a field content template into prepared output
788
-     *
789
-     * @uses GravityView_GFFormsModel::get_post_field_images()
790
-     *
791
-     * @since 1.17
792
-     *
793
-     * @param string $template The content template for the field
794
-     * @param array $form Gravity Forms form
795
-     * @param bool $do_shortcode Whether to process shortcode inside content. In GF, only run on Custom Field and Post Content fields
796
-     *
797
-     * @return string
798
-     */
799
-    private function fill_post_template( $template, $form, $entry, $do_shortcode = false ) {
786
+	/**
787
+	 * Convert a field content template into prepared output
788
+	 *
789
+	 * @uses GravityView_GFFormsModel::get_post_field_images()
790
+	 *
791
+	 * @since 1.17
792
+	 *
793
+	 * @param string $template The content template for the field
794
+	 * @param array $form Gravity Forms form
795
+	 * @param bool $do_shortcode Whether to process shortcode inside content. In GF, only run on Custom Field and Post Content fields
796
+	 *
797
+	 * @return string
798
+	 */
799
+	private function fill_post_template( $template, $form, $entry, $do_shortcode = false ) {
800 800
 
801
-        require_once GRAVITYVIEW_DIR . 'includes/class-gravityview-gfformsmodel.php';
801
+		require_once GRAVITYVIEW_DIR . 'includes/class-gravityview-gfformsmodel.php';
802 802
 
803
-        $post_images = GravityView_GFFormsModel::get_post_field_images( $form, $entry );
803
+		$post_images = GravityView_GFFormsModel::get_post_field_images( $form, $entry );
804 804
 
805
-        //replacing post image variables
806
-        $output = GFCommon::replace_variables_post_image( $template, $post_images, $entry );
805
+		//replacing post image variables
806
+		$output = GFCommon::replace_variables_post_image( $template, $post_images, $entry );
807 807
 
808
-        //replacing all other variables
809
-        $output = GFCommon::replace_variables( $output, $form, $entry, false, false, false );
808
+		//replacing all other variables
809
+		$output = GFCommon::replace_variables( $output, $form, $entry, false, false, false );
810 810
 
811
-        // replace conditional shortcodes
812
-        if( $do_shortcode ) {
813
-            $output = do_shortcode( $output );
814
-        }
811
+		// replace conditional shortcodes
812
+		if( $do_shortcode ) {
813
+			$output = do_shortcode( $output );
814
+		}
815 815
 
816
-        return $output;
817
-    }
816
+		return $output;
817
+	}
818 818
 
819 819
 
820
-    /**
821
-     * Perform actions normally performed after updating a lead
822
-     *
823
-     * @since 1.8
824
-     *
825
-     * @see GFEntryDetail::lead_detail_page()
826
-     *
827
-     * @return void
828
-     */
829
-    private function after_update() {
820
+	/**
821
+	 * Perform actions normally performed after updating a lead
822
+	 *
823
+	 * @since 1.8
824
+	 *
825
+	 * @see GFEntryDetail::lead_detail_page()
826
+	 *
827
+	 * @return void
828
+	 */
829
+	private function after_update() {
830 830
 
831
-        do_action( 'gform_after_update_entry', $this->form, $this->entry['id'], self::$original_entry );
832
-        do_action( "gform_after_update_entry_{$this->form['id']}", $this->form, $this->entry['id'], self::$original_entry );
831
+		do_action( 'gform_after_update_entry', $this->form, $this->entry['id'], self::$original_entry );
832
+		do_action( "gform_after_update_entry_{$this->form['id']}", $this->form, $this->entry['id'], self::$original_entry );
833 833
 
834
-        // Re-define the entry now that we've updated it.
835
-        $entry = RGFormsModel::get_lead( $this->entry['id'] );
834
+		// Re-define the entry now that we've updated it.
835
+		$entry = RGFormsModel::get_lead( $this->entry['id'] );
836 836
 
837
-        $entry = GFFormsModel::set_entry_meta( $entry, $this->form );
837
+		$entry = GFFormsModel::set_entry_meta( $entry, $this->form );
838 838
 
839 839
 		if ( ! method_exists( 'GFFormsModel', 'get_entry_meta_table_name' ) ) {
840 840
 			// We need to clear the cache because Gravity Forms caches the field values, which
@@ -844,41 +844,41 @@  discard block
 block discarded – undo
844 844
 			}
845 845
 		}
846 846
 
847
-        $this->entry = $entry;
848
-    }
847
+		$this->entry = $entry;
848
+	}
849 849
 
850 850
 
851
-    /**
852
-     * Display the Edit Entry form
853
-     *
854
-     * @return void
855
-     */
856
-    public function edit_entry_form() {
851
+	/**
852
+	 * Display the Edit Entry form
853
+	 *
854
+	 * @return void
855
+	 */
856
+	public function edit_entry_form() {
857 857
 
858
-        ?>
858
+		?>
859 859
 
860 860
         <div class="gv-edit-entry-wrapper"><?php
861 861
 
862
-            $javascript = gravityview_ob_include( GravityView_Edit_Entry::$file .'/partials/inline-javascript.php', $this );
862
+			$javascript = gravityview_ob_include( GravityView_Edit_Entry::$file .'/partials/inline-javascript.php', $this );
863 863
 
864
-            /**
865
-             * Fixes weird wpautop() issue
866
-             * @see https://github.com/katzwebservices/GravityView/issues/451
867
-             */
868
-            echo gravityview_strip_whitespace( $javascript );
864
+			/**
865
+			 * Fixes weird wpautop() issue
866
+			 * @see https://github.com/katzwebservices/GravityView/issues/451
867
+			 */
868
+			echo gravityview_strip_whitespace( $javascript );
869 869
 
870
-            ?><h2 class="gv-edit-entry-title">
870
+			?><h2 class="gv-edit-entry-title">
871 871
                 <span><?php
872 872
 
873
-                    /**
874
-                     * @filter `gravityview_edit_entry_title` Modify the edit entry title
875
-                     * @param string $edit_entry_title Modify the "Edit Entry" title
876
-                     * @param GravityView_Edit_Entry_Render $this This object
877
-                     */
878
-                    $edit_entry_title = apply_filters('gravityview_edit_entry_title', __('Edit Entry', 'gravityview'), $this );
873
+					/**
874
+					 * @filter `gravityview_edit_entry_title` Modify the edit entry title
875
+					 * @param string $edit_entry_title Modify the "Edit Entry" title
876
+					 * @param GravityView_Edit_Entry_Render $this This object
877
+					 */
878
+					$edit_entry_title = apply_filters('gravityview_edit_entry_title', __('Edit Entry', 'gravityview'), $this );
879 879
 
880
-                    echo esc_attr( $edit_entry_title );
881
-            ?></span>
880
+					echo esc_attr( $edit_entry_title );
881
+			?></span>
882 882
             </h2>
883 883
 
884 884
             <?php $this->maybe_print_message(); ?>
@@ -889,14 +889,14 @@  discard block
 block discarded – undo
889 889
 
890 890
                 <?php
891 891
 
892
-                wp_nonce_field( self::$nonce_key, self::$nonce_key );
892
+				wp_nonce_field( self::$nonce_key, self::$nonce_key );
893 893
 
894
-                wp_nonce_field( self::$nonce_field, self::$nonce_field, false );
894
+				wp_nonce_field( self::$nonce_field, self::$nonce_field, false );
895 895
 
896
-                // Print the actual form HTML
897
-                $this->render_edit_form();
896
+				// Print the actual form HTML
897
+				$this->render_edit_form();
898 898
 
899
-                ?>
899
+				?>
900 900
             </form>
901 901
 
902 902
             <script>
@@ -908,643 +908,643 @@  discard block
 block discarded – undo
908 908
         </div>
909 909
 
910 910
     <?php
911
-    }
912
-
913
-    /**
914
-     * Display success or error message if the form has been submitted
915
-     *
916
-     * @uses GVCommon::generate_notice
917
-     *
918
-     * @since 1.16.2.2
919
-     *
920
-     * @return void
921
-     */
922
-    private function maybe_print_message() {
923
-
924
-        if( rgpost('action') === 'update' ) {
925
-
926
-            $back_link = esc_url( remove_query_arg( array( 'page', 'view', 'edit' ) ) );
927
-
928
-            if( ! $this->is_valid ){
929
-
930
-                // Keeping this compatible with Gravity Forms.
931
-                $validation_message = "<div class='validation_error'>" . __('There was a problem with your submission.', 'gravityview') . " " . __('Errors have been highlighted below.', 'gravityview') . "</div>";
932
-                $message = apply_filters("gform_validation_message_{$this->form['id']}", apply_filters("gform_validation_message", $validation_message, $this->form), $this->form);
933
-
934
-                echo GVCommon::generate_notice( $message , 'gv-error' );
935
-
936
-            } else {
937
-                $entry_updated_message = sprintf( esc_attr__('Entry Updated. %sReturn to Entry%s', 'gravityview'), '<a href="'. $back_link .'">', '</a>' );
938
-
939
-                /**
940
-                 * @filter `gravityview/edit_entry/success` Modify the edit entry success message (including the anchor link)
941
-                 * @since 1.5.4
942
-                 * @param string $entry_updated_message Existing message
943
-                 * @param int $view_id View ID
944
-                 * @param array $entry Gravity Forms entry array
945
-                 * @param string $back_link URL to return to the original entry. @since 1.6
946
-                 */
947
-                $message = apply_filters( 'gravityview/edit_entry/success', $entry_updated_message , $this->view_id, $this->entry, $back_link );
948
-
949
-                echo GVCommon::generate_notice( $message );
950
-            }
951
-
952
-        }
953
-    }
954
-
955
-    /**
956
-     * Display the Edit Entry form in the original Gravity Forms format
957
-     *
958
-     * @since 1.9
959
-     *
960
-     * @return void
961
-     */
962
-    private function render_edit_form() {
963
-
964
-        /**
965
-         * @action `gravityview/edit-entry/render/before` Before rendering the Edit Entry form
966
-         * @since 1.17
967
-         * @param GravityView_Edit_Entry_Render $this
968
-         */
969
-        do_action( 'gravityview/edit-entry/render/before', $this );
970
-
971
-        add_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields'), 5000, 3 );
972
-        add_filter( 'gform_submit_button', array( $this, 'render_form_buttons') );
973
-        add_filter( 'gform_disable_view_counter', '__return_true' );
974
-
975
-        add_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5, 5 );
976
-        add_filter( 'gform_field_input', array( $this, 'modify_edit_field_input' ), 10, 5 );
977
-
978
-        // We need to remove the fake $_GET['page'] arg to avoid rendering form as if in admin.
979
-        unset( $_GET['page'] );
980
-
981
-        // TODO: Verify multiple-page forms
982
-
983
-        ob_start(); // Prevent PHP warnings possibly caused by prefilling list fields for conditional logic
984
-
985
-        $html = GFFormDisplay::get_form( $this->form['id'], false, false, true, $this->entry );
986
-
987
-        ob_get_clean();
988
-
989
-	    remove_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields' ), 5000 );
990
-        remove_filter( 'gform_submit_button', array( $this, 'render_form_buttons' ) );
991
-        remove_filter( 'gform_disable_view_counter', '__return_true' );
992
-        remove_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5 );
993
-        remove_filter( 'gform_field_input', array( $this, 'modify_edit_field_input' ), 10 );
994
-
995
-        echo $html;
996
-
997
-        /**
998
-         * @action `gravityview/edit-entry/render/after` After rendering the Edit Entry form
999
-         * @since 1.17
1000
-         * @param GravityView_Edit_Entry_Render $this
1001
-         */
1002
-        do_action( 'gravityview/edit-entry/render/after', $this );
1003
-    }
1004
-
1005
-    /**
1006
-     * Display the Update/Cancel/Delete buttons for the Edit Entry form
1007
-     * @since 1.8
1008
-     * @return string
1009
-     */
1010
-    public function render_form_buttons() {
1011
-        return gravityview_ob_include( GravityView_Edit_Entry::$file .'/partials/form-buttons.php', $this );
1012
-    }
1013
-
1014
-
1015
-    /**
1016
-     * Modify the form fields that are shown when using GFFormDisplay::get_form()
1017
-     *
1018
-     * By default, all fields will be shown. We only want the Edit Tab configured fields to be shown.
1019
-     *
1020
-     * @param array $form
1021
-     * @param boolean $ajax Whether in AJAX mode
1022
-     * @param array|string $field_values Passed parameters to the form
1023
-     *
1024
-     * @since 1.9
1025
-     *
1026
-     * @return array Modified form array
1027
-     */
1028
-    public function filter_modify_form_fields( $form, $ajax = false, $field_values = '' ) {
1029
-
1030
-        // In case we have validated the form, use it to inject the validation results into the form render
1031
-        if( isset( $this->form_after_validation ) ) {
1032
-            $form = $this->form_after_validation;
1033
-        } else {
1034
-            $form['fields'] = $this->get_configured_edit_fields( $form, $this->view_id );
1035
-        }
1036
-
1037
-        $form = $this->filter_conditional_logic( $form );
1038
-
1039
-        $form = $this->prefill_conditional_logic( $form );
1040
-
1041
-        // for now we don't support Save and Continue feature.
1042
-        if( ! self::$supports_save_and_continue ) {
1043
-	        unset( $form['save'] );
1044
-        }
1045
-
1046
-        return $form;
1047
-    }
1048
-
1049
-    /**
1050
-     * When displaying a field, check if it's a Post Field, and if so, make sure the post exists and current user has edit rights.
1051
-     *
1052
-     * @since 1.16.2.2
1053
-     *
1054
-     * @param string $field_content Always empty. Returning not-empty overrides the input.
1055
-     * @param GF_Field $field
1056
-     * @param string|array $value If array, it's a field with multiple inputs. If string, single input.
1057
-     * @param int $lead_id Lead ID. Always 0 for the `gform_field_input` filter.
1058
-     * @param int $form_id Form ID
1059
-     *
1060
-     * @return string If error, the error message. If no error, blank string (modify_edit_field_input() runs next)
1061
-     */
1062
-    public function verify_user_can_edit_post( $field_content = '', $field, $value, $lead_id = 0, $form_id ) {
1063
-
1064
-        if( GFCommon::is_post_field( $field ) ) {
1065
-
1066
-            $message = null;
1067
-
1068
-            // First, make sure they have the capability to edit the post.
1069
-            if( false === current_user_can( 'edit_post', $this->entry['post_id'] ) ) {
1070
-
1071
-                /**
1072
-                 * @filter `gravityview/edit_entry/unsupported_post_field_text` Modify the message when someone isn't able to edit a post
1073
-                 * @param string $message The existing "You don't have permission..." text
1074
-                 */
1075
-                $message = apply_filters('gravityview/edit_entry/unsupported_post_field_text', __('You don&rsquo;t have permission to edit this post.', 'gravityview') );
1076
-
1077
-            } elseif( null === get_post( $this->entry['post_id'] ) ) {
1078
-                /**
1079
-                 * @filter `gravityview/edit_entry/no_post_text` Modify the message when someone is editing an entry attached to a post that no longer exists
1080
-                 * @param string $message The existing "This field is not editable; the post no longer exists." text
1081
-                 */
1082
-                $message = apply_filters('gravityview/edit_entry/no_post_text', __('This field is not editable; the post no longer exists.', 'gravityview' ) );
1083
-            }
1084
-
1085
-            if( $message ) {
1086
-                $field_content = sprintf('<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) );
1087
-            }
1088
-        }
1089
-
1090
-        return $field_content;
1091
-    }
1092
-
1093
-    /**
1094
-     *
1095
-     * Fill-in the saved values into the form inputs
1096
-     *
1097
-     * @param string $field_content Always empty. Returning not-empty overrides the input.
1098
-     * @param GF_Field $field
1099
-     * @param string|array $value If array, it's a field with multiple inputs. If string, single input.
1100
-     * @param int $lead_id Lead ID. Always 0 for the `gform_field_input` filter.
1101
-     * @param int $form_id Form ID
1102
-     *
1103
-     * @return mixed
1104
-     */
1105
-    public function modify_edit_field_input( $field_content = '', $field, $value, $lead_id = 0, $form_id ) {
1106
-
1107
-        $gv_field = GravityView_Fields::get_associated_field( $field );
1108
-
1109
-        // If the form has been submitted, then we don't need to pre-fill the values,
1110
-        // Except for fileupload type and when a field input is overridden- run always!!
1111
-        if(
1112
-            ( $this->is_edit_entry_submission() && !in_array( $field->type, array( 'fileupload', 'post_image' ) ) )
1113
-            && false === ( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) )
1114
-            && ! GFCommon::is_product_field( $field->type )
1115
-            || ! empty( $field_content )
1116
-            || in_array( $field->type, array( 'honeypot' ) )
1117
-        ) {
1118
-	        return $field_content;
1119
-        }
1120
-
1121
-        // SET SOME FIELD DEFAULTS TO PREVENT ISSUES
1122
-        $field->adminOnly = false; /** @see GFFormDisplay::get_counter_init_script() need to prevent adminOnly */
1123
-
1124
-        $field_value = $this->get_field_value( $field );
1125
-
1126
-	    // Prevent any PHP warnings, like undefined index
1127
-	    ob_start();
1128
-
1129
-	    $return = null;
1130
-
1131
-        /** @var GravityView_Field $gv_field */
1132
-        if( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) {
1133
-            $return = $gv_field->get_field_input( $this->form, $field_value, $this->entry, $field );
1134
-        } else {
1135
-	        $return = $field->get_field_input( $this->form, $field_value, $this->entry );
1136
-	    }
1137
-
1138
-	    // If there was output, it's an error
1139
-	    $warnings = ob_get_clean();
1140
-
1141
-	    if( !empty( $warnings ) ) {
1142
-		    do_action( 'gravityview_log_error', __METHOD__ . $warnings, $field_value );
1143
-	    }
1144
-
1145
-        return $return;
1146
-    }
1147
-
1148
-    /**
1149
-     * Modify the value for the current field input
1150
-     *
1151
-     * @param GF_Field $field
1152
-     *
1153
-     * @return array|mixed|string
1154
-     */
1155
-    private function get_field_value( $field ) {
1156
-
1157
-        /**
1158
-         * @filter `gravityview/edit_entry/pre_populate/override` Allow the pre-populated value to override saved value in Edit Entry form. By default, pre-populate mechanism only kicks on empty fields.
1159
-         * @param boolean True: override saved values; False: don't override (default)
1160
-         * @param $field GF_Field object Gravity Forms field object
1161
-         * @since 1.13
1162
-         */
1163
-        $override_saved_value = apply_filters( 'gravityview/edit_entry/pre_populate/override', false, $field );
1164
-
1165
-        // We're dealing with multiple inputs (e.g. checkbox) but not time or date (as it doesn't store data in input IDs)
1166
-        if( isset( $field->inputs ) && is_array( $field->inputs ) && !in_array( $field->type, array( 'time', 'date' ) ) ) {
1167
-
1168
-            $field_value = array();
1169
-
1170
-            // only accept pre-populated values if the field doesn't have any choice selected.
1171
-            $allow_pre_populated = $field->allowsPrepopulate;
1172
-
1173
-            foreach ( (array)$field->inputs as $input ) {
1174
-
1175
-                $input_id = strval( $input['id'] );
1176
-                
1177
-                if ( isset( $this->entry[ $input_id ] ) && ! gv_empty( $this->entry[ $input_id ], false, false ) ) {
1178
-                    $field_value[ $input_id ] =  'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ];
1179
-                    $allow_pre_populated = false;
1180
-                }
1181
-
1182
-            }
1183
-
1184
-            $pre_value = $field->get_value_submission( array(), false );
1185
-
1186
-            $field_value = ! $allow_pre_populated && ! ( $override_saved_value && !gv_empty( $pre_value, false, false ) ) ? $field_value : $pre_value;
1187
-
1188
-        } else {
1189
-
1190
-            $id = intval( $field->id );
911
+	}
1191 912
 
1192
-            // get pre-populated value if exists
1193
-            $pre_value = $field->allowsPrepopulate ? GFFormsModel::get_parameter_value( $field->inputName, array(), $field ) : '';
1194
-
1195
-            // saved field entry value (if empty, fallback to the pre-populated value, if exists)
1196
-            // or pre-populated value if not empty and set to override saved value
1197
-            $field_value = !gv_empty( $this->entry[ $id ], false, false ) && ! ( $override_saved_value && !gv_empty( $pre_value, false, false ) ) ? $this->entry[ $id ] : $pre_value;
913
+	/**
914
+	 * Display success or error message if the form has been submitted
915
+	 *
916
+	 * @uses GVCommon::generate_notice
917
+	 *
918
+	 * @since 1.16.2.2
919
+	 *
920
+	 * @return void
921
+	 */
922
+	private function maybe_print_message() {
1198 923
 
1199
-            // in case field is post_category but inputType is select, multi-select or radio, convert value into array of category IDs.
1200
-            if ( 'post_category' === $field->type && !gv_empty( $field_value, false, false ) ) {
1201
-                $categories = array();
1202
-                foreach ( explode( ',', $field_value ) as $cat_string ) {
1203
-                    $categories[] = GFCommon::format_post_category( $cat_string, true );
1204
-                }
1205
-                $field_value = 'multiselect' === $field->get_input_type() ? $categories : implode( '', $categories );
1206
-            }
924
+		if( rgpost('action') === 'update' ) {
1207 925
 
1208
-        }
926
+			$back_link = esc_url( remove_query_arg( array( 'page', 'view', 'edit' ) ) );
1209 927
 
1210
-        // if value is empty get the default value if defined
1211
-        $field_value = $field->get_value_default_if_empty( $field_value );
1212
-
1213
-	    /**
1214
-	     * @filter `gravityview/edit_entry/field_value` Change the value of an Edit Entry field, if needed
1215
-	     * @since 1.11
1216
-	     * @since 1.20 Added third param
1217
-	     * @param mixed $field_value field value used to populate the input
1218
-	     * @param object $field Gravity Forms field object ( Class GF_Field )
1219
-	     * @param GravityView_Edit_Entry_Render $this Current object
1220
-	     */
1221
-	    $field_value = apply_filters( 'gravityview/edit_entry/field_value', $field_value, $field, $this );
928
+			if( ! $this->is_valid ){
1222 929
 
1223
-	    /**
1224
-	     * @filter `gravityview/edit_entry/field_value_{field_type}` Change the value of an Edit Entry field for a specific field type
1225
-	     * @since 1.17
1226
-	     * @since 1.20 Added third param
1227
-	     * @param mixed $field_value field value used to populate the input
1228
-	     * @param GF_Field $field Gravity Forms field object
1229
-	     * @param GravityView_Edit_Entry_Render $this Current object
1230
-	     */
1231
-	    $field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type , $field_value, $field, $this );
930
+				// Keeping this compatible with Gravity Forms.
931
+				$validation_message = "<div class='validation_error'>" . __('There was a problem with your submission.', 'gravityview') . " " . __('Errors have been highlighted below.', 'gravityview') . "</div>";
932
+				$message = apply_filters("gform_validation_message_{$this->form['id']}", apply_filters("gform_validation_message", $validation_message, $this->form), $this->form);
1232 933
 
1233
-        return $field_value;
1234
-    }
934
+				echo GVCommon::generate_notice( $message , 'gv-error' );
1235 935
 
936
+			} else {
937
+				$entry_updated_message = sprintf( esc_attr__('Entry Updated. %sReturn to Entry%s', 'gravityview'), '<a href="'. $back_link .'">', '</a>' );
1236 938
 
1237
-    // ---- Entry validation
939
+				/**
940
+				 * @filter `gravityview/edit_entry/success` Modify the edit entry success message (including the anchor link)
941
+				 * @since 1.5.4
942
+				 * @param string $entry_updated_message Existing message
943
+				 * @param int $view_id View ID
944
+				 * @param array $entry Gravity Forms entry array
945
+				 * @param string $back_link URL to return to the original entry. @since 1.6
946
+				 */
947
+				$message = apply_filters( 'gravityview/edit_entry/success', $entry_updated_message , $this->view_id, $this->entry, $back_link );
1238 948
 
1239
-    /**
1240
-     * Add field keys that Gravity Forms expects.
1241
-     *
1242
-     * @see GFFormDisplay::validate()
1243
-     * @param  array $form GF Form
1244
-     * @return array       Modified GF Form
1245
-     */
1246
-    public function gform_pre_validation( $form ) {
949
+				echo GVCommon::generate_notice( $message );
950
+			}
1247 951
 
1248
-        if( ! $this->verify_nonce() ) {
1249
-            return $form;
1250
-        }
1251
-
1252
-        // Fix PHP warning regarding undefined index.
1253
-        foreach ( $form['fields'] as &$field) {
1254
-
1255
-            // This is because we're doing admin form pretending to be front-end, so Gravity Forms
1256
-            // expects certain field array items to be set.
1257
-            foreach ( array( 'noDuplicates', 'adminOnly', 'inputType', 'isRequired', 'enablePrice', 'inputs', 'allowedExtensions' ) as $key ) {
1258
-	            $field->{$key} = isset( $field->{$key} ) ? $field->{$key} : NULL;
1259
-            }
1260
-
1261
-            switch( RGFormsModel::get_input_type( $field ) ) {
1262
-
1263
-                /**
1264
-                 * this whole fileupload hack is because in the admin, Gravity Forms simply doesn't update any fileupload field if it's empty, but it DOES in the frontend.
1265
-                 *
1266
-                 * What we have to do is set the value so that it doesn't get overwritten as empty on save and appears immediately in the Edit Entry screen again.
1267
-                 *
1268
-                 * @hack
1269
-                 */
1270
-                case 'fileupload':
1271
-
1272
-                    // Set the previous value
1273
-                    $entry = $this->get_entry();
1274
-
1275
-                    $input_name = 'input_'.$field->id;
1276
-                    $form_id = $form['id'];
1277
-
1278
-                    $value = NULL;
952
+		}
953
+	}
1279 954
 
1280
-                    // Use the previous entry value as the default.
1281
-                    if( isset( $entry[ $field->id ] ) ) {
1282
-                        $value = $entry[ $field->id ];
1283
-                    }
1284
-
1285
-                    // If this is a single upload file
1286
-                    if( !empty( $_FILES[ $input_name ] ) && !empty( $_FILES[ $input_name ]['name'] ) ) {
1287
-                        $file_path = GFFormsModel::get_file_upload_path( $form['id'], $_FILES[ $input_name ]['name'] );
1288
-                        $value = $file_path['url'];
1289
-
1290
-                    } else {
1291
-
1292
-                        // Fix PHP warning on line 1498 of form_display.php for post_image fields
1293
-                        // Fix PHP Notice:  Undefined index:  size in form_display.php on line 1511
1294
-                        $_FILES[ $input_name ] = array('name' => '', 'size' => '' );
1295
-
1296
-                    }
1297
-
1298
-                    if( rgar($field, "multipleFiles") ) {
1299
-
1300
-                        // If there are fresh uploads, process and merge them.
1301
-                        // Otherwise, use the passed values, which should be json-encoded array of URLs
1302
-                        if( isset( GFFormsModel::$uploaded_files[$form_id][$input_name] ) ) {
1303
-                            $value = empty( $value ) ? '[]' : $value;
1304
-                            $value = stripslashes_deep( $value );
1305
-                            $value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'], array());
1306
-                        }
955
+	/**
956
+	 * Display the Edit Entry form in the original Gravity Forms format
957
+	 *
958
+	 * @since 1.9
959
+	 *
960
+	 * @return void
961
+	 */
962
+	private function render_edit_form() {
1307 963
 
1308
-                    } else {
964
+		/**
965
+		 * @action `gravityview/edit-entry/render/before` Before rendering the Edit Entry form
966
+		 * @since 1.17
967
+		 * @param GravityView_Edit_Entry_Render $this
968
+		 */
969
+		do_action( 'gravityview/edit-entry/render/before', $this );
1309 970
 
1310
-                        // A file already exists when editing an entry
1311
-                        // We set this to solve issue when file upload fields are required.
1312
-                        GFFormsModel::$uploaded_files[ $form_id ][ $input_name ] = $value;
1313
-
1314
-                    }
1315
-
1316
-                    $this->entry[ $input_name ] = $value;
1317
-                    $_POST[ $input_name ] = $value;
971
+		add_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields'), 5000, 3 );
972
+		add_filter( 'gform_submit_button', array( $this, 'render_form_buttons') );
973
+		add_filter( 'gform_disable_view_counter', '__return_true' );
1318 974
 
1319
-                    break;
975
+		add_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5, 5 );
976
+		add_filter( 'gform_field_input', array( $this, 'modify_edit_field_input' ), 10, 5 );
1320 977
 
1321
-                case 'number':
1322
-                    // Fix "undefined index" issue at line 1286 in form_display.php
1323
-                    if( !isset( $_POST['input_'.$field->id ] ) ) {
1324
-                        $_POST['input_'.$field->id ] = NULL;
1325
-                    }
1326
-                    break;
1327
-            }
978
+		// We need to remove the fake $_GET['page'] arg to avoid rendering form as if in admin.
979
+		unset( $_GET['page'] );
1328 980
 
1329
-        }
981
+		// TODO: Verify multiple-page forms
1330 982
 
1331
-        return $form;
1332
-    }
983
+		ob_start(); // Prevent PHP warnings possibly caused by prefilling list fields for conditional logic
1333 984
 
985
+		$html = GFFormDisplay::get_form( $this->form['id'], false, false, true, $this->entry );
1334 986
 
1335
-    /**
1336
-     * Process validation for a edit entry submission
1337
-     *
1338
-     * Sets the `is_valid` object var
1339
-     *
1340
-     * @return void
1341
-     */
1342
-    private function validate() {
987
+		ob_get_clean();
1343 988
 
1344
-        /**
1345
-         * If using GF User Registration Add-on, remove the validation step, otherwise generates error when updating the entry
1346
-         * GF User Registration Add-on version > 3.x has a different class name
1347
-         * @since 1.16.2
1348
-         */
1349
-        if ( class_exists( 'GF_User_Registration' ) ) {
1350
-            remove_filter( 'gform_validation', array( GF_User_Registration::get_instance(), 'validate' ) );
1351
-        } else  if ( class_exists( 'GFUser' ) ) {
1352
-            remove_filter( 'gform_validation', array( 'GFUser', 'user_registration_validation' ) );
1353
-        }
989
+		remove_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields' ), 5000 );
990
+		remove_filter( 'gform_submit_button', array( $this, 'render_form_buttons' ) );
991
+		remove_filter( 'gform_disable_view_counter', '__return_true' );
992
+		remove_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5 );
993
+		remove_filter( 'gform_field_input', array( $this, 'modify_edit_field_input' ), 10 );
1354 994
 
995
+		echo $html;
1355 996
 
1356
-        /**
1357
-         * For some crazy reason, Gravity Forms doesn't validate Edit Entry form submissions.
1358
-         * You can enter whatever you want!
1359
-         * We try validating, and customize the results using `self::custom_validation()`
1360
-         */
1361
-        add_filter( 'gform_validation_'. $this->form_id, array( $this, 'custom_validation' ), 10, 4);
997
+		/**
998
+		 * @action `gravityview/edit-entry/render/after` After rendering the Edit Entry form
999
+		 * @since 1.17
1000
+		 * @param GravityView_Edit_Entry_Render $this
1001
+		 */
1002
+		do_action( 'gravityview/edit-entry/render/after', $this );
1003
+	}
1362 1004
 
1363
-        // Needed by the validate funtion
1364
-        $failed_validation_page = NULL;
1365
-        $field_values = RGForms::post( 'gform_field_values' );
1005
+	/**
1006
+	 * Display the Update/Cancel/Delete buttons for the Edit Entry form
1007
+	 * @since 1.8
1008
+	 * @return string
1009
+	 */
1010
+	public function render_form_buttons() {
1011
+		return gravityview_ob_include( GravityView_Edit_Entry::$file .'/partials/form-buttons.php', $this );
1012
+	}
1366 1013
 
1367
-        // Prevent entry limit from running when editing an entry, also
1368
-        // prevent form scheduling from preventing editing
1369
-        unset( $this->form['limitEntries'], $this->form['scheduleForm'] );
1370 1014
 
1371
-        // Hide fields depending on Edit Entry settings
1372
-        $this->form['fields'] = $this->get_configured_edit_fields( $this->form, $this->view_id );
1015
+	/**
1016
+	 * Modify the form fields that are shown when using GFFormDisplay::get_form()
1017
+	 *
1018
+	 * By default, all fields will be shown. We only want the Edit Tab configured fields to be shown.
1019
+	 *
1020
+	 * @param array $form
1021
+	 * @param boolean $ajax Whether in AJAX mode
1022
+	 * @param array|string $field_values Passed parameters to the form
1023
+	 *
1024
+	 * @since 1.9
1025
+	 *
1026
+	 * @return array Modified form array
1027
+	 */
1028
+	public function filter_modify_form_fields( $form, $ajax = false, $field_values = '' ) {
1373 1029
 
1374
-        $this->is_valid = GFFormDisplay::validate( $this->form, $field_values, 1, $failed_validation_page );
1030
+		// In case we have validated the form, use it to inject the validation results into the form render
1031
+		if( isset( $this->form_after_validation ) ) {
1032
+			$form = $this->form_after_validation;
1033
+		} else {
1034
+			$form['fields'] = $this->get_configured_edit_fields( $form, $this->view_id );
1035
+		}
1375 1036
 
1376
-        remove_filter( 'gform_validation_'. $this->form_id, array( $this, 'custom_validation' ), 10 );
1377
-    }
1037
+		$form = $this->filter_conditional_logic( $form );
1378 1038
 
1039
+		$form = $this->prefill_conditional_logic( $form );
1379 1040
 
1380
-    /**
1381
-     * Make validation work for Edit Entry
1382
-     *
1383
-     * Because we're calling the GFFormDisplay::validate() in an unusual way (as a front-end
1384
-     * form pretending to be a back-end form), validate() doesn't know we _can't_ edit post
1385
-     * fields. This goes through all the fields and if they're an invalid post field, we
1386
-     * set them as valid. If there are still issues, we'll return false.
1387
-     *
1388
-     * @param  [type] $validation_results [description]
1389
-     * @return [type]                     [description]
1390
-     */
1391
-    public function custom_validation( $validation_results ) {
1041
+		// for now we don't support Save and Continue feature.
1042
+		if( ! self::$supports_save_and_continue ) {
1043
+			unset( $form['save'] );
1044
+		}
1392 1045
 
1393
-        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results: ', $validation_results );
1046
+		return $form;
1047
+	}
1394 1048
 
1395
-        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
1049
+	/**
1050
+	 * When displaying a field, check if it's a Post Field, and if so, make sure the post exists and current user has edit rights.
1051
+	 *
1052
+	 * @since 1.16.2.2
1053
+	 *
1054
+	 * @param string $field_content Always empty. Returning not-empty overrides the input.
1055
+	 * @param GF_Field $field
1056
+	 * @param string|array $value If array, it's a field with multiple inputs. If string, single input.
1057
+	 * @param int $lead_id Lead ID. Always 0 for the `gform_field_input` filter.
1058
+	 * @param int $form_id Form ID
1059
+	 *
1060
+	 * @return string If error, the error message. If no error, blank string (modify_edit_field_input() runs next)
1061
+	 */
1062
+	public function verify_user_can_edit_post( $field_content = '', $field, $value, $lead_id = 0, $form_id ) {
1396 1063
 
1397
-        $gv_valid = true;
1064
+		if( GFCommon::is_post_field( $field ) ) {
1398 1065
 
1399
-        foreach ( $validation_results['form']['fields'] as $key => &$field ) {
1066
+			$message = null;
1400 1067
 
1401
-            $value = RGFormsModel::get_field_value( $field );
1402
-            $field_type = RGFormsModel::get_input_type( $field );
1068
+			// First, make sure they have the capability to edit the post.
1069
+			if( false === current_user_can( 'edit_post', $this->entry['post_id'] ) ) {
1403 1070
 
1404
-            // Validate always
1405
-            switch ( $field_type ) {
1071
+				/**
1072
+				 * @filter `gravityview/edit_entry/unsupported_post_field_text` Modify the message when someone isn't able to edit a post
1073
+				 * @param string $message The existing "You don't have permission..." text
1074
+				 */
1075
+				$message = apply_filters('gravityview/edit_entry/unsupported_post_field_text', __('You don&rsquo;t have permission to edit this post.', 'gravityview') );
1406 1076
 
1077
+			} elseif( null === get_post( $this->entry['post_id'] ) ) {
1078
+				/**
1079
+				 * @filter `gravityview/edit_entry/no_post_text` Modify the message when someone is editing an entry attached to a post that no longer exists
1080
+				 * @param string $message The existing "This field is not editable; the post no longer exists." text
1081
+				 */
1082
+				$message = apply_filters('gravityview/edit_entry/no_post_text', __('This field is not editable; the post no longer exists.', 'gravityview' ) );
1083
+			}
1407 1084
 
1408
-                case 'fileupload' :
1409
-                case 'post_image':
1085
+			if( $message ) {
1086
+				$field_content = sprintf('<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) );
1087
+			}
1088
+		}
1410 1089
 
1411
-                    // in case nothing is uploaded but there are already files saved
1412
-                    if( !empty( $field->failed_validation ) && !empty( $field->isRequired ) && !empty( $value ) ) {
1413
-                        $field->failed_validation = false;
1414
-                        unset( $field->validation_message );
1415
-                    }
1090
+		return $field_content;
1091
+	}
1416 1092
 
1417
-                    // validate if multi file upload reached max number of files [maxFiles] => 2
1418
-                    if( rgobj( $field, 'maxFiles') && rgobj( $field, 'multipleFiles') ) {
1093
+	/**
1094
+	 *
1095
+	 * Fill-in the saved values into the form inputs
1096
+	 *
1097
+	 * @param string $field_content Always empty. Returning not-empty overrides the input.
1098
+	 * @param GF_Field $field
1099
+	 * @param string|array $value If array, it's a field with multiple inputs. If string, single input.
1100
+	 * @param int $lead_id Lead ID. Always 0 for the `gform_field_input` filter.
1101
+	 * @param int $form_id Form ID
1102
+	 *
1103
+	 * @return mixed
1104
+	 */
1105
+	public function modify_edit_field_input( $field_content = '', $field, $value, $lead_id = 0, $form_id ) {
1106
+
1107
+		$gv_field = GravityView_Fields::get_associated_field( $field );
1108
+
1109
+		// If the form has been submitted, then we don't need to pre-fill the values,
1110
+		// Except for fileupload type and when a field input is overridden- run always!!
1111
+		if(
1112
+			( $this->is_edit_entry_submission() && !in_array( $field->type, array( 'fileupload', 'post_image' ) ) )
1113
+			&& false === ( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) )
1114
+			&& ! GFCommon::is_product_field( $field->type )
1115
+			|| ! empty( $field_content )
1116
+			|| in_array( $field->type, array( 'honeypot' ) )
1117
+		) {
1118
+			return $field_content;
1119
+		}
1419 1120
 
1420
-                        $input_name = 'input_' . $field->id;
1421
-                        //uploaded
1422
-                        $file_names = isset( GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] : array();
1121
+		// SET SOME FIELD DEFAULTS TO PREVENT ISSUES
1122
+		$field->adminOnly = false; /** @see GFFormDisplay::get_counter_init_script() need to prevent adminOnly */
1423 1123
 
1424
-                        //existent
1425
-                        $entry = $this->get_entry();
1426
-                        $value = NULL;
1427
-                        if( isset( $entry[ $field->id ] ) ) {
1428
-                            $value = json_decode( $entry[ $field->id ], true );
1429
-                        }
1124
+		$field_value = $this->get_field_value( $field );
1430 1125
 
1431
-                        // count uploaded files and existent entry files
1432
-                        $count_files = count( $file_names ) + count( $value );
1126
+		// Prevent any PHP warnings, like undefined index
1127
+		ob_start();
1433 1128
 
1434
-                        if( $count_files > $field->maxFiles ) {
1435
-                            $field->validation_message = __( 'Maximum number of files reached', 'gravityview' );
1436
-                            $field->failed_validation = 1;
1437
-                            $gv_valid = false;
1129
+		$return = null;
1438 1130
 
1439
-                            // in case of error make sure the newest upload files are removed from the upload input
1440
-                            GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ] = null;
1441
-                        }
1131
+		/** @var GravityView_Field $gv_field */
1132
+		if( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) {
1133
+			$return = $gv_field->get_field_input( $this->form, $field_value, $this->entry, $field );
1134
+		} else {
1135
+			$return = $field->get_field_input( $this->form, $field_value, $this->entry );
1136
+		}
1137
+
1138
+		// If there was output, it's an error
1139
+		$warnings = ob_get_clean();
1140
+
1141
+		if( !empty( $warnings ) ) {
1142
+			do_action( 'gravityview_log_error', __METHOD__ . $warnings, $field_value );
1143
+		}
1144
+
1145
+		return $return;
1146
+	}
1147
+
1148
+	/**
1149
+	 * Modify the value for the current field input
1150
+	 *
1151
+	 * @param GF_Field $field
1152
+	 *
1153
+	 * @return array|mixed|string
1154
+	 */
1155
+	private function get_field_value( $field ) {
1156
+
1157
+		/**
1158
+		 * @filter `gravityview/edit_entry/pre_populate/override` Allow the pre-populated value to override saved value in Edit Entry form. By default, pre-populate mechanism only kicks on empty fields.
1159
+		 * @param boolean True: override saved values; False: don't override (default)
1160
+		 * @param $field GF_Field object Gravity Forms field object
1161
+		 * @since 1.13
1162
+		 */
1163
+		$override_saved_value = apply_filters( 'gravityview/edit_entry/pre_populate/override', false, $field );
1164
+
1165
+		// We're dealing with multiple inputs (e.g. checkbox) but not time or date (as it doesn't store data in input IDs)
1166
+		if( isset( $field->inputs ) && is_array( $field->inputs ) && !in_array( $field->type, array( 'time', 'date' ) ) ) {
1167
+
1168
+			$field_value = array();
1169
+
1170
+			// only accept pre-populated values if the field doesn't have any choice selected.
1171
+			$allow_pre_populated = $field->allowsPrepopulate;
1172
+
1173
+			foreach ( (array)$field->inputs as $input ) {
1174
+
1175
+				$input_id = strval( $input['id'] );
1176
+                
1177
+				if ( isset( $this->entry[ $input_id ] ) && ! gv_empty( $this->entry[ $input_id ], false, false ) ) {
1178
+					$field_value[ $input_id ] =  'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ];
1179
+					$allow_pre_populated = false;
1180
+				}
1181
+
1182
+			}
1183
+
1184
+			$pre_value = $field->get_value_submission( array(), false );
1185
+
1186
+			$field_value = ! $allow_pre_populated && ! ( $override_saved_value && !gv_empty( $pre_value, false, false ) ) ? $field_value : $pre_value;
1187
+
1188
+		} else {
1189
+
1190
+			$id = intval( $field->id );
1191
+
1192
+			// get pre-populated value if exists
1193
+			$pre_value = $field->allowsPrepopulate ? GFFormsModel::get_parameter_value( $field->inputName, array(), $field ) : '';
1194
+
1195
+			// saved field entry value (if empty, fallback to the pre-populated value, if exists)
1196
+			// or pre-populated value if not empty and set to override saved value
1197
+			$field_value = !gv_empty( $this->entry[ $id ], false, false ) && ! ( $override_saved_value && !gv_empty( $pre_value, false, false ) ) ? $this->entry[ $id ] : $pre_value;
1198
+
1199
+			// in case field is post_category but inputType is select, multi-select or radio, convert value into array of category IDs.
1200
+			if ( 'post_category' === $field->type && !gv_empty( $field_value, false, false ) ) {
1201
+				$categories = array();
1202
+				foreach ( explode( ',', $field_value ) as $cat_string ) {
1203
+					$categories[] = GFCommon::format_post_category( $cat_string, true );
1204
+				}
1205
+				$field_value = 'multiselect' === $field->get_input_type() ? $categories : implode( '', $categories );
1206
+			}
1207
+
1208
+		}
1209
+
1210
+		// if value is empty get the default value if defined
1211
+		$field_value = $field->get_value_default_if_empty( $field_value );
1212
+
1213
+		/**
1214
+		 * @filter `gravityview/edit_entry/field_value` Change the value of an Edit Entry field, if needed
1215
+		 * @since 1.11
1216
+		 * @since 1.20 Added third param
1217
+		 * @param mixed $field_value field value used to populate the input
1218
+		 * @param object $field Gravity Forms field object ( Class GF_Field )
1219
+		 * @param GravityView_Edit_Entry_Render $this Current object
1220
+		 */
1221
+		$field_value = apply_filters( 'gravityview/edit_entry/field_value', $field_value, $field, $this );
1222
+
1223
+		/**
1224
+		 * @filter `gravityview/edit_entry/field_value_{field_type}` Change the value of an Edit Entry field for a specific field type
1225
+		 * @since 1.17
1226
+		 * @since 1.20 Added third param
1227
+		 * @param mixed $field_value field value used to populate the input
1228
+		 * @param GF_Field $field Gravity Forms field object
1229
+		 * @param GravityView_Edit_Entry_Render $this Current object
1230
+		 */
1231
+		$field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type , $field_value, $field, $this );
1232
+
1233
+		return $field_value;
1234
+	}
1235
+
1236
+
1237
+	// ---- Entry validation
1238
+
1239
+	/**
1240
+	 * Add field keys that Gravity Forms expects.
1241
+	 *
1242
+	 * @see GFFormDisplay::validate()
1243
+	 * @param  array $form GF Form
1244
+	 * @return array       Modified GF Form
1245
+	 */
1246
+	public function gform_pre_validation( $form ) {
1247
+
1248
+		if( ! $this->verify_nonce() ) {
1249
+			return $form;
1250
+		}
1251
+
1252
+		// Fix PHP warning regarding undefined index.
1253
+		foreach ( $form['fields'] as &$field) {
1254
+
1255
+			// This is because we're doing admin form pretending to be front-end, so Gravity Forms
1256
+			// expects certain field array items to be set.
1257
+			foreach ( array( 'noDuplicates', 'adminOnly', 'inputType', 'isRequired', 'enablePrice', 'inputs', 'allowedExtensions' ) as $key ) {
1258
+				$field->{$key} = isset( $field->{$key} ) ? $field->{$key} : NULL;
1259
+			}
1260
+
1261
+			switch( RGFormsModel::get_input_type( $field ) ) {
1262
+
1263
+				/**
1264
+				 * this whole fileupload hack is because in the admin, Gravity Forms simply doesn't update any fileupload field if it's empty, but it DOES in the frontend.
1265
+				 *
1266
+				 * What we have to do is set the value so that it doesn't get overwritten as empty on save and appears immediately in the Edit Entry screen again.
1267
+				 *
1268
+				 * @hack
1269
+				 */
1270
+				case 'fileupload':
1271
+
1272
+					// Set the previous value
1273
+					$entry = $this->get_entry();
1274
+
1275
+					$input_name = 'input_'.$field->id;
1276
+					$form_id = $form['id'];
1277
+
1278
+					$value = NULL;
1279
+
1280
+					// Use the previous entry value as the default.
1281
+					if( isset( $entry[ $field->id ] ) ) {
1282
+						$value = $entry[ $field->id ];
1283
+					}
1284
+
1285
+					// If this is a single upload file
1286
+					if( !empty( $_FILES[ $input_name ] ) && !empty( $_FILES[ $input_name ]['name'] ) ) {
1287
+						$file_path = GFFormsModel::get_file_upload_path( $form['id'], $_FILES[ $input_name ]['name'] );
1288
+						$value = $file_path['url'];
1289
+
1290
+					} else {
1291
+
1292
+						// Fix PHP warning on line 1498 of form_display.php for post_image fields
1293
+						// Fix PHP Notice:  Undefined index:  size in form_display.php on line 1511
1294
+						$_FILES[ $input_name ] = array('name' => '', 'size' => '' );
1295
+
1296
+					}
1297
+
1298
+					if( rgar($field, "multipleFiles") ) {
1299
+
1300
+						// If there are fresh uploads, process and merge them.
1301
+						// Otherwise, use the passed values, which should be json-encoded array of URLs
1302
+						if( isset( GFFormsModel::$uploaded_files[$form_id][$input_name] ) ) {
1303
+							$value = empty( $value ) ? '[]' : $value;
1304
+							$value = stripslashes_deep( $value );
1305
+							$value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'], array());
1306
+						}
1307
+
1308
+					} else {
1309
+
1310
+						// A file already exists when editing an entry
1311
+						// We set this to solve issue when file upload fields are required.
1312
+						GFFormsModel::$uploaded_files[ $form_id ][ $input_name ] = $value;
1313
+
1314
+					}
1315
+
1316
+					$this->entry[ $input_name ] = $value;
1317
+					$_POST[ $input_name ] = $value;
1318
+
1319
+					break;
1442 1320
 
1443
-                    }
1321
+				case 'number':
1322
+					// Fix "undefined index" issue at line 1286 in form_display.php
1323
+					if( !isset( $_POST['input_'.$field->id ] ) ) {
1324
+						$_POST['input_'.$field->id ] = NULL;
1325
+					}
1326
+					break;
1327
+			}
1328
+
1329
+		}
1330
+
1331
+		return $form;
1332
+	}
1333
+
1334
+
1335
+	/**
1336
+	 * Process validation for a edit entry submission
1337
+	 *
1338
+	 * Sets the `is_valid` object var
1339
+	 *
1340
+	 * @return void
1341
+	 */
1342
+	private function validate() {
1343
+
1344
+		/**
1345
+		 * If using GF User Registration Add-on, remove the validation step, otherwise generates error when updating the entry
1346
+		 * GF User Registration Add-on version > 3.x has a different class name
1347
+		 * @since 1.16.2
1348
+		 */
1349
+		if ( class_exists( 'GF_User_Registration' ) ) {
1350
+			remove_filter( 'gform_validation', array( GF_User_Registration::get_instance(), 'validate' ) );
1351
+		} else  if ( class_exists( 'GFUser' ) ) {
1352
+			remove_filter( 'gform_validation', array( 'GFUser', 'user_registration_validation' ) );
1353
+		}
1354
+
1355
+
1356
+		/**
1357
+		 * For some crazy reason, Gravity Forms doesn't validate Edit Entry form submissions.
1358
+		 * You can enter whatever you want!
1359
+		 * We try validating, and customize the results using `self::custom_validation()`
1360
+		 */
1361
+		add_filter( 'gform_validation_'. $this->form_id, array( $this, 'custom_validation' ), 10, 4);
1362
+
1363
+		// Needed by the validate funtion
1364
+		$failed_validation_page = NULL;
1365
+		$field_values = RGForms::post( 'gform_field_values' );
1366
+
1367
+		// Prevent entry limit from running when editing an entry, also
1368
+		// prevent form scheduling from preventing editing
1369
+		unset( $this->form['limitEntries'], $this->form['scheduleForm'] );
1370
+
1371
+		// Hide fields depending on Edit Entry settings
1372
+		$this->form['fields'] = $this->get_configured_edit_fields( $this->form, $this->view_id );
1373
+
1374
+		$this->is_valid = GFFormDisplay::validate( $this->form, $field_values, 1, $failed_validation_page );
1375
+
1376
+		remove_filter( 'gform_validation_'. $this->form_id, array( $this, 'custom_validation' ), 10 );
1377
+	}
1378
+
1379
+
1380
+	/**
1381
+	 * Make validation work for Edit Entry
1382
+	 *
1383
+	 * Because we're calling the GFFormDisplay::validate() in an unusual way (as a front-end
1384
+	 * form pretending to be a back-end form), validate() doesn't know we _can't_ edit post
1385
+	 * fields. This goes through all the fields and if they're an invalid post field, we
1386
+	 * set them as valid. If there are still issues, we'll return false.
1387
+	 *
1388
+	 * @param  [type] $validation_results [description]
1389
+	 * @return [type]                     [description]
1390
+	 */
1391
+	public function custom_validation( $validation_results ) {
1392
+
1393
+		do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results: ', $validation_results );
1394
+
1395
+		do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
1396
+
1397
+		$gv_valid = true;
1398
+
1399
+		foreach ( $validation_results['form']['fields'] as $key => &$field ) {
1400
+
1401
+			$value = RGFormsModel::get_field_value( $field );
1402
+			$field_type = RGFormsModel::get_input_type( $field );
1403
+
1404
+			// Validate always
1405
+			switch ( $field_type ) {
1444 1406
 
1445 1407
 
1446
-                    break;
1408
+				case 'fileupload' :
1409
+				case 'post_image':
1447 1410
 
1448
-            }
1411
+					// in case nothing is uploaded but there are already files saved
1412
+					if( !empty( $field->failed_validation ) && !empty( $field->isRequired ) && !empty( $value ) ) {
1413
+						$field->failed_validation = false;
1414
+						unset( $field->validation_message );
1415
+					}
1449 1416
 
1450
-            // This field has failed validation.
1451
-            if( !empty( $field->failed_validation ) ) {
1417
+					// validate if multi file upload reached max number of files [maxFiles] => 2
1418
+					if( rgobj( $field, 'maxFiles') && rgobj( $field, 'multipleFiles') ) {
1452 1419
 
1453
-                do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field is invalid.', array( 'field' => $field, 'value' => $value ) );
1420
+						$input_name = 'input_' . $field->id;
1421
+						//uploaded
1422
+						$file_names = isset( GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] : array();
1454 1423
 
1455
-                switch ( $field_type ) {
1424
+						//existent
1425
+						$entry = $this->get_entry();
1426
+						$value = NULL;
1427
+						if( isset( $entry[ $field->id ] ) ) {
1428
+							$value = json_decode( $entry[ $field->id ], true );
1429
+						}
1430
+
1431
+						// count uploaded files and existent entry files
1432
+						$count_files = count( $file_names ) + count( $value );
1433
+
1434
+						if( $count_files > $field->maxFiles ) {
1435
+							$field->validation_message = __( 'Maximum number of files reached', 'gravityview' );
1436
+							$field->failed_validation = 1;
1437
+							$gv_valid = false;
1438
+
1439
+							// in case of error make sure the newest upload files are removed from the upload input
1440
+							GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ] = null;
1441
+						}
1456 1442
 
1457
-                    // Captchas don't need to be re-entered.
1458
-                    case 'captcha':
1443
+					}
1459 1444
 
1460
-                        // Post Image fields aren't editable, so we un-fail them.
1461
-                    case 'post_image':
1462
-                        $field->failed_validation = false;
1463
-                        unset( $field->validation_message );
1464
-                        break;
1465 1445
 
1466
-                }
1446
+					break;
1467 1447
 
1468
-                // You can't continue inside a switch, so we do it after.
1469
-                if( empty( $field->failed_validation ) ) {
1470
-                    continue;
1471
-                }
1448
+			}
1449
+
1450
+			// This field has failed validation.
1451
+			if( !empty( $field->failed_validation ) ) {
1472 1452
 
1473
-                // checks if the No Duplicates option is not validating entry against itself, since
1474
-                // we're editing a stored entry, it would also assume it's a duplicate.
1475
-                if( !empty( $field->noDuplicates ) ) {
1453
+				do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field is invalid.', array( 'field' => $field, 'value' => $value ) );
1476 1454
 
1477
-                    $entry = $this->get_entry();
1455
+				switch ( $field_type ) {
1478 1456
 
1479
-                    // If the value of the entry is the same as the stored value
1480
-                    // Then we can assume it's not a duplicate, it's the same.
1481
-                    if( !empty( $entry ) && $value == $entry[ $field->id ] ) {
1482
-                        //if value submitted was not changed, then don't validate
1483
-                        $field->failed_validation = false;
1457
+					// Captchas don't need to be re-entered.
1458
+					case 'captcha':
1484 1459
 
1485
-                        unset( $field->validation_message );
1460
+						// Post Image fields aren't editable, so we un-fail them.
1461
+					case 'post_image':
1462
+						$field->failed_validation = false;
1463
+						unset( $field->validation_message );
1464
+						break;
1486 1465
 
1487
-                        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', $entry );
1466
+				}
1488 1467
 
1489
-                        continue;
1490
-                    }
1491
-                }
1468
+				// You can't continue inside a switch, so we do it after.
1469
+				if( empty( $field->failed_validation ) ) {
1470
+					continue;
1471
+				}
1492 1472
 
1493
-                // if here then probably we are facing the validation 'At least one field must be filled out'
1494
-                if( GFFormDisplay::is_empty( $field, $this->form_id  ) && empty( $field->isRequired ) ) {
1495
-                    unset( $field->validation_message );
1496
-	                $field->validation_message = false;
1497
-                    continue;
1498
-                }
1473
+				// checks if the No Duplicates option is not validating entry against itself, since
1474
+				// we're editing a stored entry, it would also assume it's a duplicate.
1475
+				if( !empty( $field->noDuplicates ) ) {
1499 1476
 
1500
-                $gv_valid = false;
1477
+					$entry = $this->get_entry();
1501 1478
 
1502
-            }
1479
+					// If the value of the entry is the same as the stored value
1480
+					// Then we can assume it's not a duplicate, it's the same.
1481
+					if( !empty( $entry ) && $value == $entry[ $field->id ] ) {
1482
+						//if value submitted was not changed, then don't validate
1483
+						$field->failed_validation = false;
1503 1484
 
1504
-        }
1485
+						unset( $field->validation_message );
1505 1486
 
1506
-        $validation_results['is_valid'] = $gv_valid;
1487
+						do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', $entry );
1507 1488
 
1508
-        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results.', $validation_results );
1489
+						continue;
1490
+					}
1491
+				}
1509 1492
 
1510
-        // We'll need this result when rendering the form ( on GFFormDisplay::get_form )
1511
-        $this->form_after_validation = $validation_results['form'];
1493
+				// if here then probably we are facing the validation 'At least one field must be filled out'
1494
+				if( GFFormDisplay::is_empty( $field, $this->form_id  ) && empty( $field->isRequired ) ) {
1495
+					unset( $field->validation_message );
1496
+					$field->validation_message = false;
1497
+					continue;
1498
+				}
1512 1499
 
1513
-        return $validation_results;
1514
-    }
1500
+				$gv_valid = false;
1515 1501
 
1502
+			}
1503
+
1504
+		}
1516 1505
 
1517
-    /**
1518
-     * TODO: This seems to be hacky... we should remove it. Entry is set when updating the form using setup_vars()!
1519
-     * Get the current entry and set it if it's not yet set.
1520
-     * @return array Gravity Forms entry array
1521
-     */
1522
-    public function get_entry() {
1506
+		$validation_results['is_valid'] = $gv_valid;
1523 1507
 
1524
-        if( empty( $this->entry ) ) {
1525
-            // Get the database value of the entry that's being edited
1526
-            $this->entry = gravityview_get_entry( GravityView_frontend::is_single_entry() );
1527
-        }
1508
+		do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results.', $validation_results );
1528 1509
 
1529
-        return $this->entry;
1530
-    }
1510
+		// We'll need this result when rendering the form ( on GFFormDisplay::get_form )
1511
+		$this->form_after_validation = $validation_results['form'];
1531 1512
 
1513
+		return $validation_results;
1514
+	}
1515
+
1516
+
1517
+	/**
1518
+	 * TODO: This seems to be hacky... we should remove it. Entry is set when updating the form using setup_vars()!
1519
+	 * Get the current entry and set it if it's not yet set.
1520
+	 * @return array Gravity Forms entry array
1521
+	 */
1522
+	public function get_entry() {
1523
+
1524
+		if( empty( $this->entry ) ) {
1525
+			// Get the database value of the entry that's being edited
1526
+			$this->entry = gravityview_get_entry( GravityView_frontend::is_single_entry() );
1527
+		}
1528
+
1529
+		return $this->entry;
1530
+	}
1532 1531
 
1533 1532
 
1534
-    // --- Filters
1535 1533
 
1536
-    /**
1537
-     * Get the Edit Entry fields as configured in the View
1538
-     *
1539
-     * @since 1.8
1540
-     *
1541
-     * @param int $view_id
1542
-     *
1543
-     * @return array Array of fields that are configured in the Edit tab in the Admin
1544
-     */
1545
-    private function get_configured_edit_fields( $form, $view_id ) {
1534
+	// --- Filters
1546 1535
 
1547
-        // Get all fields for form
1536
+	/**
1537
+	 * Get the Edit Entry fields as configured in the View
1538
+	 *
1539
+	 * @since 1.8
1540
+	 *
1541
+	 * @param int $view_id
1542
+	 *
1543
+	 * @return array Array of fields that are configured in the Edit tab in the Admin
1544
+	 */
1545
+	private function get_configured_edit_fields( $form, $view_id ) {
1546
+
1547
+		// Get all fields for form
1548 1548
 		if ( defined( 'GRAVITYVIEW_FUTURE_CORE_LOADED' ) ) {
1549 1549
 			if ( \GV\View::exists( $view_id ) ) {
1550 1550
 				$view = \GV\View::by_id( $view_id );
@@ -1555,446 +1555,446 @@  discard block
 block discarded – undo
1555 1555
 			$properties = GravityView_View_Data::getInstance()->get_fields( $view_id );
1556 1556
 		}
1557 1557
 
1558
-        // If edit tab not yet configured, show all fields
1559
-        $edit_fields = !empty( $properties['edit_edit-fields'] ) ? $properties['edit_edit-fields'] : NULL;
1558
+		// If edit tab not yet configured, show all fields
1559
+		$edit_fields = !empty( $properties['edit_edit-fields'] ) ? $properties['edit_edit-fields'] : NULL;
1560 1560
 
1561
-        // Hide fields depending on admin settings
1562
-        $fields = $this->filter_fields( $form['fields'], $edit_fields );
1561
+		// Hide fields depending on admin settings
1562
+		$fields = $this->filter_fields( $form['fields'], $edit_fields );
1563 1563
 
1564
-	    // If Edit Entry fields are configured, remove adminOnly field settings. Otherwise, don't.
1565
-	    $fields = $this->filter_admin_only_fields( $fields, $edit_fields, $form, $view_id );
1564
+		// If Edit Entry fields are configured, remove adminOnly field settings. Otherwise, don't.
1565
+		$fields = $this->filter_admin_only_fields( $fields, $edit_fields, $form, $view_id );
1566 1566
 
1567
-        /**
1568
-         * @filter `gravityview/edit_entry/form_fields` Modify the fields displayed in Edit Entry form
1569
-         * @since 1.17
1570
-         * @param GF_Field[] $fields Gravity Forms form fields
1571
-         * @param array|null $edit_fields Fields for the Edit Entry tab configured in the View Configuration
1572
-         * @param array $form GF Form array (`fields` key modified to have only fields configured to show in Edit Entry)
1573
-         * @param int $view_id View ID
1574
-         */
1575
-        $fields = apply_filters( 'gravityview/edit_entry/form_fields', $fields, $edit_fields, $form, $view_id );
1567
+		/**
1568
+		 * @filter `gravityview/edit_entry/form_fields` Modify the fields displayed in Edit Entry form
1569
+		 * @since 1.17
1570
+		 * @param GF_Field[] $fields Gravity Forms form fields
1571
+		 * @param array|null $edit_fields Fields for the Edit Entry tab configured in the View Configuration
1572
+		 * @param array $form GF Form array (`fields` key modified to have only fields configured to show in Edit Entry)
1573
+		 * @param int $view_id View ID
1574
+		 */
1575
+		$fields = apply_filters( 'gravityview/edit_entry/form_fields', $fields, $edit_fields, $form, $view_id );
1576 1576
 
1577
-        return $fields;
1578
-    }
1579
-
1580
-
1581
-    /**
1582
-     * Filter area fields based on specified conditions
1583
-     *  - This filter removes the fields that have calculation configured
1584
-     *
1585
-     * @uses GravityView_Edit_Entry::user_can_edit_field() Check caps
1586
-     * @access private
1587
-     * @param GF_Field[] $fields
1588
-     * @param array $configured_fields
1589
-     * @since  1.5
1590
-     * @return array $fields
1591
-     */
1592
-    private function filter_fields( $fields, $configured_fields ) {
1593
-
1594
-        if( empty( $fields ) || !is_array( $fields ) ) {
1595
-            return $fields;
1596
-        }
1597
-
1598
-        $edit_fields = array();
1599
-
1600
-        $field_type_blacklist = $this->loader->get_field_blacklist( $this->entry );
1601
-
1602
-        // First, remove blacklist or calculation fields
1603
-        foreach ( $fields as $key => $field ) {
1604
-
1605
-            // Remove the fields that have calculation properties and keep them to be used later
1606
-            // @since 1.16.2
1607
-            if( $field->has_calculation() ) {
1608
-                $this->fields_with_calculation[] = $field;
1609
-                // don't remove the calculation fields on form render.
1610
-            }
1611
-
1612
-            if( in_array( $field->type, $field_type_blacklist ) ) {
1613
-                unset( $fields[ $key ] );
1614
-            }
1615
-        }
1616
-
1617
-        // The Edit tab has not been configured, so we return all fields by default.
1618
-        if( empty( $configured_fields ) ) {
1619
-            return $fields;
1620
-        }
1621
-
1622
-        // The edit tab has been configured, so we loop through to configured settings
1623
-        foreach ( $configured_fields as $configured_field ) {
1624
-
1625
-	        /** @var GF_Field $field */
1626
-	        foreach ( $fields as $field ) {
1627
-
1628
-                if( intval( $configured_field['id'] ) === intval( $field->id ) && $this->user_can_edit_field( $configured_field, false ) ) {
1629
-                    $edit_fields[] = $this->merge_field_properties( $field, $configured_field );
1630
-                    break;
1631
-                }
1632
-
1633
-            }
1634
-
1635
-        }
1636
-
1637
-        return $edit_fields;
1638
-
1639
-    }
1640
-
1641
-    /**
1642
-     * Override GF Form field properties with the ones defined on the View
1643
-     * @param  GF_Field $field GF Form field object
1644
-     * @param  array $field_setting  GV field options
1645
-     * @since  1.5
1646
-     * @return array|GF_Field
1647
-     */
1648
-    private function merge_field_properties( $field, $field_setting ) {
1649
-
1650
-        $return_field = $field;
1651
-
1652
-        if( empty( $field_setting['show_label'] ) ) {
1653
-            $return_field->label = '';
1654
-        } elseif ( !empty( $field_setting['custom_label'] ) ) {
1655
-            $return_field->label = $field_setting['custom_label'];
1656
-        }
1657
-
1658
-        if( !empty( $field_setting['custom_class'] ) ) {
1659
-            $return_field->cssClass .= ' '. gravityview_sanitize_html_class( $field_setting['custom_class'] );
1660
-        }
1661
-
1662
-        /**
1663
-         * Normalize page numbers - avoid conflicts with page validation
1664
-         * @since 1.6
1665
-         */
1666
-        $return_field->pageNumber = 1;
1667
-
1668
-        return $return_field;
1669
-
1670
-    }
1671
-
1672
-    /**
1673
-     * Remove fields that shouldn't be visible based on the Gravity Forms adminOnly field property
1674
-     *
1675
-     * @since 1.9.1
1676
-     *
1677
-     * @param array|GF_Field[] $fields Gravity Forms form fields
1678
-     * @param array|null $edit_fields Fields for the Edit Entry tab configured in the View Configuration
1679
-     * @param array $form GF Form array
1680
-     * @param int $view_id View ID
1681
-     *
1682
-     * @return array Possibly modified form array
1683
-     */
1684
-    private function filter_admin_only_fields( $fields = array(), $edit_fields = null, $form = array(), $view_id = 0 ) {
1685
-
1686
-	    /**
1687
-         * @filter `gravityview/edit_entry/use_gf_admin_only_setting` When Edit tab isn't configured, should the Gravity Forms "Admin Only" field settings be used to control field display to non-admins? Default: true
1688
-	     * If the Edit Entry tab is not configured, adminOnly fields will not be shown to non-administrators.
1689
-	     * If the Edit Entry tab *is* configured, adminOnly fields will be shown to non-administrators, using the configured GV permissions
1690
-	     * @since 1.9.1
1691
-	     * @param boolean $use_gf_adminonly_setting True: Hide field if set to Admin Only in GF and the user is not an admin. False: show field based on GV permissions, ignoring GF permissions.
1692
-	     * @param array $form GF Form array
1693
-	     * @param int $view_id View ID
1694
-	     */
1695
-	    $use_gf_adminonly_setting = apply_filters( 'gravityview/edit_entry/use_gf_admin_only_setting', empty( $edit_fields ), $form, $view_id );
1696
-
1697
-	    if( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry['id'] ) ) {
1698
-            foreach( $fields as $k => $field ) {
1699
-                if( $field->adminOnly ) {
1700
-                    unset( $fields[ $k ] );
1701
-                }
1702
-            }
1703
-            return $fields;
1704
-        }
1705
-
1706
-	    foreach( $fields as &$field ) {
1707
-		    $field->adminOnly = false;
1708
-        }
1709
-
1710
-        return $fields;
1711
-    }
1712
-
1713
-    // --- Conditional Logic
1714
-
1715
-    /**
1716
-     * Conditional logic isn't designed to work with forms that already have content. When switching input values,
1717
-     * the dependent fields will be blank.
1718
-     *
1719
-     * Note: This is because GF populates a JavaScript variable with the input values. This is tough to filter at the input level;
1720
-     * via the `gform_field_value` filter; it requires lots of legwork. Doing it at the form level is easier.
1721
-     *
1722
-     * @since 1.17.4
1723
-     *
1724
-     * @param array $form Gravity Forms array object
1725
-     *
1726
-     * @return array $form, modified to fix conditional
1727
-     */
1728
-    function prefill_conditional_logic( $form ) {
1729
-
1730
-        if( ! GFFormDisplay::has_conditional_logic( $form ) ) {
1731
-            return $form;
1732
-        }
1733
-
1734
-        // Have Conditional Logic pre-fill fields as if the data were default values
1735
-        /** @var GF_Field $field */
1736
-        foreach ( $form['fields'] as &$field ) {
1737
-
1738
-            if( 'checkbox' === $field->type ) {
1739
-                foreach ( $field->get_entry_inputs() as $key => $input ) {
1740
-                    $input_id = $input['id'];
1741
-                    $choice = $field->choices[ $key ];
1742
-                    $value = rgar( $this->entry, $input_id );
1743
-                    $match = RGFormsModel::choice_value_match( $field, $choice, $value );
1744
-                    if( $match ) {
1745
-                        $field->choices[ $key ]['isSelected'] = true;
1746
-                    }
1747
-                }
1748
-            } else {
1749
-
1750
-                // We need to run through each field to set the default values
1751
-                foreach ( $this->entry as $field_id => $field_value ) {
1752
-
1753
-                    if( floatval( $field_id ) === floatval( $field->id ) ) {
1754
-
1755
-                        if( 'list' === $field->type ) {
1756
-                            $list_rows = maybe_unserialize( $field_value );
1757
-
1758
-                            $list_field_value = array();
1759
-                            foreach ( (array) $list_rows as $row ) {
1760
-                                foreach ( (array) $row as $column ) {
1761
-                                    $list_field_value[] = $column;
1762
-                                }
1763
-                            }
1764
-
1765
-                            $field->defaultValue = serialize( $list_field_value );
1766
-                        } else {
1767
-                            $field->defaultValue = $field_value;
1768
-                        }
1769
-                    }
1770
-                }
1771
-            }
1772
-        }
1773
-
1774
-        return $form;
1775
-    }
1776
-
1777
-    /**
1778
-     * Remove the conditional logic rules from the form button and the form fields, if needed.
1779
-     *
1780
-     * @todo Merge with caller method
1781
-     * @since 1.9
1782
-     *
1783
-     * @param array $form Gravity Forms form
1784
-     * @return array Modified form, if not using Conditional Logic
1785
-     */
1786
-    private function filter_conditional_logic( $form ) {
1787
-
1788
-        /**
1789
-         * @filter `gravityview/edit_entry/conditional_logic` Should the Edit Entry form use Gravity Forms conditional logic showing/hiding of fields?
1790
-         * @since 1.9
1791
-         * @param bool $use_conditional_logic True: Gravity Forms will show/hide fields just like in the original form; False: conditional logic will be disabled and fields will be shown based on configuration. Default: true
1792
-         * @param array $form Gravity Forms form
1793
-         */
1794
-        $use_conditional_logic = apply_filters( 'gravityview/edit_entry/conditional_logic', true, $form );
1795
-
1796
-        if( $use_conditional_logic ) {
1797
-            return $form;
1798
-        }
1799
-
1800
-        foreach( $form['fields'] as &$field ) {
1801
-            /* @var GF_Field $field */
1802
-            $field->conditionalLogic = null;
1803
-        }
1804
-
1805
-        unset( $form['button']['conditionalLogic'] );
1806
-
1807
-        return $form;
1808
-
1809
-    }
1810
-
1811
-    /**
1812
-     * Disable the Gravity Forms conditional logic script and features on the Edit Entry screen
1813
-     *
1814
-     * @since 1.9
1815
-     *
1816
-     * @param $has_conditional_logic
1817
-     * @param $form
1818
-     * @return mixed
1819
-     */
1820
-    public function manage_conditional_logic( $has_conditional_logic, $form ) {
1821
-
1822
-        if( ! $this->is_edit_entry() ) {
1823
-            return $has_conditional_logic;
1824
-        }
1825
-
1826
-	    /** @see GravityView_Edit_Entry_Render::filter_conditional_logic for filter documentation */
1827
-        return apply_filters( 'gravityview/edit_entry/conditional_logic', $has_conditional_logic, $form );
1828
-    }
1829
-
1830
-
1831
-    // --- User checks and nonces
1832
-
1833
-    /**
1834
-     * Check if the user can edit the entry
1835
-     *
1836
-     * - Is the nonce valid?
1837
-     * - Does the user have the right caps for the entry
1838
-     * - Is the entry in the trash?
1839
-     *
1840
-     * @todo Move to GVCommon
1841
-     *
1842
-     * @param  boolean $echo Show error messages in the form?
1843
-     * @return boolean        True: can edit form. False: nope.
1844
-     */
1845
-    private function user_can_edit_entry( $echo = false ) {
1846
-
1847
-        $error = NULL;
1848
-
1849
-        /**
1850
-         *  1. Permalinks are turned off
1851
-         *  2. There are two entries embedded using oEmbed
1852
-         *  3. One of the entries has just been saved
1853
-         */
1854
-        if( !empty( $_POST['lid'] ) && !empty( $_GET['entry'] ) && ( $_POST['lid'] !== $_GET['entry'] ) ) {
1855
-
1856
-            $error = true;
1857
-
1858
-        }
1859
-
1860
-        if( !empty( $_GET['entry'] ) && (string)$this->entry['id'] !== $_GET['entry'] ) {
1861
-
1862
-            $error = true;
1863
-
1864
-        } elseif( ! $this->verify_nonce() ) {
1865
-
1866
-            /**
1867
-             * If the Entry is embedded, there may be two entries on the same page.
1868
-             * If that's the case, and one is being edited, the other should fail gracefully and not display an error.
1869
-             */
1870
-            if( GravityView_oEmbed::getInstance()->get_entry_id() ) {
1871
-                $error = true;
1872
-            } else {
1873
-                $error = __( 'The link to edit this entry is not valid; it may have expired.', 'gravityview');
1874
-            }
1875
-
1876
-        }
1877
-
1878
-        if( ! GravityView_Edit_Entry::check_user_cap_edit_entry( $this->entry ) ) {
1879
-            $error = __( 'You do not have permission to edit this entry.', 'gravityview');
1880
-        }
1881
-
1882
-        if( $this->entry['status'] === 'trash' ) {
1883
-            $error = __('You cannot edit the entry; it is in the trash.', 'gravityview' );
1884
-        }
1577
+		return $fields;
1578
+	}
1885 1579
 
1886
-        // No errors; everything's fine here!
1887
-        if( empty( $error ) ) {
1888
-            return true;
1889
-        }
1890 1580
 
1891
-        if( $echo && $error !== true ) {
1581
+	/**
1582
+	 * Filter area fields based on specified conditions
1583
+	 *  - This filter removes the fields that have calculation configured
1584
+	 *
1585
+	 * @uses GravityView_Edit_Entry::user_can_edit_field() Check caps
1586
+	 * @access private
1587
+	 * @param GF_Field[] $fields
1588
+	 * @param array $configured_fields
1589
+	 * @since  1.5
1590
+	 * @return array $fields
1591
+	 */
1592
+	private function filter_fields( $fields, $configured_fields ) {
1892 1593
 
1893
-	        $error = esc_html( $error );
1594
+		if( empty( $fields ) || !is_array( $fields ) ) {
1595
+			return $fields;
1596
+		}
1894 1597
 
1895
-	        /**
1896
-	         * @since 1.9
1897
-	         */
1898
-	        if ( ! empty( $this->entry ) ) {
1899
-		        $error .= ' ' . gravityview_get_link( '#', _x('Go back.', 'Link shown when invalid Edit Entry link is clicked', 'gravityview' ), array( 'onclick' => "window.history.go(-1); return false;" ) );
1900
-	        }
1598
+		$edit_fields = array();
1901 1599
 
1902
-            echo GVCommon::generate_notice( wpautop( $error ), 'gv-error error');
1903
-        }
1600
+		$field_type_blacklist = $this->loader->get_field_blacklist( $this->entry );
1904 1601
 
1905
-        do_action('gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_entry]' . $error );
1602
+		// First, remove blacklist or calculation fields
1603
+		foreach ( $fields as $key => $field ) {
1906 1604
 
1907
-        return false;
1908
-    }
1909
-
1910
-
1911
-    /**
1912
-     * Check whether a field is editable by the current user, and optionally display an error message
1913
-     * @uses  GravityView_Edit_Entry->check_user_cap_edit_field() Check user capabilities
1914
-     * @param  array  $field Field or field settings array
1915
-     * @param  boolean $echo  Whether to show error message telling user they aren't allowed
1916
-     * @return boolean         True: user can edit the current field; False: nope, they can't.
1917
-     */
1918
-    private function user_can_edit_field( $field, $echo = false ) {
1605
+			// Remove the fields that have calculation properties and keep them to be used later
1606
+			// @since 1.16.2
1607
+			if( $field->has_calculation() ) {
1608
+				$this->fields_with_calculation[] = $field;
1609
+				// don't remove the calculation fields on form render.
1610
+			}
1919 1611
 
1920
-        $error = NULL;
1612
+			if( in_array( $field->type, $field_type_blacklist ) ) {
1613
+				unset( $fields[ $key ] );
1614
+			}
1615
+		}
1921 1616
 
1922
-        if( ! $this->check_user_cap_edit_field( $field ) ) {
1923
-            $error = __( 'You do not have permission to edit this field.', 'gravityview');
1924
-        }
1617
+		// The Edit tab has not been configured, so we return all fields by default.
1618
+		if( empty( $configured_fields ) ) {
1619
+			return $fields;
1620
+		}
1925 1621
 
1926
-        // No errors; everything's fine here!
1927
-        if( empty( $error ) ) {
1928
-            return true;
1929
-        }
1622
+		// The edit tab has been configured, so we loop through to configured settings
1623
+		foreach ( $configured_fields as $configured_field ) {
1930 1624
 
1931
-        if( $echo ) {
1932
-            echo GVCommon::generate_notice( wpautop( esc_html( $error ) ), 'gv-error error');
1933
-        }
1934
-
1935
-        do_action('gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_field]' . $error );
1625
+			/** @var GF_Field $field */
1626
+			foreach ( $fields as $field ) {
1936 1627
 
1937
-        return false;
1628
+				if( intval( $configured_field['id'] ) === intval( $field->id ) && $this->user_can_edit_field( $configured_field, false ) ) {
1629
+					$edit_fields[] = $this->merge_field_properties( $field, $configured_field );
1630
+					break;
1631
+				}
1938 1632
 
1939
-    }
1633
+			}
1940 1634
 
1635
+		}
1636
+
1637
+		return $edit_fields;
1638
+
1639
+	}
1640
+
1641
+	/**
1642
+	 * Override GF Form field properties with the ones defined on the View
1643
+	 * @param  GF_Field $field GF Form field object
1644
+	 * @param  array $field_setting  GV field options
1645
+	 * @since  1.5
1646
+	 * @return array|GF_Field
1647
+	 */
1648
+	private function merge_field_properties( $field, $field_setting ) {
1649
+
1650
+		$return_field = $field;
1651
+
1652
+		if( empty( $field_setting['show_label'] ) ) {
1653
+			$return_field->label = '';
1654
+		} elseif ( !empty( $field_setting['custom_label'] ) ) {
1655
+			$return_field->label = $field_setting['custom_label'];
1656
+		}
1657
+
1658
+		if( !empty( $field_setting['custom_class'] ) ) {
1659
+			$return_field->cssClass .= ' '. gravityview_sanitize_html_class( $field_setting['custom_class'] );
1660
+		}
1661
+
1662
+		/**
1663
+		 * Normalize page numbers - avoid conflicts with page validation
1664
+		 * @since 1.6
1665
+		 */
1666
+		$return_field->pageNumber = 1;
1667
+
1668
+		return $return_field;
1669
+
1670
+	}
1671
+
1672
+	/**
1673
+	 * Remove fields that shouldn't be visible based on the Gravity Forms adminOnly field property
1674
+	 *
1675
+	 * @since 1.9.1
1676
+	 *
1677
+	 * @param array|GF_Field[] $fields Gravity Forms form fields
1678
+	 * @param array|null $edit_fields Fields for the Edit Entry tab configured in the View Configuration
1679
+	 * @param array $form GF Form array
1680
+	 * @param int $view_id View ID
1681
+	 *
1682
+	 * @return array Possibly modified form array
1683
+	 */
1684
+	private function filter_admin_only_fields( $fields = array(), $edit_fields = null, $form = array(), $view_id = 0 ) {
1685
+
1686
+		/**
1687
+		 * @filter `gravityview/edit_entry/use_gf_admin_only_setting` When Edit tab isn't configured, should the Gravity Forms "Admin Only" field settings be used to control field display to non-admins? Default: true
1688
+		 * If the Edit Entry tab is not configured, adminOnly fields will not be shown to non-administrators.
1689
+		 * If the Edit Entry tab *is* configured, adminOnly fields will be shown to non-administrators, using the configured GV permissions
1690
+		 * @since 1.9.1
1691
+		 * @param boolean $use_gf_adminonly_setting True: Hide field if set to Admin Only in GF and the user is not an admin. False: show field based on GV permissions, ignoring GF permissions.
1692
+		 * @param array $form GF Form array
1693
+		 * @param int $view_id View ID
1694
+		 */
1695
+		$use_gf_adminonly_setting = apply_filters( 'gravityview/edit_entry/use_gf_admin_only_setting', empty( $edit_fields ), $form, $view_id );
1696
+
1697
+		if( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry['id'] ) ) {
1698
+			foreach( $fields as $k => $field ) {
1699
+				if( $field->adminOnly ) {
1700
+					unset( $fields[ $k ] );
1701
+				}
1702
+			}
1703
+			return $fields;
1704
+		}
1705
+
1706
+		foreach( $fields as &$field ) {
1707
+			$field->adminOnly = false;
1708
+		}
1709
+
1710
+		return $fields;
1711
+	}
1712
+
1713
+	// --- Conditional Logic
1714
+
1715
+	/**
1716
+	 * Conditional logic isn't designed to work with forms that already have content. When switching input values,
1717
+	 * the dependent fields will be blank.
1718
+	 *
1719
+	 * Note: This is because GF populates a JavaScript variable with the input values. This is tough to filter at the input level;
1720
+	 * via the `gform_field_value` filter; it requires lots of legwork. Doing it at the form level is easier.
1721
+	 *
1722
+	 * @since 1.17.4
1723
+	 *
1724
+	 * @param array $form Gravity Forms array object
1725
+	 *
1726
+	 * @return array $form, modified to fix conditional
1727
+	 */
1728
+	function prefill_conditional_logic( $form ) {
1941 1729
 
1942
-    /**
1943
-     * checks if user has permissions to edit a specific field
1944
-     *
1945
-     * Needs to be used combined with GravityView_Edit_Entry::user_can_edit_field for maximum security!!
1946
-     *
1947
-     * @param  [type] $field [description]
1948
-     * @return bool
1949
-     */
1950
-    private function check_user_cap_edit_field( $field ) {
1730
+		if( ! GFFormDisplay::has_conditional_logic( $form ) ) {
1731
+			return $form;
1732
+		}
1951 1733
 
1952
-        // If they can edit any entries (as defined in Gravity Forms), we're good.
1953
-        if( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ) ) ) {
1954
-            return true;
1955
-        }
1734
+		// Have Conditional Logic pre-fill fields as if the data were default values
1735
+		/** @var GF_Field $field */
1736
+		foreach ( $form['fields'] as &$field ) {
1737
+
1738
+			if( 'checkbox' === $field->type ) {
1739
+				foreach ( $field->get_entry_inputs() as $key => $input ) {
1740
+					$input_id = $input['id'];
1741
+					$choice = $field->choices[ $key ];
1742
+					$value = rgar( $this->entry, $input_id );
1743
+					$match = RGFormsModel::choice_value_match( $field, $choice, $value );
1744
+					if( $match ) {
1745
+						$field->choices[ $key ]['isSelected'] = true;
1746
+					}
1747
+				}
1748
+			} else {
1749
+
1750
+				// We need to run through each field to set the default values
1751
+				foreach ( $this->entry as $field_id => $field_value ) {
1752
+
1753
+					if( floatval( $field_id ) === floatval( $field->id ) ) {
1754
+
1755
+						if( 'list' === $field->type ) {
1756
+							$list_rows = maybe_unserialize( $field_value );
1757
+
1758
+							$list_field_value = array();
1759
+							foreach ( (array) $list_rows as $row ) {
1760
+								foreach ( (array) $row as $column ) {
1761
+									$list_field_value[] = $column;
1762
+								}
1763
+							}
1764
+
1765
+							$field->defaultValue = serialize( $list_field_value );
1766
+						} else {
1767
+							$field->defaultValue = $field_value;
1768
+						}
1769
+					}
1770
+				}
1771
+			}
1772
+		}
1956 1773
 
1957
-        $field_cap = isset( $field['allow_edit_cap'] ) ? $field['allow_edit_cap'] : false;
1774
+		return $form;
1775
+	}
1958 1776
 
1959
-        // If the field has custom editing capaibilities set, check those
1960
-        if( $field_cap ) {
1961
-            return GVCommon::has_cap( $field['allow_edit_cap'] );
1962
-        }
1963
-
1964
-        return false;
1965
-    }
1777
+	/**
1778
+	 * Remove the conditional logic rules from the form button and the form fields, if needed.
1779
+	 *
1780
+	 * @todo Merge with caller method
1781
+	 * @since 1.9
1782
+	 *
1783
+	 * @param array $form Gravity Forms form
1784
+	 * @return array Modified form, if not using Conditional Logic
1785
+	 */
1786
+	private function filter_conditional_logic( $form ) {
1966 1787
 
1788
+		/**
1789
+		 * @filter `gravityview/edit_entry/conditional_logic` Should the Edit Entry form use Gravity Forms conditional logic showing/hiding of fields?
1790
+		 * @since 1.9
1791
+		 * @param bool $use_conditional_logic True: Gravity Forms will show/hide fields just like in the original form; False: conditional logic will be disabled and fields will be shown based on configuration. Default: true
1792
+		 * @param array $form Gravity Forms form
1793
+		 */
1794
+		$use_conditional_logic = apply_filters( 'gravityview/edit_entry/conditional_logic', true, $form );
1967 1795
 
1968
-    /**
1969
-     * Is the current nonce valid for editing the entry?
1970
-     * @return boolean
1971
-     */
1972
-    public function verify_nonce() {
1796
+		if( $use_conditional_logic ) {
1797
+			return $form;
1798
+		}
1973 1799
 
1974
-        // Verify form submitted for editing single
1975
-        if( $this->is_edit_entry_submission() ) {
1976
-            $valid = wp_verify_nonce( $_POST[ self::$nonce_field ], self::$nonce_field );
1977
-        }
1800
+		foreach( $form['fields'] as &$field ) {
1801
+			/* @var GF_Field $field */
1802
+			$field->conditionalLogic = null;
1803
+		}
1978 1804
 
1979
-        // Verify
1980
-        else if( ! $this->is_edit_entry() ) {
1981
-            $valid = false;
1982
-        }
1805
+		unset( $form['button']['conditionalLogic'] );
1983 1806
 
1984
-        else {
1985
-            $valid = wp_verify_nonce( $_GET['edit'], self::$nonce_key );
1986
-        }
1807
+		return $form;
1987 1808
 
1988
-        /**
1989
-         * @filter `gravityview/edit_entry/verify_nonce` Override Edit Entry nonce validation. Return true to declare nonce valid.
1990
-         * @since 1.13
1991
-         * @param int|boolean $valid False if invalid; 1 or 2 when nonce was generated
1992
-         * @param string $nonce_field Key used when validating submissions. Default: is_gv_edit_entry
1993
-         */
1994
-        $valid = apply_filters( 'gravityview/edit_entry/verify_nonce', $valid, self::$nonce_field );
1809
+	}
1810
+
1811
+	/**
1812
+	 * Disable the Gravity Forms conditional logic script and features on the Edit Entry screen
1813
+	 *
1814
+	 * @since 1.9
1815
+	 *
1816
+	 * @param $has_conditional_logic
1817
+	 * @param $form
1818
+	 * @return mixed
1819
+	 */
1820
+	public function manage_conditional_logic( $has_conditional_logic, $form ) {
1821
+
1822
+		if( ! $this->is_edit_entry() ) {
1823
+			return $has_conditional_logic;
1824
+		}
1995 1825
 
1996
-        return $valid;
1997
-    }
1826
+		/** @see GravityView_Edit_Entry_Render::filter_conditional_logic for filter documentation */
1827
+		return apply_filters( 'gravityview/edit_entry/conditional_logic', $has_conditional_logic, $form );
1828
+	}
1829
+
1830
+
1831
+	// --- User checks and nonces
1832
+
1833
+	/**
1834
+	 * Check if the user can edit the entry
1835
+	 *
1836
+	 * - Is the nonce valid?
1837
+	 * - Does the user have the right caps for the entry
1838
+	 * - Is the entry in the trash?
1839
+	 *
1840
+	 * @todo Move to GVCommon
1841
+	 *
1842
+	 * @param  boolean $echo Show error messages in the form?
1843
+	 * @return boolean        True: can edit form. False: nope.
1844
+	 */
1845
+	private function user_can_edit_entry( $echo = false ) {
1846
+
1847
+		$error = NULL;
1848
+
1849
+		/**
1850
+		 *  1. Permalinks are turned off
1851
+		 *  2. There are two entries embedded using oEmbed
1852
+		 *  3. One of the entries has just been saved
1853
+		 */
1854
+		if( !empty( $_POST['lid'] ) && !empty( $_GET['entry'] ) && ( $_POST['lid'] !== $_GET['entry'] ) ) {
1855
+
1856
+			$error = true;
1857
+
1858
+		}
1859
+
1860
+		if( !empty( $_GET['entry'] ) && (string)$this->entry['id'] !== $_GET['entry'] ) {
1861
+
1862
+			$error = true;
1863
+
1864
+		} elseif( ! $this->verify_nonce() ) {
1865
+
1866
+			/**
1867
+			 * If the Entry is embedded, there may be two entries on the same page.
1868
+			 * If that's the case, and one is being edited, the other should fail gracefully and not display an error.
1869
+			 */
1870
+			if( GravityView_oEmbed::getInstance()->get_entry_id() ) {
1871
+				$error = true;
1872
+			} else {
1873
+				$error = __( 'The link to edit this entry is not valid; it may have expired.', 'gravityview');
1874
+			}
1875
+
1876
+		}
1877
+
1878
+		if( ! GravityView_Edit_Entry::check_user_cap_edit_entry( $this->entry ) ) {
1879
+			$error = __( 'You do not have permission to edit this entry.', 'gravityview');
1880
+		}
1881
+
1882
+		if( $this->entry['status'] === 'trash' ) {
1883
+			$error = __('You cannot edit the entry; it is in the trash.', 'gravityview' );
1884
+		}
1885
+
1886
+		// No errors; everything's fine here!
1887
+		if( empty( $error ) ) {
1888
+			return true;
1889
+		}
1890
+
1891
+		if( $echo && $error !== true ) {
1892
+
1893
+			$error = esc_html( $error );
1894
+
1895
+			/**
1896
+			 * @since 1.9
1897
+			 */
1898
+			if ( ! empty( $this->entry ) ) {
1899
+				$error .= ' ' . gravityview_get_link( '#', _x('Go back.', 'Link shown when invalid Edit Entry link is clicked', 'gravityview' ), array( 'onclick' => "window.history.go(-1); return false;" ) );
1900
+			}
1901
+
1902
+			echo GVCommon::generate_notice( wpautop( $error ), 'gv-error error');
1903
+		}
1904
+
1905
+		do_action('gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_entry]' . $error );
1906
+
1907
+		return false;
1908
+	}
1909
+
1910
+
1911
+	/**
1912
+	 * Check whether a field is editable by the current user, and optionally display an error message
1913
+	 * @uses  GravityView_Edit_Entry->check_user_cap_edit_field() Check user capabilities
1914
+	 * @param  array  $field Field or field settings array
1915
+	 * @param  boolean $echo  Whether to show error message telling user they aren't allowed
1916
+	 * @return boolean         True: user can edit the current field; False: nope, they can't.
1917
+	 */
1918
+	private function user_can_edit_field( $field, $echo = false ) {
1919
+
1920
+		$error = NULL;
1921
+
1922
+		if( ! $this->check_user_cap_edit_field( $field ) ) {
1923
+			$error = __( 'You do not have permission to edit this field.', 'gravityview');
1924
+		}
1925
+
1926
+		// No errors; everything's fine here!
1927
+		if( empty( $error ) ) {
1928
+			return true;
1929
+		}
1930
+
1931
+		if( $echo ) {
1932
+			echo GVCommon::generate_notice( wpautop( esc_html( $error ) ), 'gv-error error');
1933
+		}
1934
+
1935
+		do_action('gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_field]' . $error );
1936
+
1937
+		return false;
1938
+
1939
+	}
1940
+
1941
+
1942
+	/**
1943
+	 * checks if user has permissions to edit a specific field
1944
+	 *
1945
+	 * Needs to be used combined with GravityView_Edit_Entry::user_can_edit_field for maximum security!!
1946
+	 *
1947
+	 * @param  [type] $field [description]
1948
+	 * @return bool
1949
+	 */
1950
+	private function check_user_cap_edit_field( $field ) {
1951
+
1952
+		// If they can edit any entries (as defined in Gravity Forms), we're good.
1953
+		if( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ) ) ) {
1954
+			return true;
1955
+		}
1956
+
1957
+		$field_cap = isset( $field['allow_edit_cap'] ) ? $field['allow_edit_cap'] : false;
1958
+
1959
+		// If the field has custom editing capaibilities set, check those
1960
+		if( $field_cap ) {
1961
+			return GVCommon::has_cap( $field['allow_edit_cap'] );
1962
+		}
1963
+
1964
+		return false;
1965
+	}
1966
+
1967
+
1968
+	/**
1969
+	 * Is the current nonce valid for editing the entry?
1970
+	 * @return boolean
1971
+	 */
1972
+	public function verify_nonce() {
1973
+
1974
+		// Verify form submitted for editing single
1975
+		if( $this->is_edit_entry_submission() ) {
1976
+			$valid = wp_verify_nonce( $_POST[ self::$nonce_field ], self::$nonce_field );
1977
+		}
1978
+
1979
+		// Verify
1980
+		else if( ! $this->is_edit_entry() ) {
1981
+			$valid = false;
1982
+		}
1983
+
1984
+		else {
1985
+			$valid = wp_verify_nonce( $_GET['edit'], self::$nonce_key );
1986
+		}
1987
+
1988
+		/**
1989
+		 * @filter `gravityview/edit_entry/verify_nonce` Override Edit Entry nonce validation. Return true to declare nonce valid.
1990
+		 * @since 1.13
1991
+		 * @param int|boolean $valid False if invalid; 1 or 2 when nonce was generated
1992
+		 * @param string $nonce_field Key used when validating submissions. Default: is_gv_edit_entry
1993
+		 */
1994
+		$valid = apply_filters( 'gravityview/edit_entry/verify_nonce', $valid, self::$nonce_field );
1995
+
1996
+		return $valid;
1997
+	}
1998 1998
 
1999 1999
 
2000 2000
 	/**
Please login to merge, or discard this patch.
Spacing   +226 added lines, -226 removed lines patch added patch discarded remove patch
@@ -106,16 +106,16 @@  discard block
 block discarded – undo
106 106
     function load() {
107 107
 
108 108
         /** @define "GRAVITYVIEW_DIR" "../../../" */
109
-        include_once( GRAVITYVIEW_DIR .'includes/class-admin-approve-entries.php' );
109
+        include_once( GRAVITYVIEW_DIR . 'includes/class-admin-approve-entries.php' );
110 110
 
111 111
         // Don't display an embedded form when editing an entry
112 112
         add_action( 'wp_head', array( $this, 'prevent_render_form' ) );
113 113
         add_action( 'wp_footer', array( $this, 'prevent_render_form' ) );
114 114
 
115 115
         // Stop Gravity Forms processing what is ours!
116
-        add_filter( 'wp', array( $this, 'prevent_maybe_process_form'), 8 );
116
+        add_filter( 'wp', array( $this, 'prevent_maybe_process_form' ), 8 );
117 117
 
118
-        add_filter( 'gravityview_is_edit_entry', array( $this, 'is_edit_entry') );
118
+        add_filter( 'gravityview_is_edit_entry', array( $this, 'is_edit_entry' ) );
119 119
 
120 120
         add_action( 'gravityview_edit_entry', array( $this, 'init' ) );
121 121
 
@@ -126,7 +126,7 @@  discard block
 block discarded – undo
126 126
         add_filter( 'gform_plupload_settings', array( $this, 'modify_fileupload_settings' ), 10, 3 );
127 127
 
128 128
         // Add fields expected by GFFormDisplay::validate()
129
-        add_filter( 'gform_pre_validation', array( $this, 'gform_pre_validation') );
129
+        add_filter( 'gform_pre_validation', array( $this, 'gform_pre_validation' ) );
130 130
 
131 131
 		// Fix multiselect value for GF 2.2
132 132
 		add_filter( 'gravityview/edit_entry/field_value_multiselect', array( $this, 'fix_multiselect_value_serialization' ), 10, 3 );
@@ -143,8 +143,8 @@  discard block
 block discarded – undo
143 143
      * @return void
144 144
      */
145 145
     public function prevent_render_form() {
146
-        if( $this->is_edit_entry() ) {
147
-            if( 'wp_head' === current_filter() ) {
146
+        if ( $this->is_edit_entry() ) {
147
+            if ( 'wp_head' === current_filter() ) {
148 148
                 add_filter( 'gform_shortcode_form', '__return_empty_string' );
149 149
             } else {
150 150
                 remove_filter( 'gform_shortcode_form', '__return_empty_string' );
@@ -159,13 +159,13 @@  discard block
 block discarded – undo
159 159
      */
160 160
     public function prevent_maybe_process_form() {
161 161
 
162
-        if( ! empty( $_POST ) ) {
162
+        if ( ! empty( $_POST ) ) {
163 163
 	        do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[prevent_maybe_process_form] $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
164 164
         }
165 165
 
166
-        if( $this->is_edit_entry_submission() ) {
167
-            remove_action( 'wp',  array( 'RGForms', 'maybe_process_form'), 9 );
168
-	        remove_action( 'wp',  array( 'GFForms', 'maybe_process_form'), 9 );
166
+        if ( $this->is_edit_entry_submission() ) {
167
+            remove_action( 'wp', array( 'RGForms', 'maybe_process_form' ), 9 );
168
+	        remove_action( 'wp', array( 'GFForms', 'maybe_process_form' ), 9 );
169 169
         }
170 170
     }
171 171
 
@@ -175,7 +175,7 @@  discard block
 block discarded – undo
175 175
      */
176 176
     public function is_edit_entry() {
177 177
 
178
-        $is_edit_entry = GravityView_frontend::is_single_entry() && ! empty( $_GET['edit'] );
178
+        $is_edit_entry = GravityView_frontend::is_single_entry() && ! empty( $_GET[ 'edit' ] );
179 179
 
180 180
         return ( $is_edit_entry || $this->is_edit_entry_submission() );
181 181
     }
@@ -186,7 +186,7 @@  discard block
 block discarded – undo
186 186
 	 * @return boolean
187 187
 	 */
188 188
 	public function is_edit_entry_submission() {
189
-		return !empty( $_POST[ self::$nonce_field ] );
189
+		return ! empty( $_POST[ self::$nonce_field ] );
190 190
 	}
191 191
 
192 192
     /**
@@ -197,15 +197,15 @@  discard block
 block discarded – undo
197 197
 
198 198
 
199 199
         $entries = $gravityview_view->getEntries();
200
-	    self::$original_entry = $entries[0];
201
-	    $this->entry = $entries[0];
200
+	    self::$original_entry = $entries[ 0 ];
201
+	    $this->entry = $entries[ 0 ];
202 202
 
203 203
         self::$original_form = $gravityview_view->getForm();
204 204
         $this->form = $gravityview_view->getForm();
205 205
         $this->form_id = $gravityview_view->getFormId();
206 206
         $this->view_id = $gravityview_view->getViewId();
207 207
 
208
-        self::$nonce_key = GravityView_Edit_Entry::get_nonce_key( $this->view_id, $this->form_id, $this->entry['id'] );
208
+        self::$nonce_key = GravityView_Edit_Entry::get_nonce_key( $this->view_id, $this->form_id, $this->entry[ 'id' ] );
209 209
     }
210 210
 
211 211
 
@@ -226,14 +226,14 @@  discard block
 block discarded – undo
226 226
 
227 227
         // Multiple Views embedded, don't proceed if nonce fails
228 228
 		$multiple_views = defined( 'GRAVITYVIEW_FUTURE_CORE_LOADED' ) ? gravityview()->views->count() > 1 : $gv_data->has_multiple_views();
229
-        if( $multiple_views && ! wp_verify_nonce( $_GET['edit'], self::$nonce_key ) ) {
230
-            do_action('gravityview_log_error', __METHOD__ . ': Nonce validation failed for the Edit Entry request; returning' );
229
+        if ( $multiple_views && ! wp_verify_nonce( $_GET[ 'edit' ], self::$nonce_key ) ) {
230
+            do_action( 'gravityview_log_error', __METHOD__ . ': Nonce validation failed for the Edit Entry request; returning' );
231 231
             return;
232 232
         }
233 233
 
234 234
         // Sorry, you're not allowed here.
235
-        if( false === $this->user_can_edit_entry( true ) ) {
236
-            do_action('gravityview_log_error', __METHOD__ . ': User is not allowed to edit this entry; returning', $this->entry );
235
+        if ( false === $this->user_can_edit_entry( true ) ) {
236
+            do_action( 'gravityview_log_error', __METHOD__ . ': User is not allowed to edit this entry; returning', $this->entry );
237 237
             return;
238 238
         }
239 239
 
@@ -253,9 +253,9 @@  discard block
 block discarded – undo
253 253
     private function print_scripts() {
254 254
         $gravityview_view = GravityView_View::getInstance();
255 255
 
256
-        wp_register_script( 'gform_gravityforms', GFCommon::get_base_url().'/js/gravityforms.js', array( 'jquery', 'gform_json', 'gform_placeholder', 'sack', 'plupload-all', 'gravityview-fe-view' ) );
256
+        wp_register_script( 'gform_gravityforms', GFCommon::get_base_url() . '/js/gravityforms.js', array( 'jquery', 'gform_json', 'gform_placeholder', 'sack', 'plupload-all', 'gravityview-fe-view' ) );
257 257
 
258
-        GFFormDisplay::enqueue_form_scripts($gravityview_view->getForm(), false);
258
+        GFFormDisplay::enqueue_form_scripts( $gravityview_view->getForm(), false );
259 259
 
260 260
         // Sack is required for images
261 261
         wp_print_scripts( array( 'sack', 'gform_gravityforms' ) );
@@ -267,32 +267,32 @@  discard block
 block discarded – undo
267 267
      */
268 268
     private function process_save() {
269 269
 
270
-        if( empty( $_POST ) || ! isset( $_POST['lid'] ) ) {
270
+        if ( empty( $_POST ) || ! isset( $_POST[ 'lid' ] ) ) {
271 271
             return;
272 272
         }
273 273
 
274 274
         // Make sure the entry, view, and form IDs are all correct
275 275
         $valid = $this->verify_nonce();
276 276
 
277
-        if( !$valid ) {
278
-            do_action('gravityview_log_error', __METHOD__ . ' Nonce validation failed.' );
277
+        if ( ! $valid ) {
278
+            do_action( 'gravityview_log_error', __METHOD__ . ' Nonce validation failed.' );
279 279
             return;
280 280
         }
281 281
 
282
-        if( $this->entry['id'] !== $_POST['lid'] ) {
283
-            do_action('gravityview_log_error', __METHOD__ . ' Entry ID did not match posted entry ID.' );
282
+        if ( $this->entry[ 'id' ] !== $_POST[ 'lid' ] ) {
283
+            do_action( 'gravityview_log_error', __METHOD__ . ' Entry ID did not match posted entry ID.' );
284 284
             return;
285 285
         }
286 286
 
287
-        do_action('gravityview_log_debug', __METHOD__ . ': $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
287
+        do_action( 'gravityview_log_debug', __METHOD__ . ': $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
288 288
 
289 289
         $this->process_save_process_files( $this->form_id );
290 290
 
291 291
         $this->validate();
292 292
 
293
-        if( $this->is_valid ) {
293
+        if ( $this->is_valid ) {
294 294
 
295
-            do_action('gravityview_log_debug', __METHOD__ . ': Submission is valid.' );
295
+            do_action( 'gravityview_log_debug', __METHOD__ . ': Submission is valid.' );
296 296
 
297 297
             /**
298 298
              * @hack This step is needed to unset the adminOnly from form fields, to add the calculation fields
@@ -302,22 +302,22 @@  discard block
 block discarded – undo
302 302
             /**
303 303
              * @hack to avoid the capability validation of the method save_lead for GF 1.9+
304 304
              */
305
-            unset( $_GET['page'] );
305
+            unset( $_GET[ 'page' ] );
306 306
 
307
-            $date_created = $this->entry['date_created'];
307
+            $date_created = $this->entry[ 'date_created' ];
308 308
 
309 309
             /**
310 310
              * @hack to force Gravity Forms to use $read_value_from_post in GFFormsModel::save_lead()
311 311
              * @since 1.17.2
312 312
              */
313
-            unset( $this->entry['date_created'] );
313
+            unset( $this->entry[ 'date_created' ] );
314 314
 
315 315
             GFFormsModel::save_lead( $form, $this->entry );
316 316
 
317 317
 	        // Delete the values for hidden inputs
318 318
 	        $this->unset_hidden_field_values();
319 319
             
320
-            $this->entry['date_created'] = $date_created;
320
+            $this->entry[ 'date_created' ] = $date_created;
321 321
 
322 322
             // Process calculation fields
323 323
             $this->update_calculation_fields();
@@ -337,10 +337,10 @@  discard block
 block discarded – undo
337 337
              * @param string $entry_id Numeric ID of the entry that was updated
338 338
              * @param GravityView_Edit_Entry_Render $this This object
339 339
              */
340
-            do_action( 'gravityview/edit_entry/after_update', $this->form, $this->entry['id'], $this );
340
+            do_action( 'gravityview/edit_entry/after_update', $this->form, $this->entry[ 'id' ], $this );
341 341
 
342 342
         } else {
343
-            do_action('gravityview_log_error', __METHOD__ . ': Submission is NOT valid.', $this->entry );
343
+            do_action( 'gravityview_log_error', __METHOD__ . ': Submission is NOT valid.', $this->entry );
344 344
         }
345 345
 
346 346
     } // process_save
@@ -359,10 +359,10 @@  discard block
 block discarded – undo
359 359
 
360 360
 		if ( method_exists( 'GFFormsModel', 'get_entry_meta_table_name' ) ) {
361 361
 			$entry_meta_table = GFFormsModel::get_entry_meta_table_name();
362
-			$current_fields = $wpdb->get_results( $wpdb->prepare( "SELECT meta_key, meta_value FROM $entry_meta_table WHERE entry_id=%d", $this->entry['id'] ) );
362
+			$current_fields = $wpdb->get_results( $wpdb->prepare( "SELECT meta_key, meta_value FROM $entry_meta_table WHERE entry_id=%d", $this->entry[ 'id' ] ) );
363 363
 		} else {
364 364
 			$lead_detail_table = GFFormsModel::get_lead_details_table_name();
365
-			$current_fields = $wpdb->get_results( $wpdb->prepare( "SELECT id, field_number FROM $lead_detail_table WHERE lead_id=%d", $this->entry['id'] ) );
365
+			$current_fields = $wpdb->get_results( $wpdb->prepare( "SELECT id, field_number FROM $lead_detail_table WHERE lead_id=%d", $this->entry[ 'id' ] ) );
366 366
 		}
367 367
 
368 368
 	    foreach ( $this->entry as $input_id => $field_value ) {
@@ -443,7 +443,7 @@  discard block
 block discarded – undo
443 443
 		}
444 444
 
445 445
 		/** No file is being uploaded. */
446
-		if ( empty( $_FILES[ $input_name ]['name'] ) ) {
446
+		if ( empty( $_FILES[ $input_name ][ 'name' ] ) ) {
447 447
 			/** So return the original upload */
448 448
 			return $entry[ $input_id ];
449 449
 		}
@@ -461,11 +461,11 @@  discard block
 block discarded – undo
461 461
      * @return mixed
462 462
      */
463 463
     public function modify_fileupload_settings( $plupload_init, $form_id, $instance ) {
464
-        if( ! $this->is_edit_entry() ) {
464
+        if ( ! $this->is_edit_entry() ) {
465 465
             return $plupload_init;
466 466
         }
467 467
 
468
-        $plupload_init['gf_vars']['max_files'] = 0;
468
+        $plupload_init[ 'gf_vars' ][ 'max_files' ] = 0;
469 469
 
470 470
         return $plupload_init;
471 471
     }
@@ -480,22 +480,22 @@  discard block
 block discarded – undo
480 480
         $form = $this->form;
481 481
 
482 482
 	    /** @var GF_Field $field */
483
-        foreach( $form['fields'] as $k => &$field ) {
483
+        foreach ( $form[ 'fields' ] as $k => &$field ) {
484 484
 
485 485
             /**
486 486
              * Remove the fields with calculation formulas before save to avoid conflicts with GF logic
487 487
              * @since 1.16.3
488 488
              * @var GF_Field $field
489 489
              */
490
-            if( $field->has_calculation() ) {
491
-                unset( $form['fields'][ $k ] );
490
+            if ( $field->has_calculation() ) {
491
+                unset( $form[ 'fields' ][ $k ] );
492 492
             }
493 493
 
494 494
             $field->adminOnly = false;
495 495
 
496
-            if( isset( $field->inputs ) && is_array( $field->inputs ) ) {
497
-                foreach( $field->inputs as $key => $input ) {
498
-                    $field->inputs[ $key ][ 'id' ] = (string)$input['id'];
496
+            if ( isset( $field->inputs ) && is_array( $field->inputs ) ) {
497
+                foreach ( $field->inputs as $key => $input ) {
498
+                    $field->inputs[ $key ][ 'id' ] = (string)$input[ 'id' ];
499 499
                 }
500 500
             }
501 501
         }
@@ -509,30 +509,30 @@  discard block
 block discarded – undo
509 509
         $update = false;
510 510
 
511 511
         // get the most up to date entry values
512
-        $entry = GFAPI::get_entry( $this->entry['id'] );
512
+        $entry = GFAPI::get_entry( $this->entry[ 'id' ] );
513 513
 
514
-        if( !empty( $this->fields_with_calculation ) ) {
514
+        if ( ! empty( $this->fields_with_calculation ) ) {
515 515
             $update = true;
516 516
             foreach ( $this->fields_with_calculation as $calc_field ) {
517 517
                 $inputs = $calc_field->get_entry_inputs();
518 518
                 if ( is_array( $inputs ) ) {
519 519
                     foreach ( $inputs as $input ) {
520
-                        $input_name = 'input_' . str_replace( '.', '_', $input['id'] );
521
-                        $entry[ strval( $input['id'] ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
520
+                        $input_name = 'input_' . str_replace( '.', '_', $input[ 'id' ] );
521
+                        $entry[ strval( $input[ 'id' ] ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry[ 'id' ], $entry );
522 522
                     }
523 523
                 } else {
524
-                    $input_name = 'input_' . str_replace( '.', '_', $calc_field->id);
525
-                    $entry[ strval( $calc_field->id ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
524
+                    $input_name = 'input_' . str_replace( '.', '_', $calc_field->id );
525
+                    $entry[ strval( $calc_field->id ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry[ 'id' ], $entry );
526 526
                 }
527 527
             }
528 528
 
529 529
         }
530 530
 
531
-        if( $update ) {
531
+        if ( $update ) {
532 532
 
533 533
             $return_entry = GFAPI::update_entry( $entry );
534 534
 
535
-            if( is_wp_error( $return_entry ) ) {
535
+            if ( is_wp_error( $return_entry ) ) {
536 536
                 do_action( 'gravityview_log_error', 'Updating the entry calculation fields failed', $return_entry );
537 537
             } else {
538 538
                 do_action( 'gravityview_log_debug', 'Updating the entry calculation fields succeeded' );
@@ -563,18 +563,18 @@  discard block
 block discarded – undo
563 563
 
564 564
         $input_name = 'input_' . $field_id;
565 565
 
566
-        if ( !empty( $_FILES[ $input_name ]['name'] ) ) {
566
+        if ( ! empty( $_FILES[ $input_name ][ 'name' ] ) ) {
567 567
 
568 568
             // We have a new image
569 569
 
570
-            $value = RGFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'] );
570
+            $value = RGFormsModel::prepare_value( $form, $field, $value, $input_name, $entry[ 'id' ] );
571 571
 
572 572
             $ary = ! empty( $value ) ? explode( '|:|', $value ) : array();
573 573
             $img_url = rgar( $ary, 0 );
574 574
 
575
-            $img_title       = count( $ary ) > 1 ? $ary[1] : '';
576
-            $img_caption     = count( $ary ) > 2 ? $ary[2] : '';
577
-            $img_description = count( $ary ) > 3 ? $ary[3] : '';
575
+            $img_title       = count( $ary ) > 1 ? $ary[ 1 ] : '';
576
+            $img_caption     = count( $ary ) > 2 ? $ary[ 2 ] : '';
577
+            $img_description = count( $ary ) > 3 ? $ary[ 3 ] : '';
578 578
 
579 579
             $image_meta = array(
580 580
                 'post_excerpt' => $img_caption,
@@ -583,7 +583,7 @@  discard block
 block discarded – undo
583 583
 
584 584
             //adding title only if it is not empty. It will default to the file name if it is not in the array
585 585
             if ( ! empty( $img_title ) ) {
586
-                $image_meta['post_title'] = $img_title;
586
+                $image_meta[ 'post_title' ] = $img_title;
587 587
             }
588 588
 
589 589
             /**
@@ -598,13 +598,13 @@  discard block
 block discarded – undo
598 598
                 set_post_thumbnail( $post_id, $media_id );
599 599
             }
600 600
 
601
-        } elseif ( !empty( $_POST[ $input_name ] ) && is_array( $value ) ) {
601
+        } elseif ( ! empty( $_POST[ $input_name ] ) && is_array( $value ) ) {
602 602
 
603 603
             $img_url = $_POST[ $input_name ];
604 604
 
605
-			$img_title       = rgar( $_POST, $input_name.'_1' );
606
-			$img_caption     = rgar( $_POST, $input_name .'_4' );
607
-			$img_description = rgar( $_POST, $input_name .'_7' );
605
+			$img_title       = rgar( $_POST, $input_name . '_1' );
606
+			$img_caption     = rgar( $_POST, $input_name . '_4' );
607
+			$img_description = rgar( $_POST, $input_name . '_7' );
608 608
 
609 609
 			$value = ! empty( $img_url ) ? $img_url . "|:|" . $img_title . "|:|" . $img_caption . "|:|" . $img_description : '';
610 610
 
@@ -642,16 +642,16 @@  discard block
 block discarded – undo
642 642
      */
643 643
     private function maybe_update_post_fields( $form ) {
644 644
 
645
-        if( empty( $this->entry['post_id'] ) ) {
645
+        if ( empty( $this->entry[ 'post_id' ] ) ) {
646 646
 	        do_action( 'gravityview_log_debug', __METHOD__ . ': This entry has no post fields. Continuing...' );
647 647
             return;
648 648
         }
649 649
 
650
-        $post_id = $this->entry['post_id'];
650
+        $post_id = $this->entry[ 'post_id' ];
651 651
 
652 652
         // Security check
653
-        if( false === GVCommon::has_cap( 'edit_post', $post_id ) ) {
654
-            do_action( 'gravityview_log_error', 'The current user does not have the ability to edit Post #'.$post_id );
653
+        if ( false === GVCommon::has_cap( 'edit_post', $post_id ) ) {
654
+            do_action( 'gravityview_log_error', 'The current user does not have the ability to edit Post #' . $post_id );
655 655
             return;
656 656
         }
657 657
 
@@ -663,25 +663,25 @@  discard block
 block discarded – undo
663 663
 
664 664
             $field = RGFormsModel::get_field( $form, $field_id );
665 665
 
666
-            if( ! $field ) {
666
+            if ( ! $field ) {
667 667
                 continue;
668 668
             }
669 669
 
670
-            if( GFCommon::is_post_field( $field ) && 'post_category' !== $field->type ) {
670
+            if ( GFCommon::is_post_field( $field ) && 'post_category' !== $field->type ) {
671 671
 
672 672
                 // Get the value of the field, including $_POSTed value
673 673
                 $value = RGFormsModel::get_field_value( $field );
674 674
 
675 675
                 // Use temporary entry variable, to make values available to fill_post_template() and update_post_image()
676 676
                 $entry_tmp = $this->entry;
677
-                $entry_tmp["{$field_id}"] = $value;
677
+                $entry_tmp[ "{$field_id}" ] = $value;
678 678
 
679
-                switch( $field->type ) {
679
+                switch ( $field->type ) {
680 680
 
681 681
                     case 'post_title':
682 682
                         $post_title = $value;
683
-                        if( rgar( $form, 'postTitleTemplateEnabled' ) ) {
684
-                            $post_title = $this->fill_post_template( $form['postTitleTemplate'], $form, $entry_tmp );
683
+                        if ( rgar( $form, 'postTitleTemplateEnabled' ) ) {
684
+                            $post_title = $this->fill_post_template( $form[ 'postTitleTemplate' ], $form, $entry_tmp );
685 685
                         }
686 686
                         $updated_post->post_title = $post_title;
687 687
                         $updated_post->post_name  = $post_title;
@@ -690,8 +690,8 @@  discard block
 block discarded – undo
690 690
 
691 691
                     case 'post_content':
692 692
                         $post_content = $value;
693
-                        if( rgar( $form, 'postContentTemplateEnabled' ) ) {
694
-                            $post_content = $this->fill_post_template( $form['postContentTemplate'], $form, $entry_tmp, true );
693
+                        if ( rgar( $form, 'postContentTemplateEnabled' ) ) {
694
+                            $post_content = $this->fill_post_template( $form[ 'postContentTemplate' ], $form, $entry_tmp, true );
695 695
                         }
696 696
                         $updated_post->post_content = $post_content;
697 697
                         unset( $post_content );
@@ -709,12 +709,12 @@  discard block
 block discarded – undo
709 709
 							$value = $value[ $field_id ];
710 710
 						}
711 711
 
712
-                        if( ! empty( $field->customFieldTemplateEnabled ) ) {
712
+                        if ( ! empty( $field->customFieldTemplateEnabled ) ) {
713 713
                             $value = $this->fill_post_template( $field->customFieldTemplate, $form, $entry_tmp, true );
714 714
                         }
715 715
 
716 716
 	                    if ( $this->is_field_json_encoded( $field ) && ! is_string( $value ) ) {
717
-		                    $value = function_exists('wp_json_encode') ? wp_json_encode( $value ) : json_encode( $value );
717
+		                    $value = function_exists( 'wp_json_encode' ) ? wp_json_encode( $value ) : json_encode( $value );
718 718
 	                    }
719 719
 
720 720
                         update_post_meta( $post_id, $field->postCustomFieldName, $value );
@@ -727,7 +727,7 @@  discard block
 block discarded – undo
727 727
                 }
728 728
 
729 729
                 // update entry after
730
-                $this->entry["{$field_id}"] = $value;
730
+                $this->entry[ "{$field_id}" ] = $value;
731 731
 
732 732
                 $update_entry = true;
733 733
 
@@ -736,25 +736,25 @@  discard block
 block discarded – undo
736 736
 
737 737
         }
738 738
 
739
-        if( $update_entry ) {
739
+        if ( $update_entry ) {
740 740
 
741 741
             $return_entry = GFAPI::update_entry( $this->entry );
742 742
 
743
-            if( is_wp_error( $return_entry ) ) {
743
+            if ( is_wp_error( $return_entry ) ) {
744 744
                do_action( 'gravityview_log_error', 'Updating the entry post fields failed', array( '$this->entry' => $this->entry, '$return_entry' => $return_entry ) );
745 745
             } else {
746
-                do_action( 'gravityview_log_debug', 'Updating the entry post fields for post #'.$post_id.' succeeded' );
746
+                do_action( 'gravityview_log_debug', 'Updating the entry post fields for post #' . $post_id . ' succeeded' );
747 747
             }
748 748
 
749 749
         }
750 750
 
751 751
         $return_post = wp_update_post( $updated_post, true );
752 752
 
753
-        if( is_wp_error( $return_post ) ) {
753
+        if ( is_wp_error( $return_post ) ) {
754 754
             $return_post->add_data( $updated_post, '$updated_post' );
755 755
             do_action( 'gravityview_log_error', 'Updating the post content failed', compact( 'updated_post', 'return_post' ) );
756 756
         } else {
757
-            do_action( 'gravityview_log_debug', 'Updating the post content for post #'.$post_id.' succeeded', $updated_post );
757
+            do_action( 'gravityview_log_debug', 'Updating the post content for post #' . $post_id . ' succeeded', $updated_post );
758 758
         }
759 759
     }
760 760
 
@@ -772,7 +772,7 @@  discard block
 block discarded – undo
772 772
         $input_type = RGFormsModel::get_input_type( $field );
773 773
 
774 774
 	    // Only certain custom field types are supported
775
-	    switch( $input_type ) {
775
+	    switch ( $input_type ) {
776 776
 		    case 'fileupload':
777 777
 		    case 'list':
778 778
 		    case 'multiselect':
@@ -809,7 +809,7 @@  discard block
 block discarded – undo
809 809
         $output = GFCommon::replace_variables( $output, $form, $entry, false, false, false );
810 810
 
811 811
         // replace conditional shortcodes
812
-        if( $do_shortcode ) {
812
+        if ( $do_shortcode ) {
813 813
             $output = do_shortcode( $output );
814 814
         }
815 815
 
@@ -828,19 +828,19 @@  discard block
 block discarded – undo
828 828
      */
829 829
     private function after_update() {
830 830
 
831
-        do_action( 'gform_after_update_entry', $this->form, $this->entry['id'], self::$original_entry );
832
-        do_action( "gform_after_update_entry_{$this->form['id']}", $this->form, $this->entry['id'], self::$original_entry );
831
+        do_action( 'gform_after_update_entry', $this->form, $this->entry[ 'id' ], self::$original_entry );
832
+        do_action( "gform_after_update_entry_{$this->form[ 'id' ]}", $this->form, $this->entry[ 'id' ], self::$original_entry );
833 833
 
834 834
         // Re-define the entry now that we've updated it.
835
-        $entry = RGFormsModel::get_lead( $this->entry['id'] );
835
+        $entry = RGFormsModel::get_lead( $this->entry[ 'id' ] );
836 836
 
837 837
         $entry = GFFormsModel::set_entry_meta( $entry, $this->form );
838 838
 
839 839
 		if ( ! method_exists( 'GFFormsModel', 'get_entry_meta_table_name' ) ) {
840 840
 			// We need to clear the cache because Gravity Forms caches the field values, which
841 841
 			// we have just updated.
842
-			foreach ($this->form['fields'] as $key => $field) {
843
-				GFFormsModel::refresh_lead_field_value( $entry['id'], $field->id );
842
+			foreach ( $this->form[ 'fields' ] as $key => $field ) {
843
+				GFFormsModel::refresh_lead_field_value( $entry[ 'id' ], $field->id );
844 844
 			}
845 845
 		}
846 846
 
@@ -859,7 +859,7 @@  discard block
 block discarded – undo
859 859
 
860 860
         <div class="gv-edit-entry-wrapper"><?php
861 861
 
862
-            $javascript = gravityview_ob_include( GravityView_Edit_Entry::$file .'/partials/inline-javascript.php', $this );
862
+            $javascript = gravityview_ob_include( GravityView_Edit_Entry::$file . '/partials/inline-javascript.php', $this );
863 863
 
864 864
             /**
865 865
              * Fixes weird wpautop() issue
@@ -875,7 +875,7 @@  discard block
 block discarded – undo
875 875
                      * @param string $edit_entry_title Modify the "Edit Entry" title
876 876
                      * @param GravityView_Edit_Entry_Render $this This object
877 877
                      */
878
-                    $edit_entry_title = apply_filters('gravityview_edit_entry_title', __('Edit Entry', 'gravityview'), $this );
878
+                    $edit_entry_title = apply_filters( 'gravityview_edit_entry_title', __( 'Edit Entry', 'gravityview' ), $this );
879 879
 
880 880
                     echo esc_attr( $edit_entry_title );
881 881
             ?></span>
@@ -921,20 +921,20 @@  discard block
 block discarded – undo
921 921
      */
922 922
     private function maybe_print_message() {
923 923
 
924
-        if( rgpost('action') === 'update' ) {
924
+        if ( rgpost( 'action' ) === 'update' ) {
925 925
 
926 926
             $back_link = esc_url( remove_query_arg( array( 'page', 'view', 'edit' ) ) );
927 927
 
928
-            if( ! $this->is_valid ){
928
+            if ( ! $this->is_valid ) {
929 929
 
930 930
                 // Keeping this compatible with Gravity Forms.
931
-                $validation_message = "<div class='validation_error'>" . __('There was a problem with your submission.', 'gravityview') . " " . __('Errors have been highlighted below.', 'gravityview') . "</div>";
932
-                $message = apply_filters("gform_validation_message_{$this->form['id']}", apply_filters("gform_validation_message", $validation_message, $this->form), $this->form);
931
+                $validation_message = "<div class='validation_error'>" . __( 'There was a problem with your submission.', 'gravityview' ) . " " . __( 'Errors have been highlighted below.', 'gravityview' ) . "</div>";
932
+                $message = apply_filters( "gform_validation_message_{$this->form[ 'id' ]}", apply_filters( "gform_validation_message", $validation_message, $this->form ), $this->form );
933 933
 
934
-                echo GVCommon::generate_notice( $message , 'gv-error' );
934
+                echo GVCommon::generate_notice( $message, 'gv-error' );
935 935
 
936 936
             } else {
937
-                $entry_updated_message = sprintf( esc_attr__('Entry Updated. %sReturn to Entry%s', 'gravityview'), '<a href="'. $back_link .'">', '</a>' );
937
+                $entry_updated_message = sprintf( esc_attr__( 'Entry Updated. %sReturn to Entry%s', 'gravityview' ), '<a href="' . $back_link . '">', '</a>' );
938 938
 
939 939
                 /**
940 940
                  * @filter `gravityview/edit_entry/success` Modify the edit entry success message (including the anchor link)
@@ -944,7 +944,7 @@  discard block
 block discarded – undo
944 944
                  * @param array $entry Gravity Forms entry array
945 945
                  * @param string $back_link URL to return to the original entry. @since 1.6
946 946
                  */
947
-                $message = apply_filters( 'gravityview/edit_entry/success', $entry_updated_message , $this->view_id, $this->entry, $back_link );
947
+                $message = apply_filters( 'gravityview/edit_entry/success', $entry_updated_message, $this->view_id, $this->entry, $back_link );
948 948
 
949 949
                 echo GVCommon::generate_notice( $message );
950 950
             }
@@ -968,21 +968,21 @@  discard block
 block discarded – undo
968 968
          */
969 969
         do_action( 'gravityview/edit-entry/render/before', $this );
970 970
 
971
-        add_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields'), 5000, 3 );
972
-        add_filter( 'gform_submit_button', array( $this, 'render_form_buttons') );
971
+        add_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields' ), 5000, 3 );
972
+        add_filter( 'gform_submit_button', array( $this, 'render_form_buttons' ) );
973 973
         add_filter( 'gform_disable_view_counter', '__return_true' );
974 974
 
975 975
         add_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5, 5 );
976 976
         add_filter( 'gform_field_input', array( $this, 'modify_edit_field_input' ), 10, 5 );
977 977
 
978 978
         // We need to remove the fake $_GET['page'] arg to avoid rendering form as if in admin.
979
-        unset( $_GET['page'] );
979
+        unset( $_GET[ 'page' ] );
980 980
 
981 981
         // TODO: Verify multiple-page forms
982 982
 
983 983
         ob_start(); // Prevent PHP warnings possibly caused by prefilling list fields for conditional logic
984 984
 
985
-        $html = GFFormDisplay::get_form( $this->form['id'], false, false, true, $this->entry );
985
+        $html = GFFormDisplay::get_form( $this->form[ 'id' ], false, false, true, $this->entry );
986 986
 
987 987
         ob_get_clean();
988 988
 
@@ -1008,7 +1008,7 @@  discard block
 block discarded – undo
1008 1008
      * @return string
1009 1009
      */
1010 1010
     public function render_form_buttons() {
1011
-        return gravityview_ob_include( GravityView_Edit_Entry::$file .'/partials/form-buttons.php', $this );
1011
+        return gravityview_ob_include( GravityView_Edit_Entry::$file . '/partials/form-buttons.php', $this );
1012 1012
     }
1013 1013
 
1014 1014
 
@@ -1028,10 +1028,10 @@  discard block
 block discarded – undo
1028 1028
     public function filter_modify_form_fields( $form, $ajax = false, $field_values = '' ) {
1029 1029
 
1030 1030
         // In case we have validated the form, use it to inject the validation results into the form render
1031
-        if( isset( $this->form_after_validation ) ) {
1031
+        if ( isset( $this->form_after_validation ) ) {
1032 1032
             $form = $this->form_after_validation;
1033 1033
         } else {
1034
-            $form['fields'] = $this->get_configured_edit_fields( $form, $this->view_id );
1034
+            $form[ 'fields' ] = $this->get_configured_edit_fields( $form, $this->view_id );
1035 1035
         }
1036 1036
 
1037 1037
         $form = $this->filter_conditional_logic( $form );
@@ -1039,8 +1039,8 @@  discard block
 block discarded – undo
1039 1039
         $form = $this->prefill_conditional_logic( $form );
1040 1040
 
1041 1041
         // for now we don't support Save and Continue feature.
1042
-        if( ! self::$supports_save_and_continue ) {
1043
-	        unset( $form['save'] );
1042
+        if ( ! self::$supports_save_and_continue ) {
1043
+	        unset( $form[ 'save' ] );
1044 1044
         }
1045 1045
 
1046 1046
         return $form;
@@ -1061,29 +1061,29 @@  discard block
 block discarded – undo
1061 1061
      */
1062 1062
     public function verify_user_can_edit_post( $field_content = '', $field, $value, $lead_id = 0, $form_id ) {
1063 1063
 
1064
-        if( GFCommon::is_post_field( $field ) ) {
1064
+        if ( GFCommon::is_post_field( $field ) ) {
1065 1065
 
1066 1066
             $message = null;
1067 1067
 
1068 1068
             // First, make sure they have the capability to edit the post.
1069
-            if( false === current_user_can( 'edit_post', $this->entry['post_id'] ) ) {
1069
+            if ( false === current_user_can( 'edit_post', $this->entry[ 'post_id' ] ) ) {
1070 1070
 
1071 1071
                 /**
1072 1072
                  * @filter `gravityview/edit_entry/unsupported_post_field_text` Modify the message when someone isn't able to edit a post
1073 1073
                  * @param string $message The existing "You don't have permission..." text
1074 1074
                  */
1075
-                $message = apply_filters('gravityview/edit_entry/unsupported_post_field_text', __('You don&rsquo;t have permission to edit this post.', 'gravityview') );
1075
+                $message = apply_filters( 'gravityview/edit_entry/unsupported_post_field_text', __( 'You don&rsquo;t have permission to edit this post.', 'gravityview' ) );
1076 1076
 
1077
-            } elseif( null === get_post( $this->entry['post_id'] ) ) {
1077
+            } elseif ( null === get_post( $this->entry[ 'post_id' ] ) ) {
1078 1078
                 /**
1079 1079
                  * @filter `gravityview/edit_entry/no_post_text` Modify the message when someone is editing an entry attached to a post that no longer exists
1080 1080
                  * @param string $message The existing "This field is not editable; the post no longer exists." text
1081 1081
                  */
1082
-                $message = apply_filters('gravityview/edit_entry/no_post_text', __('This field is not editable; the post no longer exists.', 'gravityview' ) );
1082
+                $message = apply_filters( 'gravityview/edit_entry/no_post_text', __( 'This field is not editable; the post no longer exists.', 'gravityview' ) );
1083 1083
             }
1084 1084
 
1085
-            if( $message ) {
1086
-                $field_content = sprintf('<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) );
1085
+            if ( $message ) {
1086
+                $field_content = sprintf( '<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) );
1087 1087
             }
1088 1088
         }
1089 1089
 
@@ -1108,8 +1108,8 @@  discard block
 block discarded – undo
1108 1108
 
1109 1109
         // If the form has been submitted, then we don't need to pre-fill the values,
1110 1110
         // Except for fileupload type and when a field input is overridden- run always!!
1111
-        if(
1112
-            ( $this->is_edit_entry_submission() && !in_array( $field->type, array( 'fileupload', 'post_image' ) ) )
1111
+        if (
1112
+            ( $this->is_edit_entry_submission() && ! in_array( $field->type, array( 'fileupload', 'post_image' ) ) )
1113 1113
             && false === ( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) )
1114 1114
             && ! GFCommon::is_product_field( $field->type )
1115 1115
             || ! empty( $field_content )
@@ -1129,7 +1129,7 @@  discard block
 block discarded – undo
1129 1129
 	    $return = null;
1130 1130
 
1131 1131
         /** @var GravityView_Field $gv_field */
1132
-        if( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) {
1132
+        if ( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) {
1133 1133
             $return = $gv_field->get_field_input( $this->form, $field_value, $this->entry, $field );
1134 1134
         } else {
1135 1135
 	        $return = $field->get_field_input( $this->form, $field_value, $this->entry );
@@ -1138,7 +1138,7 @@  discard block
 block discarded – undo
1138 1138
 	    // If there was output, it's an error
1139 1139
 	    $warnings = ob_get_clean();
1140 1140
 
1141
-	    if( !empty( $warnings ) ) {
1141
+	    if ( ! empty( $warnings ) ) {
1142 1142
 		    do_action( 'gravityview_log_error', __METHOD__ . $warnings, $field_value );
1143 1143
 	    }
1144 1144
 
@@ -1163,7 +1163,7 @@  discard block
 block discarded – undo
1163 1163
         $override_saved_value = apply_filters( 'gravityview/edit_entry/pre_populate/override', false, $field );
1164 1164
 
1165 1165
         // We're dealing with multiple inputs (e.g. checkbox) but not time or date (as it doesn't store data in input IDs)
1166
-        if( isset( $field->inputs ) && is_array( $field->inputs ) && !in_array( $field->type, array( 'time', 'date' ) ) ) {
1166
+        if ( isset( $field->inputs ) && is_array( $field->inputs ) && ! in_array( $field->type, array( 'time', 'date' ) ) ) {
1167 1167
 
1168 1168
             $field_value = array();
1169 1169
 
@@ -1172,10 +1172,10 @@  discard block
 block discarded – undo
1172 1172
 
1173 1173
             foreach ( (array)$field->inputs as $input ) {
1174 1174
 
1175
-                $input_id = strval( $input['id'] );
1175
+                $input_id = strval( $input[ 'id' ] );
1176 1176
                 
1177 1177
                 if ( isset( $this->entry[ $input_id ] ) && ! gv_empty( $this->entry[ $input_id ], false, false ) ) {
1178
-                    $field_value[ $input_id ] =  'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ];
1178
+                    $field_value[ $input_id ] = 'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ];
1179 1179
                     $allow_pre_populated = false;
1180 1180
                 }
1181 1181
 
@@ -1183,7 +1183,7 @@  discard block
 block discarded – undo
1183 1183
 
1184 1184
             $pre_value = $field->get_value_submission( array(), false );
1185 1185
 
1186
-            $field_value = ! $allow_pre_populated && ! ( $override_saved_value && !gv_empty( $pre_value, false, false ) ) ? $field_value : $pre_value;
1186
+            $field_value = ! $allow_pre_populated && ! ( $override_saved_value && ! gv_empty( $pre_value, false, false ) ) ? $field_value : $pre_value;
1187 1187
 
1188 1188
         } else {
1189 1189
 
@@ -1194,13 +1194,13 @@  discard block
 block discarded – undo
1194 1194
 
1195 1195
             // saved field entry value (if empty, fallback to the pre-populated value, if exists)
1196 1196
             // or pre-populated value if not empty and set to override saved value
1197
-            $field_value = !gv_empty( $this->entry[ $id ], false, false ) && ! ( $override_saved_value && !gv_empty( $pre_value, false, false ) ) ? $this->entry[ $id ] : $pre_value;
1197
+            $field_value = ! gv_empty( $this->entry[ $id ], false, false ) && ! ( $override_saved_value && ! gv_empty( $pre_value, false, false ) ) ? $this->entry[ $id ] : $pre_value;
1198 1198
 
1199 1199
             // in case field is post_category but inputType is select, multi-select or radio, convert value into array of category IDs.
1200
-            if ( 'post_category' === $field->type && !gv_empty( $field_value, false, false ) ) {
1200
+            if ( 'post_category' === $field->type && ! gv_empty( $field_value, false, false ) ) {
1201 1201
                 $categories = array();
1202 1202
                 foreach ( explode( ',', $field_value ) as $cat_string ) {
1203
-                    $categories[] = GFCommon::format_post_category( $cat_string, true );
1203
+                    $categories[ ] = GFCommon::format_post_category( $cat_string, true );
1204 1204
                 }
1205 1205
                 $field_value = 'multiselect' === $field->get_input_type() ? $categories : implode( '', $categories );
1206 1206
             }
@@ -1228,7 +1228,7 @@  discard block
 block discarded – undo
1228 1228
 	     * @param GF_Field $field Gravity Forms field object
1229 1229
 	     * @param GravityView_Edit_Entry_Render $this Current object
1230 1230
 	     */
1231
-	    $field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type , $field_value, $field, $this );
1231
+	    $field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type, $field_value, $field, $this );
1232 1232
 
1233 1233
         return $field_value;
1234 1234
     }
@@ -1245,12 +1245,12 @@  discard block
 block discarded – undo
1245 1245
      */
1246 1246
     public function gform_pre_validation( $form ) {
1247 1247
 
1248
-        if( ! $this->verify_nonce() ) {
1248
+        if ( ! $this->verify_nonce() ) {
1249 1249
             return $form;
1250 1250
         }
1251 1251
 
1252 1252
         // Fix PHP warning regarding undefined index.
1253
-        foreach ( $form['fields'] as &$field) {
1253
+        foreach ( $form[ 'fields' ] as &$field ) {
1254 1254
 
1255 1255
             // This is because we're doing admin form pretending to be front-end, so Gravity Forms
1256 1256
             // expects certain field array items to be set.
@@ -1258,7 +1258,7 @@  discard block
 block discarded – undo
1258 1258
 	            $field->{$key} = isset( $field->{$key} ) ? $field->{$key} : NULL;
1259 1259
             }
1260 1260
 
1261
-            switch( RGFormsModel::get_input_type( $field ) ) {
1261
+            switch ( RGFormsModel::get_input_type( $field ) ) {
1262 1262
 
1263 1263
                 /**
1264 1264
                  * this whole fileupload hack is because in the admin, Gravity Forms simply doesn't update any fileupload field if it's empty, but it DOES in the frontend.
@@ -1272,37 +1272,37 @@  discard block
 block discarded – undo
1272 1272
                     // Set the previous value
1273 1273
                     $entry = $this->get_entry();
1274 1274
 
1275
-                    $input_name = 'input_'.$field->id;
1276
-                    $form_id = $form['id'];
1275
+                    $input_name = 'input_' . $field->id;
1276
+                    $form_id = $form[ 'id' ];
1277 1277
 
1278 1278
                     $value = NULL;
1279 1279
 
1280 1280
                     // Use the previous entry value as the default.
1281
-                    if( isset( $entry[ $field->id ] ) ) {
1281
+                    if ( isset( $entry[ $field->id ] ) ) {
1282 1282
                         $value = $entry[ $field->id ];
1283 1283
                     }
1284 1284
 
1285 1285
                     // If this is a single upload file
1286
-                    if( !empty( $_FILES[ $input_name ] ) && !empty( $_FILES[ $input_name ]['name'] ) ) {
1287
-                        $file_path = GFFormsModel::get_file_upload_path( $form['id'], $_FILES[ $input_name ]['name'] );
1288
-                        $value = $file_path['url'];
1286
+                    if ( ! empty( $_FILES[ $input_name ] ) && ! empty( $_FILES[ $input_name ][ 'name' ] ) ) {
1287
+                        $file_path = GFFormsModel::get_file_upload_path( $form[ 'id' ], $_FILES[ $input_name ][ 'name' ] );
1288
+                        $value = $file_path[ 'url' ];
1289 1289
 
1290 1290
                     } else {
1291 1291
 
1292 1292
                         // Fix PHP warning on line 1498 of form_display.php for post_image fields
1293 1293
                         // Fix PHP Notice:  Undefined index:  size in form_display.php on line 1511
1294
-                        $_FILES[ $input_name ] = array('name' => '', 'size' => '' );
1294
+                        $_FILES[ $input_name ] = array( 'name' => '', 'size' => '' );
1295 1295
 
1296 1296
                     }
1297 1297
 
1298
-                    if( rgar($field, "multipleFiles") ) {
1298
+                    if ( rgar( $field, "multipleFiles" ) ) {
1299 1299
 
1300 1300
                         // If there are fresh uploads, process and merge them.
1301 1301
                         // Otherwise, use the passed values, which should be json-encoded array of URLs
1302
-                        if( isset( GFFormsModel::$uploaded_files[$form_id][$input_name] ) ) {
1302
+                        if ( isset( GFFormsModel::$uploaded_files[ $form_id ][ $input_name ] ) ) {
1303 1303
                             $value = empty( $value ) ? '[]' : $value;
1304 1304
                             $value = stripslashes_deep( $value );
1305
-                            $value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'], array());
1305
+                            $value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry[ 'id' ], array() );
1306 1306
                         }
1307 1307
 
1308 1308
                     } else {
@@ -1320,8 +1320,8 @@  discard block
 block discarded – undo
1320 1320
 
1321 1321
                 case 'number':
1322 1322
                     // Fix "undefined index" issue at line 1286 in form_display.php
1323
-                    if( !isset( $_POST['input_'.$field->id ] ) ) {
1324
-                        $_POST['input_'.$field->id ] = NULL;
1323
+                    if ( ! isset( $_POST[ 'input_' . $field->id ] ) ) {
1324
+                        $_POST[ 'input_' . $field->id ] = NULL;
1325 1325
                     }
1326 1326
                     break;
1327 1327
             }
@@ -1358,7 +1358,7 @@  discard block
 block discarded – undo
1358 1358
          * You can enter whatever you want!
1359 1359
          * We try validating, and customize the results using `self::custom_validation()`
1360 1360
          */
1361
-        add_filter( 'gform_validation_'. $this->form_id, array( $this, 'custom_validation' ), 10, 4);
1361
+        add_filter( 'gform_validation_' . $this->form_id, array( $this, 'custom_validation' ), 10, 4 );
1362 1362
 
1363 1363
         // Needed by the validate funtion
1364 1364
         $failed_validation_page = NULL;
@@ -1366,14 +1366,14 @@  discard block
 block discarded – undo
1366 1366
 
1367 1367
         // Prevent entry limit from running when editing an entry, also
1368 1368
         // prevent form scheduling from preventing editing
1369
-        unset( $this->form['limitEntries'], $this->form['scheduleForm'] );
1369
+        unset( $this->form[ 'limitEntries' ], $this->form[ 'scheduleForm' ] );
1370 1370
 
1371 1371
         // Hide fields depending on Edit Entry settings
1372
-        $this->form['fields'] = $this->get_configured_edit_fields( $this->form, $this->view_id );
1372
+        $this->form[ 'fields' ] = $this->get_configured_edit_fields( $this->form, $this->view_id );
1373 1373
 
1374 1374
         $this->is_valid = GFFormDisplay::validate( $this->form, $field_values, 1, $failed_validation_page );
1375 1375
 
1376
-        remove_filter( 'gform_validation_'. $this->form_id, array( $this, 'custom_validation' ), 10 );
1376
+        remove_filter( 'gform_validation_' . $this->form_id, array( $this, 'custom_validation' ), 10 );
1377 1377
     }
1378 1378
 
1379 1379
 
@@ -1390,13 +1390,13 @@  discard block
 block discarded – undo
1390 1390
      */
1391 1391
     public function custom_validation( $validation_results ) {
1392 1392
 
1393
-        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results: ', $validation_results );
1393
+        do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results: ', $validation_results );
1394 1394
 
1395
-        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
1395
+        do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
1396 1396
 
1397 1397
         $gv_valid = true;
1398 1398
 
1399
-        foreach ( $validation_results['form']['fields'] as $key => &$field ) {
1399
+        foreach ( $validation_results[ 'form' ][ 'fields' ] as $key => &$field ) {
1400 1400
 
1401 1401
             $value = RGFormsModel::get_field_value( $field );
1402 1402
             $field_type = RGFormsModel::get_input_type( $field );
@@ -1409,35 +1409,35 @@  discard block
 block discarded – undo
1409 1409
                 case 'post_image':
1410 1410
 
1411 1411
                     // in case nothing is uploaded but there are already files saved
1412
-                    if( !empty( $field->failed_validation ) && !empty( $field->isRequired ) && !empty( $value ) ) {
1412
+                    if ( ! empty( $field->failed_validation ) && ! empty( $field->isRequired ) && ! empty( $value ) ) {
1413 1413
                         $field->failed_validation = false;
1414 1414
                         unset( $field->validation_message );
1415 1415
                     }
1416 1416
 
1417 1417
                     // validate if multi file upload reached max number of files [maxFiles] => 2
1418
-                    if( rgobj( $field, 'maxFiles') && rgobj( $field, 'multipleFiles') ) {
1418
+                    if ( rgobj( $field, 'maxFiles' ) && rgobj( $field, 'multipleFiles' ) ) {
1419 1419
 
1420 1420
                         $input_name = 'input_' . $field->id;
1421 1421
                         //uploaded
1422
-                        $file_names = isset( GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] : array();
1422
+                        $file_names = isset( GFFormsModel::$uploaded_files[ $validation_results[ 'form' ][ 'id' ] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results[ 'form' ][ 'id' ] ][ $input_name ] : array();
1423 1423
 
1424 1424
                         //existent
1425 1425
                         $entry = $this->get_entry();
1426 1426
                         $value = NULL;
1427
-                        if( isset( $entry[ $field->id ] ) ) {
1427
+                        if ( isset( $entry[ $field->id ] ) ) {
1428 1428
                             $value = json_decode( $entry[ $field->id ], true );
1429 1429
                         }
1430 1430
 
1431 1431
                         // count uploaded files and existent entry files
1432 1432
                         $count_files = count( $file_names ) + count( $value );
1433 1433
 
1434
-                        if( $count_files > $field->maxFiles ) {
1434
+                        if ( $count_files > $field->maxFiles ) {
1435 1435
                             $field->validation_message = __( 'Maximum number of files reached', 'gravityview' );
1436 1436
                             $field->failed_validation = 1;
1437 1437
                             $gv_valid = false;
1438 1438
 
1439 1439
                             // in case of error make sure the newest upload files are removed from the upload input
1440
-                            GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ] = null;
1440
+                            GFFormsModel::$uploaded_files[ $validation_results[ 'form' ][ 'id' ] ] = null;
1441 1441
                         }
1442 1442
 
1443 1443
                     }
@@ -1448,7 +1448,7 @@  discard block
 block discarded – undo
1448 1448
             }
1449 1449
 
1450 1450
             // This field has failed validation.
1451
-            if( !empty( $field->failed_validation ) ) {
1451
+            if ( ! empty( $field->failed_validation ) ) {
1452 1452
 
1453 1453
                 do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field is invalid.', array( 'field' => $field, 'value' => $value ) );
1454 1454
 
@@ -1466,32 +1466,32 @@  discard block
 block discarded – undo
1466 1466
                 }
1467 1467
 
1468 1468
                 // You can't continue inside a switch, so we do it after.
1469
-                if( empty( $field->failed_validation ) ) {
1469
+                if ( empty( $field->failed_validation ) ) {
1470 1470
                     continue;
1471 1471
                 }
1472 1472
 
1473 1473
                 // checks if the No Duplicates option is not validating entry against itself, since
1474 1474
                 // we're editing a stored entry, it would also assume it's a duplicate.
1475
-                if( !empty( $field->noDuplicates ) ) {
1475
+                if ( ! empty( $field->noDuplicates ) ) {
1476 1476
 
1477 1477
                     $entry = $this->get_entry();
1478 1478
 
1479 1479
                     // If the value of the entry is the same as the stored value
1480 1480
                     // Then we can assume it's not a duplicate, it's the same.
1481
-                    if( !empty( $entry ) && $value == $entry[ $field->id ] ) {
1481
+                    if ( ! empty( $entry ) && $value == $entry[ $field->id ] ) {
1482 1482
                         //if value submitted was not changed, then don't validate
1483 1483
                         $field->failed_validation = false;
1484 1484
 
1485 1485
                         unset( $field->validation_message );
1486 1486
 
1487
-                        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', $entry );
1487
+                        do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', $entry );
1488 1488
 
1489 1489
                         continue;
1490 1490
                     }
1491 1491
                 }
1492 1492
 
1493 1493
                 // if here then probably we are facing the validation 'At least one field must be filled out'
1494
-                if( GFFormDisplay::is_empty( $field, $this->form_id  ) && empty( $field->isRequired ) ) {
1494
+                if ( GFFormDisplay::is_empty( $field, $this->form_id ) && empty( $field->isRequired ) ) {
1495 1495
                     unset( $field->validation_message );
1496 1496
 	                $field->validation_message = false;
1497 1497
                     continue;
@@ -1503,12 +1503,12 @@  discard block
 block discarded – undo
1503 1503
 
1504 1504
         }
1505 1505
 
1506
-        $validation_results['is_valid'] = $gv_valid;
1506
+        $validation_results[ 'is_valid' ] = $gv_valid;
1507 1507
 
1508
-        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results.', $validation_results );
1508
+        do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results.', $validation_results );
1509 1509
 
1510 1510
         // We'll need this result when rendering the form ( on GFFormDisplay::get_form )
1511
-        $this->form_after_validation = $validation_results['form'];
1511
+        $this->form_after_validation = $validation_results[ 'form' ];
1512 1512
 
1513 1513
         return $validation_results;
1514 1514
     }
@@ -1521,7 +1521,7 @@  discard block
 block discarded – undo
1521 1521
      */
1522 1522
     public function get_entry() {
1523 1523
 
1524
-        if( empty( $this->entry ) ) {
1524
+        if ( empty( $this->entry ) ) {
1525 1525
             // Get the database value of the entry that's being edited
1526 1526
             $this->entry = gravityview_get_entry( GravityView_frontend::is_single_entry() );
1527 1527
         }
@@ -1556,10 +1556,10 @@  discard block
 block discarded – undo
1556 1556
 		}
1557 1557
 
1558 1558
         // If edit tab not yet configured, show all fields
1559
-        $edit_fields = !empty( $properties['edit_edit-fields'] ) ? $properties['edit_edit-fields'] : NULL;
1559
+        $edit_fields = ! empty( $properties[ 'edit_edit-fields' ] ) ? $properties[ 'edit_edit-fields' ] : NULL;
1560 1560
 
1561 1561
         // Hide fields depending on admin settings
1562
-        $fields = $this->filter_fields( $form['fields'], $edit_fields );
1562
+        $fields = $this->filter_fields( $form[ 'fields' ], $edit_fields );
1563 1563
 
1564 1564
 	    // If Edit Entry fields are configured, remove adminOnly field settings. Otherwise, don't.
1565 1565
 	    $fields = $this->filter_admin_only_fields( $fields, $edit_fields, $form, $view_id );
@@ -1591,7 +1591,7 @@  discard block
 block discarded – undo
1591 1591
      */
1592 1592
     private function filter_fields( $fields, $configured_fields ) {
1593 1593
 
1594
-        if( empty( $fields ) || !is_array( $fields ) ) {
1594
+        if ( empty( $fields ) || ! is_array( $fields ) ) {
1595 1595
             return $fields;
1596 1596
         }
1597 1597
 
@@ -1604,18 +1604,18 @@  discard block
 block discarded – undo
1604 1604
 
1605 1605
             // Remove the fields that have calculation properties and keep them to be used later
1606 1606
             // @since 1.16.2
1607
-            if( $field->has_calculation() ) {
1608
-                $this->fields_with_calculation[] = $field;
1607
+            if ( $field->has_calculation() ) {
1608
+                $this->fields_with_calculation[ ] = $field;
1609 1609
                 // don't remove the calculation fields on form render.
1610 1610
             }
1611 1611
 
1612
-            if( in_array( $field->type, $field_type_blacklist ) ) {
1612
+            if ( in_array( $field->type, $field_type_blacklist ) ) {
1613 1613
                 unset( $fields[ $key ] );
1614 1614
             }
1615 1615
         }
1616 1616
 
1617 1617
         // The Edit tab has not been configured, so we return all fields by default.
1618
-        if( empty( $configured_fields ) ) {
1618
+        if ( empty( $configured_fields ) ) {
1619 1619
             return $fields;
1620 1620
         }
1621 1621
 
@@ -1625,8 +1625,8 @@  discard block
 block discarded – undo
1625 1625
 	        /** @var GF_Field $field */
1626 1626
 	        foreach ( $fields as $field ) {
1627 1627
 
1628
-                if( intval( $configured_field['id'] ) === intval( $field->id ) && $this->user_can_edit_field( $configured_field, false ) ) {
1629
-                    $edit_fields[] = $this->merge_field_properties( $field, $configured_field );
1628
+                if ( intval( $configured_field[ 'id' ] ) === intval( $field->id ) && $this->user_can_edit_field( $configured_field, false ) ) {
1629
+                    $edit_fields[ ] = $this->merge_field_properties( $field, $configured_field );
1630 1630
                     break;
1631 1631
                 }
1632 1632
 
@@ -1649,14 +1649,14 @@  discard block
 block discarded – undo
1649 1649
 
1650 1650
         $return_field = $field;
1651 1651
 
1652
-        if( empty( $field_setting['show_label'] ) ) {
1652
+        if ( empty( $field_setting[ 'show_label' ] ) ) {
1653 1653
             $return_field->label = '';
1654
-        } elseif ( !empty( $field_setting['custom_label'] ) ) {
1655
-            $return_field->label = $field_setting['custom_label'];
1654
+        } elseif ( ! empty( $field_setting[ 'custom_label' ] ) ) {
1655
+            $return_field->label = $field_setting[ 'custom_label' ];
1656 1656
         }
1657 1657
 
1658
-        if( !empty( $field_setting['custom_class'] ) ) {
1659
-            $return_field->cssClass .= ' '. gravityview_sanitize_html_class( $field_setting['custom_class'] );
1658
+        if ( ! empty( $field_setting[ 'custom_class' ] ) ) {
1659
+            $return_field->cssClass .= ' ' . gravityview_sanitize_html_class( $field_setting[ 'custom_class' ] );
1660 1660
         }
1661 1661
 
1662 1662
         /**
@@ -1694,16 +1694,16 @@  discard block
 block discarded – undo
1694 1694
 	     */
1695 1695
 	    $use_gf_adminonly_setting = apply_filters( 'gravityview/edit_entry/use_gf_admin_only_setting', empty( $edit_fields ), $form, $view_id );
1696 1696
 
1697
-	    if( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry['id'] ) ) {
1698
-            foreach( $fields as $k => $field ) {
1699
-                if( $field->adminOnly ) {
1697
+	    if ( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry[ 'id' ] ) ) {
1698
+            foreach ( $fields as $k => $field ) {
1699
+                if ( $field->adminOnly ) {
1700 1700
                     unset( $fields[ $k ] );
1701 1701
                 }
1702 1702
             }
1703 1703
             return $fields;
1704 1704
         }
1705 1705
 
1706
-	    foreach( $fields as &$field ) {
1706
+	    foreach ( $fields as &$field ) {
1707 1707
 		    $field->adminOnly = false;
1708 1708
         }
1709 1709
 
@@ -1727,22 +1727,22 @@  discard block
 block discarded – undo
1727 1727
      */
1728 1728
     function prefill_conditional_logic( $form ) {
1729 1729
 
1730
-        if( ! GFFormDisplay::has_conditional_logic( $form ) ) {
1730
+        if ( ! GFFormDisplay::has_conditional_logic( $form ) ) {
1731 1731
             return $form;
1732 1732
         }
1733 1733
 
1734 1734
         // Have Conditional Logic pre-fill fields as if the data were default values
1735 1735
         /** @var GF_Field $field */
1736
-        foreach ( $form['fields'] as &$field ) {
1736
+        foreach ( $form[ 'fields' ] as &$field ) {
1737 1737
 
1738
-            if( 'checkbox' === $field->type ) {
1738
+            if ( 'checkbox' === $field->type ) {
1739 1739
                 foreach ( $field->get_entry_inputs() as $key => $input ) {
1740
-                    $input_id = $input['id'];
1740
+                    $input_id = $input[ 'id' ];
1741 1741
                     $choice = $field->choices[ $key ];
1742 1742
                     $value = rgar( $this->entry, $input_id );
1743 1743
                     $match = RGFormsModel::choice_value_match( $field, $choice, $value );
1744
-                    if( $match ) {
1745
-                        $field->choices[ $key ]['isSelected'] = true;
1744
+                    if ( $match ) {
1745
+                        $field->choices[ $key ][ 'isSelected' ] = true;
1746 1746
                     }
1747 1747
                 }
1748 1748
             } else {
@@ -1750,15 +1750,15 @@  discard block
 block discarded – undo
1750 1750
                 // We need to run through each field to set the default values
1751 1751
                 foreach ( $this->entry as $field_id => $field_value ) {
1752 1752
 
1753
-                    if( floatval( $field_id ) === floatval( $field->id ) ) {
1753
+                    if ( floatval( $field_id ) === floatval( $field->id ) ) {
1754 1754
 
1755
-                        if( 'list' === $field->type ) {
1755
+                        if ( 'list' === $field->type ) {
1756 1756
                             $list_rows = maybe_unserialize( $field_value );
1757 1757
 
1758 1758
                             $list_field_value = array();
1759
-                            foreach ( (array) $list_rows as $row ) {
1760
-                                foreach ( (array) $row as $column ) {
1761
-                                    $list_field_value[] = $column;
1759
+                            foreach ( (array)$list_rows as $row ) {
1760
+                                foreach ( (array)$row as $column ) {
1761
+                                    $list_field_value[ ] = $column;
1762 1762
                                 }
1763 1763
                             }
1764 1764
 
@@ -1793,16 +1793,16 @@  discard block
 block discarded – undo
1793 1793
          */
1794 1794
         $use_conditional_logic = apply_filters( 'gravityview/edit_entry/conditional_logic', true, $form );
1795 1795
 
1796
-        if( $use_conditional_logic ) {
1796
+        if ( $use_conditional_logic ) {
1797 1797
             return $form;
1798 1798
         }
1799 1799
 
1800
-        foreach( $form['fields'] as &$field ) {
1800
+        foreach ( $form[ 'fields' ] as &$field ) {
1801 1801
             /* @var GF_Field $field */
1802 1802
             $field->conditionalLogic = null;
1803 1803
         }
1804 1804
 
1805
-        unset( $form['button']['conditionalLogic'] );
1805
+        unset( $form[ 'button' ][ 'conditionalLogic' ] );
1806 1806
 
1807 1807
         return $form;
1808 1808
 
@@ -1819,7 +1819,7 @@  discard block
 block discarded – undo
1819 1819
      */
1820 1820
     public function manage_conditional_logic( $has_conditional_logic, $form ) {
1821 1821
 
1822
-        if( ! $this->is_edit_entry() ) {
1822
+        if ( ! $this->is_edit_entry() ) {
1823 1823
             return $has_conditional_logic;
1824 1824
         }
1825 1825
 
@@ -1851,44 +1851,44 @@  discard block
 block discarded – undo
1851 1851
          *  2. There are two entries embedded using oEmbed
1852 1852
          *  3. One of the entries has just been saved
1853 1853
          */
1854
-        if( !empty( $_POST['lid'] ) && !empty( $_GET['entry'] ) && ( $_POST['lid'] !== $_GET['entry'] ) ) {
1854
+        if ( ! empty( $_POST[ 'lid' ] ) && ! empty( $_GET[ 'entry' ] ) && ( $_POST[ 'lid' ] !== $_GET[ 'entry' ] ) ) {
1855 1855
 
1856 1856
             $error = true;
1857 1857
 
1858 1858
         }
1859 1859
 
1860
-        if( !empty( $_GET['entry'] ) && (string)$this->entry['id'] !== $_GET['entry'] ) {
1860
+        if ( ! empty( $_GET[ 'entry' ] ) && (string)$this->entry[ 'id' ] !== $_GET[ 'entry' ] ) {
1861 1861
 
1862 1862
             $error = true;
1863 1863
 
1864
-        } elseif( ! $this->verify_nonce() ) {
1864
+        } elseif ( ! $this->verify_nonce() ) {
1865 1865
 
1866 1866
             /**
1867 1867
              * If the Entry is embedded, there may be two entries on the same page.
1868 1868
              * If that's the case, and one is being edited, the other should fail gracefully and not display an error.
1869 1869
              */
1870
-            if( GravityView_oEmbed::getInstance()->get_entry_id() ) {
1870
+            if ( GravityView_oEmbed::getInstance()->get_entry_id() ) {
1871 1871
                 $error = true;
1872 1872
             } else {
1873
-                $error = __( 'The link to edit this entry is not valid; it may have expired.', 'gravityview');
1873
+                $error = __( 'The link to edit this entry is not valid; it may have expired.', 'gravityview' );
1874 1874
             }
1875 1875
 
1876 1876
         }
1877 1877
 
1878
-        if( ! GravityView_Edit_Entry::check_user_cap_edit_entry( $this->entry ) ) {
1879
-            $error = __( 'You do not have permission to edit this entry.', 'gravityview');
1878
+        if ( ! GravityView_Edit_Entry::check_user_cap_edit_entry( $this->entry ) ) {
1879
+            $error = __( 'You do not have permission to edit this entry.', 'gravityview' );
1880 1880
         }
1881 1881
 
1882
-        if( $this->entry['status'] === 'trash' ) {
1883
-            $error = __('You cannot edit the entry; it is in the trash.', 'gravityview' );
1882
+        if ( $this->entry[ 'status' ] === 'trash' ) {
1883
+            $error = __( 'You cannot edit the entry; it is in the trash.', 'gravityview' );
1884 1884
         }
1885 1885
 
1886 1886
         // No errors; everything's fine here!
1887
-        if( empty( $error ) ) {
1887
+        if ( empty( $error ) ) {
1888 1888
             return true;
1889 1889
         }
1890 1890
 
1891
-        if( $echo && $error !== true ) {
1891
+        if ( $echo && $error !== true ) {
1892 1892
 
1893 1893
 	        $error = esc_html( $error );
1894 1894
 
@@ -1896,13 +1896,13 @@  discard block
 block discarded – undo
1896 1896
 	         * @since 1.9
1897 1897
 	         */
1898 1898
 	        if ( ! empty( $this->entry ) ) {
1899
-		        $error .= ' ' . gravityview_get_link( '#', _x('Go back.', 'Link shown when invalid Edit Entry link is clicked', 'gravityview' ), array( 'onclick' => "window.history.go(-1); return false;" ) );
1899
+		        $error .= ' ' . gravityview_get_link( '#', _x( 'Go back.', 'Link shown when invalid Edit Entry link is clicked', 'gravityview' ), array( 'onclick' => "window.history.go(-1); return false;" ) );
1900 1900
 	        }
1901 1901
 
1902
-            echo GVCommon::generate_notice( wpautop( $error ), 'gv-error error');
1902
+            echo GVCommon::generate_notice( wpautop( $error ), 'gv-error error' );
1903 1903
         }
1904 1904
 
1905
-        do_action('gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_entry]' . $error );
1905
+        do_action( 'gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_entry]' . $error );
1906 1906
 
1907 1907
         return false;
1908 1908
     }
@@ -1919,20 +1919,20 @@  discard block
 block discarded – undo
1919 1919
 
1920 1920
         $error = NULL;
1921 1921
 
1922
-        if( ! $this->check_user_cap_edit_field( $field ) ) {
1923
-            $error = __( 'You do not have permission to edit this field.', 'gravityview');
1922
+        if ( ! $this->check_user_cap_edit_field( $field ) ) {
1923
+            $error = __( 'You do not have permission to edit this field.', 'gravityview' );
1924 1924
         }
1925 1925
 
1926 1926
         // No errors; everything's fine here!
1927
-        if( empty( $error ) ) {
1927
+        if ( empty( $error ) ) {
1928 1928
             return true;
1929 1929
         }
1930 1930
 
1931
-        if( $echo ) {
1932
-            echo GVCommon::generate_notice( wpautop( esc_html( $error ) ), 'gv-error error');
1931
+        if ( $echo ) {
1932
+            echo GVCommon::generate_notice( wpautop( esc_html( $error ) ), 'gv-error error' );
1933 1933
         }
1934 1934
 
1935
-        do_action('gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_field]' . $error );
1935
+        do_action( 'gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_field]' . $error );
1936 1936
 
1937 1937
         return false;
1938 1938
 
@@ -1950,15 +1950,15 @@  discard block
 block discarded – undo
1950 1950
     private function check_user_cap_edit_field( $field ) {
1951 1951
 
1952 1952
         // If they can edit any entries (as defined in Gravity Forms), we're good.
1953
-        if( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ) ) ) {
1953
+        if ( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ) ) ) {
1954 1954
             return true;
1955 1955
         }
1956 1956
 
1957
-        $field_cap = isset( $field['allow_edit_cap'] ) ? $field['allow_edit_cap'] : false;
1957
+        $field_cap = isset( $field[ 'allow_edit_cap' ] ) ? $field[ 'allow_edit_cap' ] : false;
1958 1958
 
1959 1959
         // If the field has custom editing capaibilities set, check those
1960
-        if( $field_cap ) {
1961
-            return GVCommon::has_cap( $field['allow_edit_cap'] );
1960
+        if ( $field_cap ) {
1961
+            return GVCommon::has_cap( $field[ 'allow_edit_cap' ] );
1962 1962
         }
1963 1963
 
1964 1964
         return false;
@@ -1972,17 +1972,17 @@  discard block
 block discarded – undo
1972 1972
     public function verify_nonce() {
1973 1973
 
1974 1974
         // Verify form submitted for editing single
1975
-        if( $this->is_edit_entry_submission() ) {
1975
+        if ( $this->is_edit_entry_submission() ) {
1976 1976
             $valid = wp_verify_nonce( $_POST[ self::$nonce_field ], self::$nonce_field );
1977 1977
         }
1978 1978
 
1979 1979
         // Verify
1980
-        else if( ! $this->is_edit_entry() ) {
1980
+        else if ( ! $this->is_edit_entry() ) {
1981 1981
             $valid = false;
1982 1982
         }
1983 1983
 
1984 1984
         else {
1985
-            $valid = wp_verify_nonce( $_GET['edit'], self::$nonce_key );
1985
+            $valid = wp_verify_nonce( $_GET[ 'edit' ], self::$nonce_key );
1986 1986
         }
1987 1987
 
1988 1988
         /**
Please login to merge, or discard this patch.
includes/fields/class-gravityview-field-post-content.php 1 patch
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -22,13 +22,13 @@  discard block
 block discarded – undo
22 22
 
23 23
 	function field_options( $field_options, $template_id, $field_id, $context, $input_type ) {
24 24
 
25
-		unset( $field_options['show_as_link'] );
25
+		unset( $field_options[ 'show_as_link' ] );
26 26
 
27
-		if( 'edit' === $context ) {
27
+		if ( 'edit' === $context ) {
28 28
 			return $field_options;
29 29
 		}
30 30
 
31
-		$this->add_field_support('dynamic_data', $field_options );
31
+		$this->add_field_support( 'dynamic_data', $field_options );
32 32
 
33 33
 		return $field_options;
34 34
 	}
@@ -44,7 +44,7 @@  discard block
 block discarded – undo
44 44
 	 */
45 45
 	public function get_field_input( $form, $value = '', $entry = null, GF_Field_Post_Content $field ) {
46 46
 
47
-		$id    = (int) $field->id;
47
+		$id    = (int)$field->id;
48 48
 		$input_name = "input_{$id}";
49 49
 		$class = esc_attr( $field->size );
50 50
 		$tabindex = $field->get_tabindex();
Please login to merge, or discard this patch.
includes/fields/class-gravityview-fields.php 2 patches
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -42,8 +42,8 @@  discard block
 block discarded – undo
42 42
 	 * @return GravityView_Field | bool
43 43
 	 */
44 44
 	public static function create( $properties ) {
45
-		$type = isset( $properties['type'] ) ? $properties['type'] : '';
46
-		$type = empty( $properties['inputType'] ) ? $type : $properties['inputType'];
45
+		$type = isset( $properties[ 'type' ] ) ? $properties[ 'type' ] : '';
46
+		$type = empty( $properties[ 'inputType' ] ) ? $type : $properties[ 'inputType' ];
47 47
 		if ( empty( $type ) || ! isset( self::$_fields[ $type ] ) ) {
48 48
 			return new GravityView_Field( $properties );
49 49
 		}
@@ -62,7 +62,7 @@  discard block
 block discarded – undo
62 62
 	 * @return bool True: yes, it exists; False: nope
63 63
 	 */
64 64
 	public static function exists( $field_name ) {
65
-		return isset( self::$_fields["{$field_name}"] );
65
+		return isset( self::$_fields[ "{$field_name}" ] );
66 66
 	}
67 67
 
68 68
 	/**
@@ -96,8 +96,8 @@  discard block
 block discarded – undo
96 96
 
97 97
 		$field_type = is_a( $gf_field, 'GF_Field' ) ? get_class( $gf_field ) : $gf_field;
98 98
 
99
-		foreach( self::$_fields as $field ) {
100
-			if( $field_type === $field->_gf_field_class_name ) {
99
+		foreach ( self::$_fields as $field ) {
100
+			if ( $field_type === $field->_gf_field_class_name ) {
101 101
 				return $field;
102 102
 			}
103 103
 		}
@@ -116,10 +116,10 @@  discard block
 block discarded – undo
116 116
 	 */
117 117
 	public static function get_all( $group = '' ) {
118 118
 
119
-		if( '' !== $group ) {
119
+		if ( '' !== $group ) {
120 120
 			$return_fields = self::$_fields;
121 121
 			foreach ( $return_fields as $key => $field ) {
122
-				if( $group !== $field->group ) {
122
+				if ( $group !== $field->group ) {
123 123
 					unset( $return_fields[ $key ] );
124 124
 				}
125 125
 			}
Please login to merge, or discard this patch.
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -77,7 +77,7 @@
 block discarded – undo
77 77
 	/**
78 78
 	 * Alias for get_instance()
79 79
 	 *
80
-	 * @param $field_name
80
+	 * @param string $field_name
81 81
 	 *
82 82
 	 * @return GravityView_Field|false
83 83
 	 */
Please login to merge, or discard this patch.
includes/fields/class-gravityview-field-date.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -23,11 +23,11 @@  discard block
 block discarded – undo
23 23
 
24 24
 	function field_options( $field_options, $template_id = '', $field_id = '', $context = '', $input_type = '' ) {
25 25
 
26
-		if( 'edit' === $context ) {
26
+		if ( 'edit' === $context ) {
27 27
 			return $field_options;
28 28
 		}
29 29
 
30
-		$this->add_field_support('date_display', $field_options );
30
+		$this->add_field_support( 'date_display', $field_options );
31 31
 
32 32
 		return $field_options;
33 33
 	}
@@ -51,7 +51,7 @@  discard block
 block discarded – undo
51 51
 		$field_input_id = gravityview_get_input_id_from_id( $field_id );
52 52
 
53 53
 		$date_field_output = '';
54
-		switch( $field_input_id ) {
54
+		switch ( $field_input_id ) {
55 55
 			case 1:
56 56
 				$date_field_output = rgar( $parsed_date, 'day' );
57 57
 				break;
Please login to merge, or discard this patch.
Indentation   -1 removed lines patch added patch discarded remove patch
@@ -40,7 +40,6 @@
 block discarded – undo
40 40
 	 * Get the default date format for a field based on the field ID and the time format setting
41 41
 	 *
42 42
 	 * @since 1.16.4
43
-
44 43
 	 * @param string $date_format The Gravity Forms date format for the field. Default: "mdy"
45 44
 	 * @param int $field_id The ID of the field. Used to figure out full date/day/month/year
46 45
 	 *
Please login to merge, or discard this patch.
includes/fields/class-gravityview-field-quiz.php 1 patch
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
 
19 19
 	function field_options( $field_options, $template_id, $field_id, $context, $input_type ) {
20 20
 
21
-		if( 'edit' === $context ) {
21
+		if ( 'edit' === $context ) {
22 22
 			return $field_options;
23 23
 		}
24 24
 
@@ -26,7 +26,7 @@  discard block
 block discarded – undo
26 26
 			'quiz_show_explanation' => array(
27 27
 				'type' => 'checkbox',
28 28
 				'label' => __( 'Show Answer Explanation?', 'gravityview' ),
29
-				'desc' => __('If the field has an answer explanation, show it?', 'gravityview'),
29
+				'desc' => __( 'If the field has an answer explanation, show it?', 'gravityview' ),
30 30
 				'value' => false,
31 31
 				'merge_tags' => false,
32 32
 			),
Please login to merge, or discard this patch.
includes/fields/class-gravityview-field-phone.php 2 patches
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -40,11 +40,11 @@
 block discarded – undo
40 40
 		}
41 41
 
42 42
 		$field_options['link_phone'] = array(
43
-	        'type' => 'checkbox',
44
-	        'label' => __( 'Make Phone Number Clickable', 'gravityview' ),
45
-	        'desc' => __( 'Allow dialing a number by clicking it?', 'gravityview'),
46
-	        'value' => true,
47
-        );
43
+			'type' => 'checkbox',
44
+			'label' => __( 'Make Phone Number Clickable', 'gravityview' ),
45
+			'desc' => __( 'Allow dialing a number by clicking it?', 'gravityview'),
46
+			'value' => true,
47
+		);
48 48
 
49 49
 		return $field_options;
50 50
 	}
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -35,14 +35,14 @@
 block discarded – undo
35 35
 	 */
36 36
 	function field_options( $field_options, $template_id, $field_id, $context, $input_type ) {
37 37
 
38
-		if( 'edit' === $context ) {
38
+		if ( 'edit' === $context ) {
39 39
 			return $field_options;
40 40
 		}
41 41
 
42
-		$field_options['link_phone'] = array(
42
+		$field_options[ 'link_phone' ] = array(
43 43
 	        'type' => 'checkbox',
44 44
 	        'label' => __( 'Make Phone Number Clickable', 'gravityview' ),
45
-	        'desc' => __( 'Allow dialing a number by clicking it?', 'gravityview'),
45
+	        'desc' => __( 'Allow dialing a number by clicking it?', 'gravityview' ),
46 46
 	        'value' => true,
47 47
         );
48 48
 
Please login to merge, or discard this patch.