Completed
Push — develop ( fc9b14...732857 )
by Zack
08:01
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-entry-list.php 1 patch
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -170,25 +170,25 @@  discard block
 block discarded – undo
170 170
 	public function get_output() {
171 171
 
172 172
 		// No Entries
173
-		if( empty( $this->entries ) ) {
174
-			return '<div class="gv-no-results">'.$this->empty_message.'</div>';
173
+		if ( empty( $this->entries ) ) {
174
+			return '<div class="gv-no-results">' . $this->empty_message . '</div>';
175 175
 		}
176 176
 
177 177
 		$output = '';
178 178
 		$current_entry = GravityView_View::getInstance()->getCurrentEntry();
179 179
 
180
-		$output .= '<'. $this->wrapper_tag .'>';
180
+		$output .= '<' . $this->wrapper_tag . '>';
181 181
 
182
-		foreach( $this->entries as $entry ) {
182
+		foreach ( $this->entries as $entry ) {
183 183
 
184
-			if( $this->skip_entry( $entry, $current_entry ) ) {
184
+			if ( $this->skip_entry( $entry, $current_entry ) ) {
185 185
 				continue;
186 186
 			}
187 187
 
188 188
 			$output .= $this->get_item_output( $entry );
189 189
 		}
190 190
 
191
-		$output .= '</'. $this->wrapper_tag .'>';
191
+		$output .= '</' . $this->wrapper_tag . '>';
192 192
 
193 193
 		/**
194 194
 		 * @filter `gravityview/widget/recent-entries/output` Modify the HTML of the Recent Entries widget output
@@ -211,15 +211,15 @@  discard block
 block discarded – undo
211 211
 	private function skip_entry( $entry, $current_entry ) {
212 212
 
213 213
 		// If skip entry is off, or there's no current entry, return false
214
-		if( empty( $this->skip_current_entry ) || empty( $current_entry ) ) {
214
+		if ( empty( $this->skip_current_entry ) || empty( $current_entry ) ) {
215 215
 			return false;
216 216
 		}
217 217
 
218 218
 		// If in Single or Edit mode, $current_entry will be an array.
219
-		$current_entry_id = is_array( $current_entry ) ? $current_entry['id'] : $current_entry;
219
+		$current_entry_id = is_array( $current_entry ) ? $current_entry[ 'id' ] : $current_entry;
220 220
 
221 221
 		// If the entry ID matches the current entry, yes: skip
222
-		if( $entry['id'] === $current_entry_id ) {
222
+		if ( $entry[ 'id' ] === $current_entry_id ) {
223 223
 			return true;
224 224
 		}
225 225
 
@@ -246,7 +246,7 @@  discard block
 block discarded – undo
246 246
 
247 247
 		$item_output = gravityview_get_link( $link, $this->link_format );
248 248
 
249
-		if( !empty( $this->after_link ) ) {
249
+		if ( ! empty( $this->after_link ) ) {
250 250
 
251 251
 			/**
252 252
 			 * @filter `gravityview/entry-list/after-link` Modify the content displayed after the entry link in an entry list
@@ -255,14 +255,14 @@  discard block
 block discarded – undo
255 255
 			 * @param array $entry Gravity Forms entry array
256 256
 			 * @param GravityView_Entry_List $this The current class instance
257 257
 			 */
258
-			$after_link = apply_filters( 'gravityview/entry-list/after-link', '<div>'.$this->after_link.'</div>', $entry, $this );
258
+			$after_link = apply_filters( 'gravityview/entry-list/after-link', '<div>' . $this->after_link . '</div>', $entry, $this );
259 259
 
260 260
 			$item_output .= $after_link;
261 261
 		}
262 262
 
263 263
 		$item_output = GravityView_API::replace_variables( $item_output, $this->form, $entry );
264 264
 
265
-		$item_output = '<'. $this->item_tag .'>'. $item_output .'</'. $this->item_tag .'>';
265
+		$item_output = '<' . $this->item_tag . '>' . $item_output . '</' . $this->item_tag . '>';
266 266
 
267 267
 		/**
268 268
 		 * @filter `gravityview/entry-list/item` Modify each item's output in an entry list
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   +90 added lines, -90 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
@@ -720,8 +720,8 @@  discard block
 block discarded – undo
720 720
                     type="' . $field['type'] . '"
721 721
                     name="' . esc_attr( $name ) . '"
722 722
                     value="' . $value . '" ' .
723
-		        implode( ' ', $attributes ) .
724
-		        ' />';
723
+				implode( ' ', $attributes ) .
724
+				' />';
725 725
 
726 726
 		if ( $echo ) {
727 727
 			echo $html;
@@ -762,19 +762,19 @@  discard block
 block discarded – undo
762 762
 
763 763
 
764 764
 	/**
765
-     * Keep GravityView styling for `$field['description']`, even though Gravity Forms added support for it
766
-     *
767
-     * Converts `$field['description']` to `$field['gv_description']`
768
-     * Converts `$field['subtitle']` to `$field['description']`
769
-     *
770
-     * @see GravityView_Settings::single_setting_label Converts `gv_description` back to `description`
771
-     * @see http://share.gravityview.co/P28uGp/2OIRKxog for image that shows subtitle vs description
772
-     *
773
-     * @since 1.21.5.2
774
-     *
765
+	 * Keep GravityView styling for `$field['description']`, even though Gravity Forms added support for it
766
+	 *
767
+	 * Converts `$field['description']` to `$field['gv_description']`
768
+	 * Converts `$field['subtitle']` to `$field['description']`
769
+	 *
770
+	 * @see GravityView_Settings::single_setting_label Converts `gv_description` back to `description`
771
+	 * @see http://share.gravityview.co/P28uGp/2OIRKxog for image that shows subtitle vs description
772
+	 *
773
+	 * @since 1.21.5.2
774
+	 *
775 775
 	 * @param array $field
776
-     *
777
-     * @return void
776
+	 *
777
+	 * @return void
778 778
 	 */
779 779
 	public function single_setting_row( $field ) {
780 780
 
@@ -968,7 +968,7 @@  discard block
 block discarded – undo
968 968
 					array(
969 969
 						'label' => _x('Show me beta versions if they are available.', 'gravityview'),
970 970
 						'value' => '1',
971
-                        'name'  => 'beta',
971
+						'name'  => 'beta',
972 972
 					),
973 973
 				),
974 974
 				'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'),
@@ -993,36 +993,36 @@  discard block
 block discarded – undo
993 993
 		}
994 994
 
995 995
 
996
-        $sections = array(
997
-            array(
998
-                'description' =>      sprintf( '<span class="version-info description">%s</span>', sprintf( __('You are running GravityView version %s', 'gravityview'), GravityView_Plugin::version ) ),
999
-                'fields'      => $fields,
1000
-            )
1001
-        );
996
+		$sections = array(
997
+			array(
998
+				'description' =>      sprintf( '<span class="version-info description">%s</span>', sprintf( __('You are running GravityView version %s', 'gravityview'), GravityView_Plugin::version ) ),
999
+				'fields'      => $fields,
1000
+			)
1001
+		);
1002 1002
 
1003
-        // custom 'update settings' button
1004
-        $button = array(
1005
-            'class' => 'button button-primary button-hero',
1006
-            'type'     => 'save',
1007
-        );
1003
+		// custom 'update settings' button
1004
+		$button = array(
1005
+			'class' => 'button button-primary button-hero',
1006
+			'type'     => 'save',
1007
+		);
1008 1008
 
1009 1009
 		if( $disabled_attribute ) {
1010 1010
 			$button['disabled'] = $disabled_attribute;
1011 1011
 		}
1012 1012
 
1013 1013
 
1014
-        /**
1015
-         * @filter `gravityview/settings/extension/sections` Modify the GravityView settings page
1016
-         * Extensions can tap in here to insert their own section and settings.
1017
-         * <code>
1018
-         *   $sections[] = array(
1019
-         *      'title' => __( 'GravityView My Extension Settings', 'gravityview' ),
1020
-         *      'fields' => $settings,
1021
-         *   );
1022
-         * </code>
1023
-         * @param array $extension_settings Empty array, ready for extension settings!
1024
-         */
1025
-        $extension_sections = apply_filters( 'gravityview/settings/extension/sections', array() );
1014
+		/**
1015
+		 * @filter `gravityview/settings/extension/sections` Modify the GravityView settings page
1016
+		 * Extensions can tap in here to insert their own section and settings.
1017
+		 * <code>
1018
+		 *   $sections[] = array(
1019
+		 *      'title' => __( 'GravityView My Extension Settings', 'gravityview' ),
1020
+		 *      'fields' => $settings,
1021
+		 *   );
1022
+		 * </code>
1023
+		 * @param array $extension_settings Empty array, ready for extension settings!
1024
+		 */
1025
+		$extension_sections = apply_filters( 'gravityview/settings/extension/sections', array() );
1026 1026
 
1027 1027
 		// If there are extensions, add a section for them
1028 1028
 		if ( ! empty( $extension_sections ) ) {
@@ -1035,13 +1035,13 @@  discard block
 block discarded – undo
1035 1035
 				}
1036 1036
 			}
1037 1037
 
1038
-            $k = count( $extension_sections ) - 1 ;
1039
-            $extension_sections[ $k ]['fields'][] = $button;
1038
+			$k = count( $extension_sections ) - 1 ;
1039
+			$extension_sections[ $k ]['fields'][] = $button;
1040 1040
 			$sections = array_merge( $sections, $extension_sections );
1041 1041
 		} else {
1042
-            // add the 'update settings' button to the general section
1043
-            $sections[0]['fields'][] = $button;
1044
-        }
1042
+			// add the 'update settings' button to the general section
1043
+			$sections[0]['fields'][] = $button;
1044
+		}
1045 1045
 
1046 1046
 		return $sections;
1047 1047
 	}
Please login to merge, or discard this patch.
Spacing   +87 added lines, -87 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' ),
@@ -673,7 +673,7 @@  discard block
 block discarded – undo
673 673
 
674 674
 		$return = $text . $activation;
675 675
 
676
-		if( $echo ) {
676
+		if ( $echo ) {
677 677
 			echo $return;
678 678
 		}
679 679
 
@@ -700,15 +700,15 @@  discard block
 block discarded – undo
700 700
 	 */
701 701
 	public function settings_submit( $field, $echo = true ) {
702 702
 
703
-		$field['type']  = ( isset($field['type']) && in_array( $field['type'], array('submit','reset','button') ) ) ? $field['type'] : 'submit';
703
+		$field[ 'type' ] = ( isset( $field[ 'type' ] ) && in_array( $field[ 'type' ], array( 'submit', 'reset', 'button' ) ) ) ? $field[ 'type' ] : 'submit';
704 704
 
705 705
 		$attributes    = $this->get_field_attributes( $field );
706 706
 		$default_value = rgar( $field, 'value' ) ? rgar( $field, 'value' ) : rgar( $field, 'default_value' );
707
-		$value         = $this->get_setting( $field['name'], $default_value );
707
+		$value         = $this->get_setting( $field[ 'name' ], $default_value );
708 708
 
709 709
 
710
-		$attributes['class'] = isset( $attributes['class'] ) ? esc_attr( $attributes['class'] ) : 'button-primary gfbutton';
711
-		$name    = ( $field['name'] === 'gform-settings-save' ) ? $field['name'] : '_gaddon_setting_'.$field['name'];
710
+		$attributes[ 'class' ] = isset( $attributes[ 'class' ] ) ? esc_attr( $attributes[ 'class' ] ) : 'button-primary gfbutton';
711
+		$name = ( $field[ 'name' ] === 'gform-settings-save' ) ? $field[ 'name' ] : '_gaddon_setting_' . $field[ 'name' ];
712 712
 
713 713
 		if ( empty( $value ) ) {
714 714
 			$value = __( 'Update Settings', 'gravityview' );
@@ -717,7 +717,7 @@  discard block
 block discarded – undo
717 717
 		$attributes = $this->get_field_attributes( $field );
718 718
 
719 719
 		$html = '<input
720
-                    type="' . $field['type'] . '"
720
+                    type="' . $field[ 'type' ] . '"
721 721
                     name="' . esc_attr( $name ) . '"
722 722
                     value="' . $value . '" ' .
723 723
 		        implode( ' ', $attributes ) .
@@ -739,12 +739,12 @@  discard block
 block discarded – undo
739 739
 	 * @return string
740 740
 	 */
741 741
 	public function settings_save( $field, $echo = true ) {
742
-		$field['type']  = 'submit';
743
-		$field['name']  = 'gform-settings-save';
744
-		$field['class'] = isset( $field['class'] ) ? $field['class'] : 'button-primary gfbutton';
742
+		$field[ 'type' ]  = 'submit';
743
+		$field[ 'name' ]  = 'gform-settings-save';
744
+		$field[ 'class' ] = isset( $field[ 'class' ] ) ? $field[ 'class' ] : 'button-primary gfbutton';
745 745
 
746 746
 		if ( ! rgar( $field, 'value' ) ) {
747
-			$field['value'] = __( 'Update Settings', 'gravityview' );
747
+			$field[ 'value' ] = __( 'Update Settings', 'gravityview' );
748 748
 		}
749 749
 
750 750
 		$output = $this->settings_submit( $field, false );
@@ -753,7 +753,7 @@  discard block
 block discarded – undo
753 753
 		$this->app_settings_uninstall_tab();
754 754
 		$output .= ob_get_clean();
755 755
 
756
-		if( $echo ) {
756
+		if ( $echo ) {
757 757
 			echo $output;
758 758
 		}
759 759
 
@@ -778,8 +778,8 @@  discard block
 block discarded – undo
778 778
 	 */
779 779
 	public function single_setting_row( $field ) {
780 780
 
781
-		$field['gv_description'] = rgar( $field, 'description' );
782
-		$field['description']    = rgar( $field, 'subtitle' );
781
+		$field[ 'gv_description' ] = rgar( $field, 'description' );
782
+		$field[ 'description' ]    = rgar( $field, 'subtitle' );
783 783
 
784 784
 		parent::single_setting_row( $field );
785 785
 	}
@@ -794,7 +794,7 @@  discard block
 block discarded – undo
794 794
 		parent::single_setting_label( $field );
795 795
 
796 796
 		if ( $description = rgar( $field, 'gv_description' ) ) {
797
-			echo '<span class="description">'. $description .'</span>';
797
+			echo '<span class="description">' . $description . '</span>';
798 798
 		}
799 799
 	}
800 800
 
@@ -856,11 +856,11 @@  discard block
 block discarded – undo
856 856
 
857 857
 		// If the posted key doesn't match the activated/deactivated key (set using the Activate License button, AJAX response),
858 858
 		// then we assume it's changed. If it's changed, unset the status and the previous response.
859
-		if( $local_key !== $response_key ) {
859
+		if ( $local_key !== $response_key ) {
860 860
 
861
-			unset( $posted_settings['license_key_response'] );
862
-			unset( $posted_settings['license_key_status'] );
863
-			GFCommon::add_error_message( __('The license key you entered has been saved, but not activated. Please activate the license.', 'gravityview' ) );
861
+			unset( $posted_settings[ 'license_key_response' ] );
862
+			unset( $posted_settings[ 'license_key_status' ] );
863
+			GFCommon::add_error_message( __( 'The license key you entered has been saved, but not activated. Please activate the license.', 'gravityview' ) );
864 864
 		}
865 865
 
866 866
 		return $posted_settings;
@@ -895,25 +895,25 @@  discard block
 block discarded – undo
895 895
 				'label'             => __( 'License Key', 'gravityview' ),
896 896
 				'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' ) ),
897 897
 				'type'              => 'edd_license',
898
-				'data-pending-text' => __('Verifying license&hellip;', 'gravityview'),
899
-				'default_value'           => $default_settings['license_key'],
898
+				'data-pending-text' => __( 'Verifying license&hellip;', 'gravityview' ),
899
+				'default_value'           => $default_settings[ 'license_key' ],
900 900
 				'class'             => ( '' == $this->get_app_setting( 'license_key' ) ) ? 'activate code regular-text edd-license-key' : 'deactivate code regular-text edd-license-key',
901 901
 			),
902 902
 			array(
903 903
 				'name'       => 'license_key_response',
904
-				'default_value'  => $default_settings['license_key_response'],
904
+				'default_value'  => $default_settings[ 'license_key_response' ],
905 905
 				'type'     => 'hidden',
906 906
 			),
907 907
 			array(
908 908
 				'name'       => 'license_key_status',
909
-				'default_value'  => $default_settings['license_key_status'],
909
+				'default_value'  => $default_settings[ 'license_key_status' ],
910 910
 				'type'     => 'hidden',
911 911
 			),
912 912
 			array(
913 913
 				'name'       => 'support-email',
914 914
 				'type'     => 'text',
915 915
 				'validate' => 'email',
916
-				'default_value'  => $default_settings['support-email'],
916
+				'default_value'  => $default_settings[ 'support-email' ],
917 917
 				'label'    => __( 'Support Email', 'gravityview' ),
918 918
 				'description' => __( 'In order to provide responses to your support requests, please provide your email address.', 'gravityview' ),
919 919
 				'class'    => 'code regular-text',
@@ -925,53 +925,53 @@  discard block
 block discarded – undo
925 925
 				'name'         => 'support_port',
926 926
 				'type'       => 'radio',
927 927
 				'label'      => __( 'Show Support Port?', 'gravityview' ),
928
-				'default_value'    => $default_settings['support_port'],
928
+				'default_value'    => $default_settings[ 'support_port' ],
929 929
 				'horizontal' => 1,
930 930
 				'choices'    => array(
931 931
 					array(
932
-						'label' => _x('Show', 'Setting: Show or Hide', 'gravityview'),
932
+						'label' => _x( 'Show', 'Setting: Show or Hide', 'gravityview' ),
933 933
 						'value' => '1',
934 934
 					),
935 935
 					array(
936
-						'label' => _x('Hide', 'Setting: Show or Hide', 'gravityview'),
936
+						'label' => _x( 'Hide', 'Setting: Show or Hide', 'gravityview' ),
937 937
 						'value' => '0',
938 938
 					),
939 939
 				),
940
-				'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>',
940
+				'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>',
941 941
 				'description'   => __( 'Show the Support Port on GravityView pages?', 'gravityview' ),
942 942
 			),
943 943
 			array(
944 944
 				'name'         => 'no-conflict-mode',
945 945
 				'type'       => 'radio',
946 946
 				'label'      => __( 'No-Conflict Mode', 'gravityview' ),
947
-				'default_value'    => $default_settings['no-conflict-mode'],
947
+				'default_value'    => $default_settings[ 'no-conflict-mode' ],
948 948
 				'horizontal' => 1,
949 949
 				'choices'    => array(
950 950
 					array(
951
-						'label' => _x('On', 'Setting: On or off', 'gravityview'),
951
+						'label' => _x( 'On', 'Setting: On or off', 'gravityview' ),
952 952
 						'value' => '1',
953 953
 					),
954 954
 					array(
955
-						'label' => _x('Off', 'Setting: On or off', 'gravityview'),
955
+						'label' => _x( 'Off', 'Setting: On or off', 'gravityview' ),
956 956
 						'value' => '0',
957 957
 					),
958 958
 				),
959
-				'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'),
959
+				'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' ),
960 960
 			),
961 961
 			array(
962 962
 				'name'       => 'beta',
963 963
 				'type'       => 'checkbox',
964 964
 				'label'      => __( 'Become a Beta Tester', 'gravityview' ),
965
-				'default_value'    => $default_settings['beta'],
965
+				'default_value'    => $default_settings[ 'beta' ],
966 966
 				'horizontal' => 1,
967 967
 				'choices'    => array(
968 968
 					array(
969
-						'label' => _x('Show me beta versions if they are available.', 'gravityview'),
969
+						'label' => _x( 'Show me beta versions if they are available.', 'gravityview' ),
970 970
 						'value' => '1',
971 971
                         'name'  => 'beta',
972 972
 					),
973 973
 				),
974
-				'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'),
974
+				'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' ),
975 975
 			),
976 976
 		) );
977 977
 
@@ -982,20 +982,20 @@  discard block
 block discarded – undo
982 982
 		 * @since 1.7.4
983 983
 		 */
984 984
 		foreach ( $fields as &$field ) {
985
-			$field['name']          = isset( $field['name'] ) ? $field['name'] : rgget('id', $field );
986
-			$field['label']         = isset( $field['label'] ) ? $field['label'] : rgget('title', $field );
987
-			$field['default_value'] = isset( $field['default_value'] ) ? $field['default_value'] : rgget('default', $field );
988
-			$field['description']   = isset( $field['description'] ) ? $field['description'] : rgget('subtitle', $field );
985
+			$field[ 'name' ]          = isset( $field[ 'name' ] ) ? $field[ 'name' ] : rgget( 'id', $field );
986
+			$field[ 'label' ]         = isset( $field[ 'label' ] ) ? $field[ 'label' ] : rgget( 'title', $field );
987
+			$field[ 'default_value' ] = isset( $field[ 'default_value' ] ) ? $field[ 'default_value' ] : rgget( 'default', $field );
988
+			$field[ 'description' ]   = isset( $field[ 'description' ] ) ? $field[ 'description' ] : rgget( 'subtitle', $field );
989 989
 
990
-			if( $disabled_attribute ) {
991
-				$field['disabled']  = $disabled_attribute;
990
+			if ( $disabled_attribute ) {
991
+				$field[ 'disabled' ] = $disabled_attribute;
992 992
 			}
993 993
 		}
994 994
 
995 995
 
996 996
         $sections = array(
997 997
             array(
998
-                'description' =>      sprintf( '<span class="version-info description">%s</span>', sprintf( __('You are running GravityView version %s', 'gravityview'), GravityView_Plugin::version ) ),
998
+                'description' =>      sprintf( '<span class="version-info description">%s</span>', sprintf( __( 'You are running GravityView version %s', 'gravityview' ), GravityView_Plugin::version ) ),
999 999
                 'fields'      => $fields,
1000 1000
             )
1001 1001
         );
@@ -1006,8 +1006,8 @@  discard block
 block discarded – undo
1006 1006
             'type'     => 'save',
1007 1007
         );
1008 1008
 
1009
-		if( $disabled_attribute ) {
1010
-			$button['disabled'] = $disabled_attribute;
1009
+		if ( $disabled_attribute ) {
1010
+			$button[ 'disabled' ] = $disabled_attribute;
1011 1011
 		}
1012 1012
 
1013 1013
 
@@ -1027,20 +1027,20 @@  discard block
 block discarded – undo
1027 1027
 		// If there are extensions, add a section for them
1028 1028
 		if ( ! empty( $extension_sections ) ) {
1029 1029
 
1030
-			if( $disabled_attribute ) {
1030
+			if ( $disabled_attribute ) {
1031 1031
 				foreach ( $extension_sections as &$section ) {
1032
-					foreach ( $section['fields'] as &$field ) {
1033
-						$field['disabled'] = $disabled_attribute;
1032
+					foreach ( $section[ 'fields' ] as &$field ) {
1033
+						$field[ 'disabled' ] = $disabled_attribute;
1034 1034
 					}
1035 1035
 				}
1036 1036
 			}
1037 1037
 
1038
-            $k = count( $extension_sections ) - 1 ;
1039
-            $extension_sections[ $k ]['fields'][] = $button;
1038
+            $k = count( $extension_sections ) - 1;
1039
+            $extension_sections[ $k ][ 'fields' ][ ] = $button;
1040 1040
 			$sections = array_merge( $sections, $extension_sections );
1041 1041
 		} else {
1042 1042
             // add the 'update settings' button to the general section
1043
-            $sections[0]['fields'][] = $button;
1043
+            $sections[ 0 ][ 'fields' ][ ] = $button;
1044 1044
         }
1045 1045
 
1046 1046
 		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   +1606 added lines, -1606 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,229 +189,229 @@  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
-	    $lead_detail_table      = GFFormsModel::get_lead_details_table_name();
361
-	    $current_fields   = $wpdb->get_results( $wpdb->prepare( "SELECT id, field_number FROM $lead_detail_table WHERE lead_id=%d", $this->entry['id'] ) );
360
+		$lead_detail_table      = GFFormsModel::get_lead_details_table_name();
361
+		$current_fields   = $wpdb->get_results( $wpdb->prepare( "SELECT id, field_number FROM $lead_detail_table WHERE lead_id=%d", $this->entry['id'] ) );
362 362
 
363
-	    foreach ( $this->entry as $input_id => $field_value ) {
363
+		foreach ( $this->entry as $input_id => $field_value ) {
364 364
 
365
-		    $field = RGFormsModel::get_field( $this->form, $input_id );
365
+			$field = RGFormsModel::get_field( $this->form, $input_id );
366 366
 
367
-		    // Reset fields that are hidden
368
-		    // Don't pass $entry as fourth parameter; force using $_POST values to calculate conditional logic
369
-		    if ( GFFormsModel::is_field_hidden( $this->form, $field, array(), NULL ) ) {
367
+			// Reset fields that are hidden
368
+			// Don't pass $entry as fourth parameter; force using $_POST values to calculate conditional logic
369
+			if ( GFFormsModel::is_field_hidden( $this->form, $field, array(), NULL ) ) {
370 370
 
371
-		        // List fields are stored as empty arrays when empty
372
-			    $empty_value = $this->is_field_json_encoded( $field ) ? '[]' : '';
371
+				// List fields are stored as empty arrays when empty
372
+				$empty_value = $this->is_field_json_encoded( $field ) ? '[]' : '';
373 373
 
374
-			    $lead_detail_id = GFFormsModel::get_lead_detail_id( $current_fields, $input_id );
374
+				$lead_detail_id = GFFormsModel::get_lead_detail_id( $current_fields, $input_id );
375 375
 
376
-			    GFFormsModel::update_lead_field_value( $this->form, $this->entry, $field, $lead_detail_id, $input_id, $empty_value );
376
+				GFFormsModel::update_lead_field_value( $this->form, $this->entry, $field, $lead_detail_id, $input_id, $empty_value );
377 377
 
378
-			    // Prevent the $_POST values of hidden fields from being used as default values when rendering the form
379
-                // after submission
380
-			    $post_input_id = 'input_' . str_replace( '.', '_', $input_id );
381
-			    $_POST[ $post_input_id ] = '';
382
-		    }
383
-	    }
384
-    }
378
+				// Prevent the $_POST values of hidden fields from being used as default values when rendering the form
379
+				// after submission
380
+				$post_input_id = 'input_' . str_replace( '.', '_', $input_id );
381
+				$_POST[ $post_input_id ] = '';
382
+			}
383
+		}
384
+	}
385 385
 
386
-    /**
387
-     * Have GF handle file uploads
388
-     *
389
-     * Copy of code from GFFormDisplay::process_form()
390
-     *
391
-     * @param int $form_id
392
-     */
393
-    private function process_save_process_files( $form_id ) {
386
+	/**
387
+	 * Have GF handle file uploads
388
+	 *
389
+	 * Copy of code from GFFormDisplay::process_form()
390
+	 *
391
+	 * @param int $form_id
392
+	 */
393
+	private function process_save_process_files( $form_id ) {
394 394
 
395
-        //Loading files that have been uploaded to temp folder
396
-        $files = GFCommon::json_decode( stripslashes( RGForms::post( 'gform_uploaded_files' ) ) );
397
-        if ( ! is_array( $files ) ) {
398
-            $files = array();
399
-        }
395
+		//Loading files that have been uploaded to temp folder
396
+		$files = GFCommon::json_decode( stripslashes( RGForms::post( 'gform_uploaded_files' ) ) );
397
+		if ( ! is_array( $files ) ) {
398
+			$files = array();
399
+		}
400 400
 
401 401
 		/**
402 402
 		 * Make sure the fileuploads are not overwritten if no such request was done.
403
-         * @since 1.20.1
403
+		 * @since 1.20.1
404 404
 		 */
405 405
 		add_filter( "gform_save_field_value_$form_id", array( $this, 'save_field_value' ), 99, 5 );
406 406
 
407
-        RGFormsModel::$uploaded_files[ $form_id ] = $files;
408
-    }
407
+		RGFormsModel::$uploaded_files[ $form_id ] = $files;
408
+	}
409 409
 
410 410
 	/**
411 411
 	 * Make sure the fileuploads are not overwritten if no such request was done.
412 412
 	 *
413
-     * TO ONLY BE USED INTERNALLY; DO NOT DEVELOP ON; MAY BE REMOVED AT ANY TIME.
414
-     *
413
+	 * TO ONLY BE USED INTERNALLY; DO NOT DEVELOP ON; MAY BE REMOVED AT ANY TIME.
414
+	 *
415 415
 	 * @since 1.20.1
416 416
 	 *
417 417
 	 * @param string $value Field value
@@ -446,156 +446,156 @@  discard block
 block discarded – undo
446 446
 		return $value;
447 447
 	}
448 448
 
449
-    /**
450
-     * Remove max_files validation (done on gravityforms.js) to avoid conflicts with GravityView
451
-     * Late validation done on self::custom_validation
452
-     *
453
-     * @param $plupload_init array Plupload settings
454
-     * @param $form_id
455
-     * @param $instance
456
-     * @return mixed
457
-     */
458
-    public function modify_fileupload_settings( $plupload_init, $form_id, $instance ) {
459
-        if( ! $this->is_edit_entry() ) {
460
-            return $plupload_init;
461
-        }
462
-
463
-        $plupload_init['gf_vars']['max_files'] = 0;
464
-
465
-        return $plupload_init;
466
-    }
467
-
468
-
469
-    /**
470
-     * Unset adminOnly and convert field input key to string
471
-     * @return array $form
472
-     */
473
-    private function form_prepare_for_save() {
474
-
475
-        $form = $this->form;
476
-
477
-	    /** @var GF_Field $field */
478
-        foreach( $form['fields'] as $k => &$field ) {
479
-
480
-            /**
481
-             * Remove the fields with calculation formulas before save to avoid conflicts with GF logic
482
-             * @since 1.16.3
483
-             * @var GF_Field $field
484
-             */
485
-            if( $field->has_calculation() ) {
486
-                unset( $form['fields'][ $k ] );
487
-            }
488
-
489
-            $field->adminOnly = false;
490
-
491
-            if( isset( $field->inputs ) && is_array( $field->inputs ) ) {
492
-                foreach( $field->inputs as $key => $input ) {
493
-                    $field->inputs[ $key ][ 'id' ] = (string)$input['id'];
494
-                }
495
-            }
496
-        }
497
-
498
-        return $form;
499
-    }
500
-
501
-    private function update_calculation_fields() {
502
-
503
-        $form = self::$original_form;
504
-        $update = false;
505
-
506
-        // get the most up to date entry values
507
-        $entry = GFAPI::get_entry( $this->entry['id'] );
508
-
509
-        if( !empty( $this->fields_with_calculation ) ) {
510
-            $update = true;
511
-            foreach ( $this->fields_with_calculation as $calc_field ) {
512
-                $inputs = $calc_field->get_entry_inputs();
513
-                if ( is_array( $inputs ) ) {
514
-                    foreach ( $inputs as $input ) {
515
-                        $input_name = 'input_' . str_replace( '.', '_', $input['id'] );
516
-                        $entry[ strval( $input['id'] ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
517
-                    }
518
-                } else {
519
-                    $input_name = 'input_' . str_replace( '.', '_', $calc_field->id);
520
-                    $entry[ strval( $calc_field->id ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
521
-                }
522
-            }
523
-
524
-        }
525
-
526
-        if( $update ) {
527
-
528
-            $return_entry = GFAPI::update_entry( $entry );
529
-
530
-            if( is_wp_error( $return_entry ) ) {
531
-                do_action( 'gravityview_log_error', 'Updating the entry calculation fields failed', $return_entry );
532
-            } else {
533
-                do_action( 'gravityview_log_debug', 'Updating the entry calculation fields succeeded' );
534
-            }
535
-        }
536
-    }
537
-
538
-    /**
539
-     * Handle updating the Post Image field
540
-     *
541
-     * Sets a new Featured Image if configured in Gravity Forms; otherwise uploads/updates media
542
-     *
543
-     * @since 1.17
544
-     *
545
-     * @uses GFFormsModel::media_handle_upload
546
-     * @uses set_post_thumbnail
547
-     * 
548
-     * @param array $form GF Form array
549
-     * @param GF_Field $field GF Field
550
-     * @param string $field_id Numeric ID of the field
551
-     * @param string $value
552
-     * @param array $entry GF Entry currently being edited
553
-     * @param int $post_id ID of the Post being edited
554
-     *
555
-     * @return mixed|string
556
-     */
557
-    private function update_post_image( $form, $field, $field_id, $value, $entry, $post_id ) {
558
-
559
-        $input_name = 'input_' . $field_id;
560
-
561
-        if ( !empty( $_FILES[ $input_name ]['name'] ) ) {
562
-
563
-            // We have a new image
564
-
565
-            $value = RGFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'] );
566
-
567
-            $ary = ! empty( $value ) ? explode( '|:|', $value ) : array();
568
-            $img_url = rgar( $ary, 0 );
569
-
570
-            $img_title       = count( $ary ) > 1 ? $ary[1] : '';
571
-            $img_caption     = count( $ary ) > 2 ? $ary[2] : '';
572
-            $img_description = count( $ary ) > 3 ? $ary[3] : '';
573
-
574
-            $image_meta = array(
575
-                'post_excerpt' => $img_caption,
576
-                'post_content' => $img_description,
577
-            );
578
-
579
-            //adding title only if it is not empty. It will default to the file name if it is not in the array
580
-            if ( ! empty( $img_title ) ) {
581
-                $image_meta['post_title'] = $img_title;
582
-            }
583
-
584
-            /**
585
-             * 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.
586
-             * Note: the method became public in GF 1.9.17.7, but we don't require that version yet.
587
-             */
588
-            require_once GRAVITYVIEW_DIR . 'includes/class-gravityview-gfformsmodel.php';
589
-            $media_id = GravityView_GFFormsModel::media_handle_upload( $img_url, $post_id, $image_meta );
590
-
591
-            // is this field set as featured image?
592
-            if ( $media_id && $field->postFeaturedImage ) {
593
-                set_post_thumbnail( $post_id, $media_id );
594
-            }
595
-
596
-        } elseif ( !empty( $_POST[ $input_name ] ) && is_array( $value ) ) {
597
-
598
-            $img_url = $_POST[ $input_name ];
449
+	/**
450
+	 * Remove max_files validation (done on gravityforms.js) to avoid conflicts with GravityView
451
+	 * Late validation done on self::custom_validation
452
+	 *
453
+	 * @param $plupload_init array Plupload settings
454
+	 * @param $form_id
455
+	 * @param $instance
456
+	 * @return mixed
457
+	 */
458
+	public function modify_fileupload_settings( $plupload_init, $form_id, $instance ) {
459
+		if( ! $this->is_edit_entry() ) {
460
+			return $plupload_init;
461
+		}
462
+
463
+		$plupload_init['gf_vars']['max_files'] = 0;
464
+
465
+		return $plupload_init;
466
+	}
467
+
468
+
469
+	/**
470
+	 * Unset adminOnly and convert field input key to string
471
+	 * @return array $form
472
+	 */
473
+	private function form_prepare_for_save() {
474
+
475
+		$form = $this->form;
476
+
477
+		/** @var GF_Field $field */
478
+		foreach( $form['fields'] as $k => &$field ) {
479
+
480
+			/**
481
+			 * Remove the fields with calculation formulas before save to avoid conflicts with GF logic
482
+			 * @since 1.16.3
483
+			 * @var GF_Field $field
484
+			 */
485
+			if( $field->has_calculation() ) {
486
+				unset( $form['fields'][ $k ] );
487
+			}
488
+
489
+			$field->adminOnly = false;
490
+
491
+			if( isset( $field->inputs ) && is_array( $field->inputs ) ) {
492
+				foreach( $field->inputs as $key => $input ) {
493
+					$field->inputs[ $key ][ 'id' ] = (string)$input['id'];
494
+				}
495
+			}
496
+		}
497
+
498
+		return $form;
499
+	}
500
+
501
+	private function update_calculation_fields() {
502
+
503
+		$form = self::$original_form;
504
+		$update = false;
505
+
506
+		// get the most up to date entry values
507
+		$entry = GFAPI::get_entry( $this->entry['id'] );
508
+
509
+		if( !empty( $this->fields_with_calculation ) ) {
510
+			$update = true;
511
+			foreach ( $this->fields_with_calculation as $calc_field ) {
512
+				$inputs = $calc_field->get_entry_inputs();
513
+				if ( is_array( $inputs ) ) {
514
+					foreach ( $inputs as $input ) {
515
+						$input_name = 'input_' . str_replace( '.', '_', $input['id'] );
516
+						$entry[ strval( $input['id'] ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
517
+					}
518
+				} else {
519
+					$input_name = 'input_' . str_replace( '.', '_', $calc_field->id);
520
+					$entry[ strval( $calc_field->id ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
521
+				}
522
+			}
523
+
524
+		}
525
+
526
+		if( $update ) {
527
+
528
+			$return_entry = GFAPI::update_entry( $entry );
529
+
530
+			if( is_wp_error( $return_entry ) ) {
531
+				do_action( 'gravityview_log_error', 'Updating the entry calculation fields failed', $return_entry );
532
+			} else {
533
+				do_action( 'gravityview_log_debug', 'Updating the entry calculation fields succeeded' );
534
+			}
535
+		}
536
+	}
537
+
538
+	/**
539
+	 * Handle updating the Post Image field
540
+	 *
541
+	 * Sets a new Featured Image if configured in Gravity Forms; otherwise uploads/updates media
542
+	 *
543
+	 * @since 1.17
544
+	 *
545
+	 * @uses GFFormsModel::media_handle_upload
546
+	 * @uses set_post_thumbnail
547
+	 * 
548
+	 * @param array $form GF Form array
549
+	 * @param GF_Field $field GF Field
550
+	 * @param string $field_id Numeric ID of the field
551
+	 * @param string $value
552
+	 * @param array $entry GF Entry currently being edited
553
+	 * @param int $post_id ID of the Post being edited
554
+	 *
555
+	 * @return mixed|string
556
+	 */
557
+	private function update_post_image( $form, $field, $field_id, $value, $entry, $post_id ) {
558
+
559
+		$input_name = 'input_' . $field_id;
560
+
561
+		if ( !empty( $_FILES[ $input_name ]['name'] ) ) {
562
+
563
+			// We have a new image
564
+
565
+			$value = RGFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'] );
566
+
567
+			$ary = ! empty( $value ) ? explode( '|:|', $value ) : array();
568
+			$img_url = rgar( $ary, 0 );
569
+
570
+			$img_title       = count( $ary ) > 1 ? $ary[1] : '';
571
+			$img_caption     = count( $ary ) > 2 ? $ary[2] : '';
572
+			$img_description = count( $ary ) > 3 ? $ary[3] : '';
573
+
574
+			$image_meta = array(
575
+				'post_excerpt' => $img_caption,
576
+				'post_content' => $img_description,
577
+			);
578
+
579
+			//adding title only if it is not empty. It will default to the file name if it is not in the array
580
+			if ( ! empty( $img_title ) ) {
581
+				$image_meta['post_title'] = $img_title;
582
+			}
583
+
584
+			/**
585
+			 * 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.
586
+			 * Note: the method became public in GF 1.9.17.7, but we don't require that version yet.
587
+			 */
588
+			require_once GRAVITYVIEW_DIR . 'includes/class-gravityview-gfformsmodel.php';
589
+			$media_id = GravityView_GFFormsModel::media_handle_upload( $img_url, $post_id, $image_meta );
590
+
591
+			// is this field set as featured image?
592
+			if ( $media_id && $field->postFeaturedImage ) {
593
+				set_post_thumbnail( $post_id, $media_id );
594
+			}
595
+
596
+		} elseif ( !empty( $_POST[ $input_name ] ) && is_array( $value ) ) {
597
+
598
+			$img_url = $_POST[ $input_name ];
599 599
 
600 600
 			$img_title       = rgar( $_POST, $input_name.'_1' );
601 601
 			$img_caption     = rgar( $_POST, $input_name .'_4' );
@@ -615,263 +615,263 @@  discard block
 block discarded – undo
615 615
 				// update image title, caption or description
616 616
 				wp_update_post( $image_meta );
617 617
 			}
618
-        } else {
619
-
620
-            // if we get here, image was removed or not set.
621
-            $value = '';
622
-
623
-            if ( $field->postFeaturedImage ) {
624
-                delete_post_thumbnail( $post_id );
625
-            }
626
-        }
627
-
628
-        return $value;
629
-    }
630
-
631
-    /**
632
-     * Loop through the fields being edited and if they include Post fields, update the Entry's post object
633
-     *
634
-     * @param array $form Gravity Forms form
635
-     *
636
-     * @return void
637
-     */
638
-    private function maybe_update_post_fields( $form ) {
639
-
640
-        if( empty( $this->entry['post_id'] ) ) {
641
-	        do_action( 'gravityview_log_debug', __METHOD__ . ': This entry has no post fields. Continuing...' );
642
-            return;
643
-        }
644
-
645
-        $post_id = $this->entry['post_id'];
646
-
647
-        // Security check
648
-        if( false === GVCommon::has_cap( 'edit_post', $post_id ) ) {
649
-            do_action( 'gravityview_log_error', 'The current user does not have the ability to edit Post #'.$post_id );
650
-            return;
651
-        }
652
-
653
-        $update_entry = false;
654
-
655
-        $updated_post = $original_post = get_post( $post_id );
656
-
657
-        foreach ( $this->entry as $field_id => $value ) {
658
-
659
-            $field = RGFormsModel::get_field( $form, $field_id );
660
-
661
-            if( ! $field ) {
662
-                continue;
663
-            }
664
-
665
-            if( GFCommon::is_post_field( $field ) && 'post_category' !== $field->type ) {
666
-
667
-                // Get the value of the field, including $_POSTed value
668
-                $value = RGFormsModel::get_field_value( $field );
669
-
670
-                // Use temporary entry variable, to make values available to fill_post_template() and update_post_image()
671
-                $entry_tmp = $this->entry;
672
-                $entry_tmp["{$field_id}"] = $value;
673
-
674
-                switch( $field->type ) {
675
-
676
-                    case 'post_title':
677
-                        $post_title = $value;
678
-                        if( rgar( $form, 'postTitleTemplateEnabled' ) ) {
679
-                            $post_title = $this->fill_post_template( $form['postTitleTemplate'], $form, $entry_tmp );
680
-                        }
681
-                        $updated_post->post_title = $post_title;
682
-                        $updated_post->post_name  = $post_title;
683
-                        unset( $post_title );
684
-                        break;
685
-
686
-                    case 'post_content':
687
-                        $post_content = $value;
688
-                        if( rgar( $form, 'postContentTemplateEnabled' ) ) {
689
-                            $post_content = $this->fill_post_template( $form['postContentTemplate'], $form, $entry_tmp, true );
690
-                        }
691
-                        $updated_post->post_content = $post_content;
692
-                        unset( $post_content );
693
-                        break;
694
-                    case 'post_excerpt':
695
-                        $updated_post->post_excerpt = $value;
696
-                        break;
697
-                    case 'post_tags':
698
-                        wp_set_post_tags( $post_id, $value, false );
699
-                        break;
700
-                    case 'post_category':
701
-                        break;
702
-                    case 'post_custom_field':
618
+		} else {
619
+
620
+			// if we get here, image was removed or not set.
621
+			$value = '';
622
+
623
+			if ( $field->postFeaturedImage ) {
624
+				delete_post_thumbnail( $post_id );
625
+			}
626
+		}
627
+
628
+		return $value;
629
+	}
630
+
631
+	/**
632
+	 * Loop through the fields being edited and if they include Post fields, update the Entry's post object
633
+	 *
634
+	 * @param array $form Gravity Forms form
635
+	 *
636
+	 * @return void
637
+	 */
638
+	private function maybe_update_post_fields( $form ) {
639
+
640
+		if( empty( $this->entry['post_id'] ) ) {
641
+			do_action( 'gravityview_log_debug', __METHOD__ . ': This entry has no post fields. Continuing...' );
642
+			return;
643
+		}
644
+
645
+		$post_id = $this->entry['post_id'];
646
+
647
+		// Security check
648
+		if( false === GVCommon::has_cap( 'edit_post', $post_id ) ) {
649
+			do_action( 'gravityview_log_error', 'The current user does not have the ability to edit Post #'.$post_id );
650
+			return;
651
+		}
652
+
653
+		$update_entry = false;
654
+
655
+		$updated_post = $original_post = get_post( $post_id );
656
+
657
+		foreach ( $this->entry as $field_id => $value ) {
658
+
659
+			$field = RGFormsModel::get_field( $form, $field_id );
660
+
661
+			if( ! $field ) {
662
+				continue;
663
+			}
664
+
665
+			if( GFCommon::is_post_field( $field ) && 'post_category' !== $field->type ) {
666
+
667
+				// Get the value of the field, including $_POSTed value
668
+				$value = RGFormsModel::get_field_value( $field );
669
+
670
+				// Use temporary entry variable, to make values available to fill_post_template() and update_post_image()
671
+				$entry_tmp = $this->entry;
672
+				$entry_tmp["{$field_id}"] = $value;
673
+
674
+				switch( $field->type ) {
675
+
676
+					case 'post_title':
677
+						$post_title = $value;
678
+						if( rgar( $form, 'postTitleTemplateEnabled' ) ) {
679
+							$post_title = $this->fill_post_template( $form['postTitleTemplate'], $form, $entry_tmp );
680
+						}
681
+						$updated_post->post_title = $post_title;
682
+						$updated_post->post_name  = $post_title;
683
+						unset( $post_title );
684
+						break;
685
+
686
+					case 'post_content':
687
+						$post_content = $value;
688
+						if( rgar( $form, 'postContentTemplateEnabled' ) ) {
689
+							$post_content = $this->fill_post_template( $form['postContentTemplate'], $form, $entry_tmp, true );
690
+						}
691
+						$updated_post->post_content = $post_content;
692
+						unset( $post_content );
693
+						break;
694
+					case 'post_excerpt':
695
+						$updated_post->post_excerpt = $value;
696
+						break;
697
+					case 'post_tags':
698
+						wp_set_post_tags( $post_id, $value, false );
699
+						break;
700
+					case 'post_category':
701
+						break;
702
+					case 'post_custom_field':
703 703
 						if ( is_array( $value ) && ( floatval( $field_id ) !== floatval( $field->id ) ) ) {
704 704
 							$value = $value[ $field_id ];
705 705
 						}
706 706
 
707
-                        if( ! empty( $field->customFieldTemplateEnabled ) ) {
708
-                            $value = $this->fill_post_template( $field->customFieldTemplate, $form, $entry_tmp, true );
709
-                        }
707
+						if( ! empty( $field->customFieldTemplateEnabled ) ) {
708
+							$value = $this->fill_post_template( $field->customFieldTemplate, $form, $entry_tmp, true );
709
+						}
710 710
 
711
-	                    if ( $this->is_field_json_encoded( $field ) && ! is_string( $value ) ) {
712
-		                    $value = function_exists('wp_json_encode') ? wp_json_encode( $value ) : json_encode( $value );
713
-	                    }
711
+						if ( $this->is_field_json_encoded( $field ) && ! is_string( $value ) ) {
712
+							$value = function_exists('wp_json_encode') ? wp_json_encode( $value ) : json_encode( $value );
713
+						}
714 714
 
715
-                        update_post_meta( $post_id, $field->postCustomFieldName, $value );
716
-                        break;
715
+						update_post_meta( $post_id, $field->postCustomFieldName, $value );
716
+						break;
717 717
 
718
-                    case 'post_image':
719
-                        $value = $this->update_post_image( $form, $field, $field_id, $value, $this->entry, $post_id );
720
-                        break;
718
+					case 'post_image':
719
+						$value = $this->update_post_image( $form, $field, $field_id, $value, $this->entry, $post_id );
720
+						break;
721 721
 
722
-                }
722
+				}
723 723
 
724
-                // update entry after
725
-                $this->entry["{$field_id}"] = $value;
724
+				// update entry after
725
+				$this->entry["{$field_id}"] = $value;
726 726
 
727
-                $update_entry = true;
727
+				$update_entry = true;
728 728
 
729
-                unset( $entry_tmp );
730
-            }
729
+				unset( $entry_tmp );
730
+			}
731 731
 
732
-        }
732
+		}
733 733
 
734
-        if( $update_entry ) {
734
+		if( $update_entry ) {
735 735
 
736
-            $return_entry = GFAPI::update_entry( $this->entry );
736
+			$return_entry = GFAPI::update_entry( $this->entry );
737 737
 
738
-            if( is_wp_error( $return_entry ) ) {
739
-               do_action( 'gravityview_log_error', 'Updating the entry post fields failed', array( '$this->entry' => $this->entry, '$return_entry' => $return_entry ) );
740
-            } else {
741
-                do_action( 'gravityview_log_debug', 'Updating the entry post fields for post #'.$post_id.' succeeded' );
742
-            }
738
+			if( is_wp_error( $return_entry ) ) {
739
+			   do_action( 'gravityview_log_error', 'Updating the entry post fields failed', array( '$this->entry' => $this->entry, '$return_entry' => $return_entry ) );
740
+			} else {
741
+				do_action( 'gravityview_log_debug', 'Updating the entry post fields for post #'.$post_id.' succeeded' );
742
+			}
743 743
 
744
-        }
744
+		}
745 745
 
746
-        $return_post = wp_update_post( $updated_post, true );
746
+		$return_post = wp_update_post( $updated_post, true );
747 747
 
748
-        if( is_wp_error( $return_post ) ) {
749
-            $return_post->add_data( $updated_post, '$updated_post' );
750
-            do_action( 'gravityview_log_error', 'Updating the post content failed', compact( 'updated_post', 'return_post' ) );
751
-        } else {
752
-            do_action( 'gravityview_log_debug', 'Updating the post content for post #'.$post_id.' succeeded', $updated_post );
753
-        }
754
-    }
748
+		if( is_wp_error( $return_post ) ) {
749
+			$return_post->add_data( $updated_post, '$updated_post' );
750
+			do_action( 'gravityview_log_error', 'Updating the post content failed', compact( 'updated_post', 'return_post' ) );
751
+		} else {
752
+			do_action( 'gravityview_log_debug', 'Updating the post content for post #'.$post_id.' succeeded', $updated_post );
753
+		}
754
+	}
755 755
 
756 756
 	/**
757
-     * Is the field stored in a JSON-encoded manner?
758
-     *
757
+	 * Is the field stored in a JSON-encoded manner?
758
+	 *
759 759
 	 * @param GF_Field $field
760 760
 	 *
761 761
 	 * @return bool True: stored in DB json_encode()'d; False: not encoded
762 762
 	 */
763
-    private function is_field_json_encoded( $field ) {
763
+	private function is_field_json_encoded( $field ) {
764 764
 
765
-	    $json_encoded = false;
765
+		$json_encoded = false;
766 766
 
767
-        $input_type = RGFormsModel::get_input_type( $field );
767
+		$input_type = RGFormsModel::get_input_type( $field );
768 768
 
769
-	    // Only certain custom field types are supported
770
-	    switch( $input_type ) {
771
-		    case 'fileupload':
772
-		    case 'list':
773
-		    case 'multiselect':
774
-			    $json_encoded = true;
775
-			    break;
776
-	    }
769
+		// Only certain custom field types are supported
770
+		switch( $input_type ) {
771
+			case 'fileupload':
772
+			case 'list':
773
+			case 'multiselect':
774
+				$json_encoded = true;
775
+				break;
776
+		}
777 777
 
778
-	    return $json_encoded;
779
-    }
778
+		return $json_encoded;
779
+	}
780 780
 
781
-    /**
782
-     * Convert a field content template into prepared output
783
-     *
784
-     * @uses GravityView_GFFormsModel::get_post_field_images()
785
-     *
786
-     * @since 1.17
787
-     *
788
-     * @param string $template The content template for the field
789
-     * @param array $form Gravity Forms form
790
-     * @param bool $do_shortcode Whether to process shortcode inside content. In GF, only run on Custom Field and Post Content fields
791
-     *
792
-     * @return string
793
-     */
794
-    private function fill_post_template( $template, $form, $entry, $do_shortcode = false ) {
781
+	/**
782
+	 * Convert a field content template into prepared output
783
+	 *
784
+	 * @uses GravityView_GFFormsModel::get_post_field_images()
785
+	 *
786
+	 * @since 1.17
787
+	 *
788
+	 * @param string $template The content template for the field
789
+	 * @param array $form Gravity Forms form
790
+	 * @param bool $do_shortcode Whether to process shortcode inside content. In GF, only run on Custom Field and Post Content fields
791
+	 *
792
+	 * @return string
793
+	 */
794
+	private function fill_post_template( $template, $form, $entry, $do_shortcode = false ) {
795 795
 
796
-        require_once GRAVITYVIEW_DIR . 'includes/class-gravityview-gfformsmodel.php';
796
+		require_once GRAVITYVIEW_DIR . 'includes/class-gravityview-gfformsmodel.php';
797 797
 
798
-        $post_images = GravityView_GFFormsModel::get_post_field_images( $form, $entry );
798
+		$post_images = GravityView_GFFormsModel::get_post_field_images( $form, $entry );
799 799
 
800
-        //replacing post image variables
801
-        $output = GFCommon::replace_variables_post_image( $template, $post_images, $entry );
800
+		//replacing post image variables
801
+		$output = GFCommon::replace_variables_post_image( $template, $post_images, $entry );
802 802
 
803
-        //replacing all other variables
804
-        $output = GFCommon::replace_variables( $output, $form, $entry, false, false, false );
803
+		//replacing all other variables
804
+		$output = GFCommon::replace_variables( $output, $form, $entry, false, false, false );
805 805
 
806
-        // replace conditional shortcodes
807
-        if( $do_shortcode ) {
808
-            $output = do_shortcode( $output );
809
-        }
806
+		// replace conditional shortcodes
807
+		if( $do_shortcode ) {
808
+			$output = do_shortcode( $output );
809
+		}
810 810
 
811
-        return $output;
812
-    }
811
+		return $output;
812
+	}
813 813
 
814 814
 
815
-    /**
816
-     * Perform actions normally performed after updating a lead
817
-     *
818
-     * @since 1.8
819
-     *
820
-     * @see GFEntryDetail::lead_detail_page()
821
-     *
822
-     * @return void
823
-     */
824
-    private function after_update() {
815
+	/**
816
+	 * Perform actions normally performed after updating a lead
817
+	 *
818
+	 * @since 1.8
819
+	 *
820
+	 * @see GFEntryDetail::lead_detail_page()
821
+	 *
822
+	 * @return void
823
+	 */
824
+	private function after_update() {
825 825
 
826
-        do_action( 'gform_after_update_entry', $this->form, $this->entry['id'], self::$original_entry );
827
-        do_action( "gform_after_update_entry_{$this->form['id']}", $this->form, $this->entry['id'], self::$original_entry );
826
+		do_action( 'gform_after_update_entry', $this->form, $this->entry['id'], self::$original_entry );
827
+		do_action( "gform_after_update_entry_{$this->form['id']}", $this->form, $this->entry['id'], self::$original_entry );
828 828
 
829
-        // Re-define the entry now that we've updated it.
830
-        $entry = RGFormsModel::get_lead( $this->entry['id'] );
829
+		// Re-define the entry now that we've updated it.
830
+		$entry = RGFormsModel::get_lead( $this->entry['id'] );
831 831
 
832
-        $entry = GFFormsModel::set_entry_meta( $entry, $this->form );
832
+		$entry = GFFormsModel::set_entry_meta( $entry, $this->form );
833 833
 
834
-        // We need to clear the cache because Gravity Forms caches the field values, which
835
-        // we have just updated.
836
-        foreach ($this->form['fields'] as $key => $field) {
837
-            GFFormsModel::refresh_lead_field_value( $entry['id'], $field->id );
838
-        }
834
+		// We need to clear the cache because Gravity Forms caches the field values, which
835
+		// we have just updated.
836
+		foreach ($this->form['fields'] as $key => $field) {
837
+			GFFormsModel::refresh_lead_field_value( $entry['id'], $field->id );
838
+		}
839 839
 
840
-        $this->entry = $entry;
841
-    }
840
+		$this->entry = $entry;
841
+	}
842 842
 
843 843
 
844
-    /**
845
-     * Display the Edit Entry form
846
-     *
847
-     * @return void
848
-     */
849
-    public function edit_entry_form() {
844
+	/**
845
+	 * Display the Edit Entry form
846
+	 *
847
+	 * @return void
848
+	 */
849
+	public function edit_entry_form() {
850 850
 
851
-        ?>
851
+		?>
852 852
 
853 853
         <div class="gv-edit-entry-wrapper"><?php
854 854
 
855
-            $javascript = gravityview_ob_include( GravityView_Edit_Entry::$file .'/partials/inline-javascript.php', $this );
855
+			$javascript = gravityview_ob_include( GravityView_Edit_Entry::$file .'/partials/inline-javascript.php', $this );
856 856
 
857
-            /**
858
-             * Fixes weird wpautop() issue
859
-             * @see https://github.com/katzwebservices/GravityView/issues/451
860
-             */
861
-            echo gravityview_strip_whitespace( $javascript );
857
+			/**
858
+			 * Fixes weird wpautop() issue
859
+			 * @see https://github.com/katzwebservices/GravityView/issues/451
860
+			 */
861
+			echo gravityview_strip_whitespace( $javascript );
862 862
 
863
-            ?><h2 class="gv-edit-entry-title">
863
+			?><h2 class="gv-edit-entry-title">
864 864
                 <span><?php
865 865
 
866
-                    /**
867
-                     * @filter `gravityview_edit_entry_title` Modify the edit entry title
868
-                     * @param string $edit_entry_title Modify the "Edit Entry" title
869
-                     * @param GravityView_Edit_Entry_Render $this This object
870
-                     */
871
-                    $edit_entry_title = apply_filters('gravityview_edit_entry_title', __('Edit Entry', 'gravityview'), $this );
866
+					/**
867
+					 * @filter `gravityview_edit_entry_title` Modify the edit entry title
868
+					 * @param string $edit_entry_title Modify the "Edit Entry" title
869
+					 * @param GravityView_Edit_Entry_Render $this This object
870
+					 */
871
+					$edit_entry_title = apply_filters('gravityview_edit_entry_title', __('Edit Entry', 'gravityview'), $this );
872 872
 
873
-                    echo esc_attr( $edit_entry_title );
874
-            ?></span>
873
+					echo esc_attr( $edit_entry_title );
874
+			?></span>
875 875
             </h2>
876 876
 
877 877
             <?php $this->maybe_print_message(); ?>
@@ -882,14 +882,14 @@  discard block
 block discarded – undo
882 882
 
883 883
                 <?php
884 884
 
885
-                wp_nonce_field( self::$nonce_key, self::$nonce_key );
885
+				wp_nonce_field( self::$nonce_key, self::$nonce_key );
886 886
 
887
-                wp_nonce_field( self::$nonce_field, self::$nonce_field, false );
887
+				wp_nonce_field( self::$nonce_field, self::$nonce_field, false );
888 888
 
889
-                // Print the actual form HTML
890
-                $this->render_edit_form();
889
+				// Print the actual form HTML
890
+				$this->render_edit_form();
891 891
 
892
-                ?>
892
+				?>
893 893
             </form>
894 894
 
895 895
             <script>
@@ -901,643 +901,643 @@  discard block
 block discarded – undo
901 901
         </div>
902 902
 
903 903
     <?php
904
-    }
905
-
906
-    /**
907
-     * Display success or error message if the form has been submitted
908
-     *
909
-     * @uses GVCommon::generate_notice
910
-     *
911
-     * @since 1.16.2.2
912
-     *
913
-     * @return void
914
-     */
915
-    private function maybe_print_message() {
916
-
917
-        if( rgpost('action') === 'update' ) {
918
-
919
-            $back_link = esc_url( remove_query_arg( array( 'page', 'view', 'edit' ) ) );
920
-
921
-            if( ! $this->is_valid ){
922
-
923
-                // Keeping this compatible with Gravity Forms.
924
-                $validation_message = "<div class='validation_error'>" . __('There was a problem with your submission.', 'gravityview') . " " . __('Errors have been highlighted below.', 'gravityview') . "</div>";
925
-                $message = apply_filters("gform_validation_message_{$this->form['id']}", apply_filters("gform_validation_message", $validation_message, $this->form), $this->form);
926
-
927
-                echo GVCommon::generate_notice( $message , 'gv-error' );
928
-
929
-            } else {
930
-                $entry_updated_message = sprintf( esc_attr__('Entry Updated. %sReturn to Entry%s', 'gravityview'), '<a href="'. $back_link .'">', '</a>' );
931
-
932
-                /**
933
-                 * @filter `gravityview/edit_entry/success` Modify the edit entry success message (including the anchor link)
934
-                 * @since 1.5.4
935
-                 * @param string $entry_updated_message Existing message
936
-                 * @param int $view_id View ID
937
-                 * @param array $entry Gravity Forms entry array
938
-                 * @param string $back_link URL to return to the original entry. @since 1.6
939
-                 */
940
-                $message = apply_filters( 'gravityview/edit_entry/success', $entry_updated_message , $this->view_id, $this->entry, $back_link );
941
-
942
-                echo GVCommon::generate_notice( $message );
943
-            }
944
-
945
-        }
946
-    }
947
-
948
-    /**
949
-     * Display the Edit Entry form in the original Gravity Forms format
950
-     *
951
-     * @since 1.9
952
-     *
953
-     * @return void
954
-     */
955
-    private function render_edit_form() {
956
-
957
-        /**
958
-         * @action `gravityview/edit-entry/render/before` Before rendering the Edit Entry form
959
-         * @since 1.17
960
-         * @param GravityView_Edit_Entry_Render $this
961
-         */
962
-        do_action( 'gravityview/edit-entry/render/before', $this );
963
-
964
-        add_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields'), 5000, 3 );
965
-        add_filter( 'gform_submit_button', array( $this, 'render_form_buttons') );
966
-        add_filter( 'gform_disable_view_counter', '__return_true' );
967
-
968
-        add_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5, 5 );
969
-        add_filter( 'gform_field_input', array( $this, 'modify_edit_field_input' ), 10, 5 );
970
-
971
-        // We need to remove the fake $_GET['page'] arg to avoid rendering form as if in admin.
972
-        unset( $_GET['page'] );
973
-
974
-        // TODO: Verify multiple-page forms
975
-
976
-        ob_start(); // Prevent PHP warnings possibly caused by prefilling list fields for conditional logic
977
-
978
-        $html = GFFormDisplay::get_form( $this->form['id'], false, false, true, $this->entry );
979
-
980
-        ob_get_clean();
981
-
982
-	    remove_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields' ), 5000 );
983
-        remove_filter( 'gform_submit_button', array( $this, 'render_form_buttons' ) );
984
-        remove_filter( 'gform_disable_view_counter', '__return_true' );
985
-        remove_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5 );
986
-        remove_filter( 'gform_field_input', array( $this, 'modify_edit_field_input' ), 10 );
987
-
988
-        echo $html;
989
-
990
-        /**
991
-         * @action `gravityview/edit-entry/render/after` After rendering the Edit Entry form
992
-         * @since 1.17
993
-         * @param GravityView_Edit_Entry_Render $this
994
-         */
995
-        do_action( 'gravityview/edit-entry/render/after', $this );
996
-    }
997
-
998
-    /**
999
-     * Display the Update/Cancel/Delete buttons for the Edit Entry form
1000
-     * @since 1.8
1001
-     * @return string
1002
-     */
1003
-    public function render_form_buttons() {
1004
-        return gravityview_ob_include( GravityView_Edit_Entry::$file .'/partials/form-buttons.php', $this );
1005
-    }
1006
-
1007
-
1008
-    /**
1009
-     * Modify the form fields that are shown when using GFFormDisplay::get_form()
1010
-     *
1011
-     * By default, all fields will be shown. We only want the Edit Tab configured fields to be shown.
1012
-     *
1013
-     * @param array $form
1014
-     * @param boolean $ajax Whether in AJAX mode
1015
-     * @param array|string $field_values Passed parameters to the form
1016
-     *
1017
-     * @since 1.9
1018
-     *
1019
-     * @return array Modified form array
1020
-     */
1021
-    public function filter_modify_form_fields( $form, $ajax = false, $field_values = '' ) {
1022
-
1023
-        // In case we have validated the form, use it to inject the validation results into the form render
1024
-        if( isset( $this->form_after_validation ) ) {
1025
-            $form = $this->form_after_validation;
1026
-        } else {
1027
-            $form['fields'] = $this->get_configured_edit_fields( $form, $this->view_id );
1028
-        }
1029
-
1030
-        $form = $this->filter_conditional_logic( $form );
1031
-
1032
-        $form = $this->prefill_conditional_logic( $form );
1033
-
1034
-        // for now we don't support Save and Continue feature.
1035
-        if( ! self::$supports_save_and_continue ) {
1036
-	        unset( $form['save'] );
1037
-        }
1038
-
1039
-        return $form;
1040
-    }
1041
-
1042
-    /**
1043
-     * 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.
1044
-     *
1045
-     * @since 1.16.2.2
1046
-     *
1047
-     * @param string $field_content Always empty. Returning not-empty overrides the input.
1048
-     * @param GF_Field $field
1049
-     * @param string|array $value If array, it's a field with multiple inputs. If string, single input.
1050
-     * @param int $lead_id Lead ID. Always 0 for the `gform_field_input` filter.
1051
-     * @param int $form_id Form ID
1052
-     *
1053
-     * @return string If error, the error message. If no error, blank string (modify_edit_field_input() runs next)
1054
-     */
1055
-    public function verify_user_can_edit_post( $field_content = '', $field, $value, $lead_id = 0, $form_id ) {
1056
-
1057
-        if( GFCommon::is_post_field( $field ) ) {
1058
-
1059
-            $message = null;
1060
-
1061
-            // First, make sure they have the capability to edit the post.
1062
-            if( false === current_user_can( 'edit_post', $this->entry['post_id'] ) ) {
1063
-
1064
-                /**
1065
-                 * @filter `gravityview/edit_entry/unsupported_post_field_text` Modify the message when someone isn't able to edit a post
1066
-                 * @param string $message The existing "You don't have permission..." text
1067
-                 */
1068
-                $message = apply_filters('gravityview/edit_entry/unsupported_post_field_text', __('You don&rsquo;t have permission to edit this post.', 'gravityview') );
1069
-
1070
-            } elseif( null === get_post( $this->entry['post_id'] ) ) {
1071
-                /**
1072
-                 * @filter `gravityview/edit_entry/no_post_text` Modify the message when someone is editing an entry attached to a post that no longer exists
1073
-                 * @param string $message The existing "This field is not editable; the post no longer exists." text
1074
-                 */
1075
-                $message = apply_filters('gravityview/edit_entry/no_post_text', __('This field is not editable; the post no longer exists.', 'gravityview' ) );
1076
-            }
1077
-
1078
-            if( $message ) {
1079
-                $field_content = sprintf('<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) );
1080
-            }
1081
-        }
1082
-
1083
-        return $field_content;
1084
-    }
1085
-
1086
-    /**
1087
-     *
1088
-     * Fill-in the saved values into the form inputs
1089
-     *
1090
-     * @param string $field_content Always empty. Returning not-empty overrides the input.
1091
-     * @param GF_Field $field
1092
-     * @param string|array $value If array, it's a field with multiple inputs. If string, single input.
1093
-     * @param int $lead_id Lead ID. Always 0 for the `gform_field_input` filter.
1094
-     * @param int $form_id Form ID
1095
-     *
1096
-     * @return mixed
1097
-     */
1098
-    public function modify_edit_field_input( $field_content = '', $field, $value, $lead_id = 0, $form_id ) {
1099
-
1100
-        $gv_field = GravityView_Fields::get_associated_field( $field );
1101
-
1102
-        // If the form has been submitted, then we don't need to pre-fill the values,
1103
-        // Except for fileupload type and when a field input is overridden- run always!!
1104
-        if(
1105
-            ( $this->is_edit_entry_submission() && !in_array( $field->type, array( 'fileupload', 'post_image' ) ) )
1106
-            && false === ( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) )
1107
-            && ! GFCommon::is_product_field( $field->type )
1108
-            || ! empty( $field_content )
1109
-            || in_array( $field->type, array( 'honeypot' ) )
1110
-        ) {
1111
-	        return $field_content;
1112
-        }
1113
-
1114
-        // SET SOME FIELD DEFAULTS TO PREVENT ISSUES
1115
-        $field->adminOnly = false; /** @see GFFormDisplay::get_counter_init_script() need to prevent adminOnly */
1116
-
1117
-        $field_value = $this->get_field_value( $field );
1118
-
1119
-	    // Prevent any PHP warnings, like undefined index
1120
-	    ob_start();
1121
-
1122
-	    $return = null;
1123
-
1124
-        /** @var GravityView_Field $gv_field */
1125
-        if( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) {
1126
-            $return = $gv_field->get_field_input( $this->form, $field_value, $this->entry, $field );
1127
-        } else {
1128
-	        $return = $field->get_field_input( $this->form, $field_value, $this->entry );
1129
-	    }
1130
-
1131
-	    // If there was output, it's an error
1132
-	    $warnings = ob_get_clean();
1133
-
1134
-	    if( !empty( $warnings ) ) {
1135
-		    do_action( 'gravityview_log_error', __METHOD__ . $warnings, $field_value );
1136
-	    }
1137
-
1138
-        return $return;
1139
-    }
1140
-
1141
-    /**
1142
-     * Modify the value for the current field input
1143
-     *
1144
-     * @param GF_Field $field
1145
-     *
1146
-     * @return array|mixed|string
1147
-     */
1148
-    private function get_field_value( $field ) {
1149
-
1150
-        /**
1151
-         * @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.
1152
-         * @param boolean True: override saved values; False: don't override (default)
1153
-         * @param $field GF_Field object Gravity Forms field object
1154
-         * @since 1.13
1155
-         */
1156
-        $override_saved_value = apply_filters( 'gravityview/edit_entry/pre_populate/override', false, $field );
1157
-
1158
-        // We're dealing with multiple inputs (e.g. checkbox) but not time or date (as it doesn't store data in input IDs)
1159
-        if( isset( $field->inputs ) && is_array( $field->inputs ) && !in_array( $field->type, array( 'time', 'date' ) ) ) {
1160
-
1161
-            $field_value = array();
1162
-
1163
-            // only accept pre-populated values if the field doesn't have any choice selected.
1164
-            $allow_pre_populated = $field->allowsPrepopulate;
1165
-
1166
-            foreach ( (array)$field->inputs as $input ) {
1167
-
1168
-                $input_id = strval( $input['id'] );
1169
-                
1170
-                if ( isset( $this->entry[ $input_id ] ) && ! gv_empty( $this->entry[ $input_id ], false, false ) ) {
1171
-                    $field_value[ $input_id ] =  'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ];
1172
-                    $allow_pre_populated = false;
1173
-                }
1174
-
1175
-            }
1176
-
1177
-            $pre_value = $field->get_value_submission( array(), false );
1178
-
1179
-            $field_value = ! $allow_pre_populated && ! ( $override_saved_value && !gv_empty( $pre_value, false, false ) ) ? $field_value : $pre_value;
1180
-
1181
-        } else {
1182
-
1183
-            $id = intval( $field->id );
1184
-
1185
-            // get pre-populated value if exists
1186
-            $pre_value = $field->allowsPrepopulate ? GFFormsModel::get_parameter_value( $field->inputName, array(), $field ) : '';
1187
-
1188
-            // saved field entry value (if empty, fallback to the pre-populated value, if exists)
1189
-            // or pre-populated value if not empty and set to override saved value
1190
-            $field_value = !gv_empty( $this->entry[ $id ], false, false ) && ! ( $override_saved_value && !gv_empty( $pre_value, false, false ) ) ? $this->entry[ $id ] : $pre_value;
1191
-
1192
-            // in case field is post_category but inputType is select, multi-select or radio, convert value into array of category IDs.
1193
-            if ( 'post_category' === $field->type && !gv_empty( $field_value, false, false ) ) {
1194
-                $categories = array();
1195
-                foreach ( explode( ',', $field_value ) as $cat_string ) {
1196
-                    $categories[] = GFCommon::format_post_category( $cat_string, true );
1197
-                }
1198
-                $field_value = 'multiselect' === $field->get_input_type() ? $categories : implode( '', $categories );
1199
-            }
1200
-
1201
-        }
1202
-
1203
-        // if value is empty get the default value if defined
1204
-        $field_value = $field->get_value_default_if_empty( $field_value );
1205
-
1206
-	    /**
1207
-	     * @filter `gravityview/edit_entry/field_value` Change the value of an Edit Entry field, if needed
1208
-	     * @since 1.11
1209
-	     * @since 1.20 Added third param
1210
-	     * @param mixed $field_value field value used to populate the input
1211
-	     * @param object $field Gravity Forms field object ( Class GF_Field )
1212
-	     * @param GravityView_Edit_Entry_Render $this Current object
1213
-	     */
1214
-	    $field_value = apply_filters( 'gravityview/edit_entry/field_value', $field_value, $field, $this );
1215
-
1216
-	    /**
1217
-	     * @filter `gravityview/edit_entry/field_value_{field_type}` Change the value of an Edit Entry field for a specific field type
1218
-	     * @since 1.17
1219
-	     * @since 1.20 Added third param
1220
-	     * @param mixed $field_value field value used to populate the input
1221
-	     * @param GF_Field $field Gravity Forms field object
1222
-	     * @param GravityView_Edit_Entry_Render $this Current object
1223
-	     */
1224
-	    $field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type , $field_value, $field, $this );
1225
-
1226
-        return $field_value;
1227
-    }
904
+	}
1228 905
 
906
+	/**
907
+	 * Display success or error message if the form has been submitted
908
+	 *
909
+	 * @uses GVCommon::generate_notice
910
+	 *
911
+	 * @since 1.16.2.2
912
+	 *
913
+	 * @return void
914
+	 */
915
+	private function maybe_print_message() {
1229 916
 
1230
-    // ---- Entry validation
917
+		if( rgpost('action') === 'update' ) {
1231 918
 
1232
-    /**
1233
-     * Add field keys that Gravity Forms expects.
1234
-     *
1235
-     * @see GFFormDisplay::validate()
1236
-     * @param  array $form GF Form
1237
-     * @return array       Modified GF Form
1238
-     */
1239
-    public function gform_pre_validation( $form ) {
919
+			$back_link = esc_url( remove_query_arg( array( 'page', 'view', 'edit' ) ) );
1240 920
 
1241
-        if( ! $this->verify_nonce() ) {
1242
-            return $form;
1243
-        }
1244
-
1245
-        // Fix PHP warning regarding undefined index.
1246
-        foreach ( $form['fields'] as &$field) {
1247
-
1248
-            // This is because we're doing admin form pretending to be front-end, so Gravity Forms
1249
-            // expects certain field array items to be set.
1250
-            foreach ( array( 'noDuplicates', 'adminOnly', 'inputType', 'isRequired', 'enablePrice', 'inputs', 'allowedExtensions' ) as $key ) {
1251
-	            $field->{$key} = isset( $field->{$key} ) ? $field->{$key} : NULL;
1252
-            }
1253
-
1254
-            switch( RGFormsModel::get_input_type( $field ) ) {
1255
-
1256
-                /**
1257
-                 * 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.
1258
-                 *
1259
-                 * 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.
1260
-                 *
1261
-                 * @hack
1262
-                 */
1263
-                case 'fileupload':
1264
-
1265
-                    // Set the previous value
1266
-                    $entry = $this->get_entry();
1267
-
1268
-                    $input_name = 'input_'.$field->id;
1269
-                    $form_id = $form['id'];
1270
-
1271
-                    $value = NULL;
921
+			if( ! $this->is_valid ){
1272 922
 
1273
-                    // Use the previous entry value as the default.
1274
-                    if( isset( $entry[ $field->id ] ) ) {
1275
-                        $value = $entry[ $field->id ];
1276
-                    }
1277
-
1278
-                    // If this is a single upload file
1279
-                    if( !empty( $_FILES[ $input_name ] ) && !empty( $_FILES[ $input_name ]['name'] ) ) {
1280
-                        $file_path = GFFormsModel::get_file_upload_path( $form['id'], $_FILES[ $input_name ]['name'] );
1281
-                        $value = $file_path['url'];
1282
-
1283
-                    } else {
1284
-
1285
-                        // Fix PHP warning on line 1498 of form_display.php for post_image fields
1286
-                        // Fix PHP Notice:  Undefined index:  size in form_display.php on line 1511
1287
-                        $_FILES[ $input_name ] = array('name' => '', 'size' => '' );
1288
-
1289
-                    }
1290
-
1291
-                    if( rgar($field, "multipleFiles") ) {
1292
-
1293
-                        // If there are fresh uploads, process and merge them.
1294
-                        // Otherwise, use the passed values, which should be json-encoded array of URLs
1295
-                        if( isset( GFFormsModel::$uploaded_files[$form_id][$input_name] ) ) {
1296
-                            $value = empty( $value ) ? '[]' : $value;
1297
-                            $value = stripslashes_deep( $value );
1298
-                            $value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'], array());
1299
-                        }
923
+				// Keeping this compatible with Gravity Forms.
924
+				$validation_message = "<div class='validation_error'>" . __('There was a problem with your submission.', 'gravityview') . " " . __('Errors have been highlighted below.', 'gravityview') . "</div>";
925
+				$message = apply_filters("gform_validation_message_{$this->form['id']}", apply_filters("gform_validation_message", $validation_message, $this->form), $this->form);
1300 926
 
1301
-                    } else {
927
+				echo GVCommon::generate_notice( $message , 'gv-error' );
1302 928
 
1303
-                        // A file already exists when editing an entry
1304
-                        // We set this to solve issue when file upload fields are required.
1305
-                        GFFormsModel::$uploaded_files[ $form_id ][ $input_name ] = $value;
1306
-
1307
-                    }
1308
-
1309
-                    $this->entry[ $input_name ] = $value;
1310
-                    $_POST[ $input_name ] = $value;
929
+			} else {
930
+				$entry_updated_message = sprintf( esc_attr__('Entry Updated. %sReturn to Entry%s', 'gravityview'), '<a href="'. $back_link .'">', '</a>' );
1311 931
 
1312
-                    break;
932
+				/**
933
+				 * @filter `gravityview/edit_entry/success` Modify the edit entry success message (including the anchor link)
934
+				 * @since 1.5.4
935
+				 * @param string $entry_updated_message Existing message
936
+				 * @param int $view_id View ID
937
+				 * @param array $entry Gravity Forms entry array
938
+				 * @param string $back_link URL to return to the original entry. @since 1.6
939
+				 */
940
+				$message = apply_filters( 'gravityview/edit_entry/success', $entry_updated_message , $this->view_id, $this->entry, $back_link );
1313 941
 
1314
-                case 'number':
1315
-                    // Fix "undefined index" issue at line 1286 in form_display.php
1316
-                    if( !isset( $_POST['input_'.$field->id ] ) ) {
1317
-                        $_POST['input_'.$field->id ] = NULL;
1318
-                    }
1319
-                    break;
1320
-            }
942
+				echo GVCommon::generate_notice( $message );
943
+			}
1321 944
 
1322
-        }
945
+		}
946
+	}
1323 947
 
1324
-        return $form;
1325
-    }
948
+	/**
949
+	 * Display the Edit Entry form in the original Gravity Forms format
950
+	 *
951
+	 * @since 1.9
952
+	 *
953
+	 * @return void
954
+	 */
955
+	private function render_edit_form() {
1326 956
 
957
+		/**
958
+		 * @action `gravityview/edit-entry/render/before` Before rendering the Edit Entry form
959
+		 * @since 1.17
960
+		 * @param GravityView_Edit_Entry_Render $this
961
+		 */
962
+		do_action( 'gravityview/edit-entry/render/before', $this );
1327 963
 
1328
-    /**
1329
-     * Process validation for a edit entry submission
1330
-     *
1331
-     * Sets the `is_valid` object var
1332
-     *
1333
-     * @return void
1334
-     */
1335
-    private function validate() {
964
+		add_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields'), 5000, 3 );
965
+		add_filter( 'gform_submit_button', array( $this, 'render_form_buttons') );
966
+		add_filter( 'gform_disable_view_counter', '__return_true' );
1336 967
 
1337
-        /**
1338
-         * If using GF User Registration Add-on, remove the validation step, otherwise generates error when updating the entry
1339
-         * GF User Registration Add-on version > 3.x has a different class name
1340
-         * @since 1.16.2
1341
-         */
1342
-        if ( class_exists( 'GF_User_Registration' ) ) {
1343
-            remove_filter( 'gform_validation', array( GF_User_Registration::get_instance(), 'validate' ) );
1344
-        } else  if ( class_exists( 'GFUser' ) ) {
1345
-            remove_filter( 'gform_validation', array( 'GFUser', 'user_registration_validation' ) );
1346
-        }
968
+		add_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5, 5 );
969
+		add_filter( 'gform_field_input', array( $this, 'modify_edit_field_input' ), 10, 5 );
1347 970
 
971
+		// We need to remove the fake $_GET['page'] arg to avoid rendering form as if in admin.
972
+		unset( $_GET['page'] );
1348 973
 
1349
-        /**
1350
-         * For some crazy reason, Gravity Forms doesn't validate Edit Entry form submissions.
1351
-         * You can enter whatever you want!
1352
-         * We try validating, and customize the results using `self::custom_validation()`
1353
-         */
1354
-        add_filter( 'gform_validation_'. $this->form_id, array( $this, 'custom_validation' ), 10, 4);
974
+		// TODO: Verify multiple-page forms
1355 975
 
1356
-        // Needed by the validate funtion
1357
-        $failed_validation_page = NULL;
1358
-        $field_values = RGForms::post( 'gform_field_values' );
976
+		ob_start(); // Prevent PHP warnings possibly caused by prefilling list fields for conditional logic
1359 977
 
1360
-        // Prevent entry limit from running when editing an entry, also
1361
-        // prevent form scheduling from preventing editing
1362
-        unset( $this->form['limitEntries'], $this->form['scheduleForm'] );
978
+		$html = GFFormDisplay::get_form( $this->form['id'], false, false, true, $this->entry );
1363 979
 
1364
-        // Hide fields depending on Edit Entry settings
1365
-        $this->form['fields'] = $this->get_configured_edit_fields( $this->form, $this->view_id );
980
+		ob_get_clean();
1366 981
 
1367
-        $this->is_valid = GFFormDisplay::validate( $this->form, $field_values, 1, $failed_validation_page );
982
+		remove_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields' ), 5000 );
983
+		remove_filter( 'gform_submit_button', array( $this, 'render_form_buttons' ) );
984
+		remove_filter( 'gform_disable_view_counter', '__return_true' );
985
+		remove_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5 );
986
+		remove_filter( 'gform_field_input', array( $this, 'modify_edit_field_input' ), 10 );
1368 987
 
1369
-        remove_filter( 'gform_validation_'. $this->form_id, array( $this, 'custom_validation' ), 10 );
1370
-    }
988
+		echo $html;
1371 989
 
990
+		/**
991
+		 * @action `gravityview/edit-entry/render/after` After rendering the Edit Entry form
992
+		 * @since 1.17
993
+		 * @param GravityView_Edit_Entry_Render $this
994
+		 */
995
+		do_action( 'gravityview/edit-entry/render/after', $this );
996
+	}
1372 997
 
1373
-    /**
1374
-     * Make validation work for Edit Entry
1375
-     *
1376
-     * Because we're calling the GFFormDisplay::validate() in an unusual way (as a front-end
1377
-     * form pretending to be a back-end form), validate() doesn't know we _can't_ edit post
1378
-     * fields. This goes through all the fields and if they're an invalid post field, we
1379
-     * set them as valid. If there are still issues, we'll return false.
1380
-     *
1381
-     * @param  [type] $validation_results [description]
1382
-     * @return [type]                     [description]
1383
-     */
1384
-    public function custom_validation( $validation_results ) {
998
+	/**
999
+	 * Display the Update/Cancel/Delete buttons for the Edit Entry form
1000
+	 * @since 1.8
1001
+	 * @return string
1002
+	 */
1003
+	public function render_form_buttons() {
1004
+		return gravityview_ob_include( GravityView_Edit_Entry::$file .'/partials/form-buttons.php', $this );
1005
+	}
1385 1006
 
1386
-        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results: ', $validation_results );
1387 1007
 
1388
-        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
1008
+	/**
1009
+	 * Modify the form fields that are shown when using GFFormDisplay::get_form()
1010
+	 *
1011
+	 * By default, all fields will be shown. We only want the Edit Tab configured fields to be shown.
1012
+	 *
1013
+	 * @param array $form
1014
+	 * @param boolean $ajax Whether in AJAX mode
1015
+	 * @param array|string $field_values Passed parameters to the form
1016
+	 *
1017
+	 * @since 1.9
1018
+	 *
1019
+	 * @return array Modified form array
1020
+	 */
1021
+	public function filter_modify_form_fields( $form, $ajax = false, $field_values = '' ) {
1389 1022
 
1390
-        $gv_valid = true;
1023
+		// In case we have validated the form, use it to inject the validation results into the form render
1024
+		if( isset( $this->form_after_validation ) ) {
1025
+			$form = $this->form_after_validation;
1026
+		} else {
1027
+			$form['fields'] = $this->get_configured_edit_fields( $form, $this->view_id );
1028
+		}
1391 1029
 
1392
-        foreach ( $validation_results['form']['fields'] as $key => &$field ) {
1030
+		$form = $this->filter_conditional_logic( $form );
1393 1031
 
1394
-            $value = RGFormsModel::get_field_value( $field );
1395
-            $field_type = RGFormsModel::get_input_type( $field );
1032
+		$form = $this->prefill_conditional_logic( $form );
1396 1033
 
1397
-            // Validate always
1398
-            switch ( $field_type ) {
1034
+		// for now we don't support Save and Continue feature.
1035
+		if( ! self::$supports_save_and_continue ) {
1036
+			unset( $form['save'] );
1037
+		}
1399 1038
 
1039
+		return $form;
1040
+	}
1400 1041
 
1401
-                case 'fileupload' :
1402
-                case 'post_image':
1042
+	/**
1043
+	 * 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.
1044
+	 *
1045
+	 * @since 1.16.2.2
1046
+	 *
1047
+	 * @param string $field_content Always empty. Returning not-empty overrides the input.
1048
+	 * @param GF_Field $field
1049
+	 * @param string|array $value If array, it's a field with multiple inputs. If string, single input.
1050
+	 * @param int $lead_id Lead ID. Always 0 for the `gform_field_input` filter.
1051
+	 * @param int $form_id Form ID
1052
+	 *
1053
+	 * @return string If error, the error message. If no error, blank string (modify_edit_field_input() runs next)
1054
+	 */
1055
+	public function verify_user_can_edit_post( $field_content = '', $field, $value, $lead_id = 0, $form_id ) {
1403 1056
 
1404
-                    // in case nothing is uploaded but there are already files saved
1405
-                    if( !empty( $field->failed_validation ) && !empty( $field->isRequired ) && !empty( $value ) ) {
1406
-                        $field->failed_validation = false;
1407
-                        unset( $field->validation_message );
1408
-                    }
1057
+		if( GFCommon::is_post_field( $field ) ) {
1409 1058
 
1410
-                    // validate if multi file upload reached max number of files [maxFiles] => 2
1411
-                    if( rgobj( $field, 'maxFiles') && rgobj( $field, 'multipleFiles') ) {
1059
+			$message = null;
1412 1060
 
1413
-                        $input_name = 'input_' . $field->id;
1414
-                        //uploaded
1415
-                        $file_names = isset( GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] : array();
1061
+			// First, make sure they have the capability to edit the post.
1062
+			if( false === current_user_can( 'edit_post', $this->entry['post_id'] ) ) {
1416 1063
 
1417
-                        //existent
1418
-                        $entry = $this->get_entry();
1419
-                        $value = NULL;
1420
-                        if( isset( $entry[ $field->id ] ) ) {
1421
-                            $value = json_decode( $entry[ $field->id ], true );
1422
-                        }
1064
+				/**
1065
+				 * @filter `gravityview/edit_entry/unsupported_post_field_text` Modify the message when someone isn't able to edit a post
1066
+				 * @param string $message The existing "You don't have permission..." text
1067
+				 */
1068
+				$message = apply_filters('gravityview/edit_entry/unsupported_post_field_text', __('You don&rsquo;t have permission to edit this post.', 'gravityview') );
1423 1069
 
1424
-                        // count uploaded files and existent entry files
1425
-                        $count_files = count( $file_names ) + count( $value );
1070
+			} elseif( null === get_post( $this->entry['post_id'] ) ) {
1071
+				/**
1072
+				 * @filter `gravityview/edit_entry/no_post_text` Modify the message when someone is editing an entry attached to a post that no longer exists
1073
+				 * @param string $message The existing "This field is not editable; the post no longer exists." text
1074
+				 */
1075
+				$message = apply_filters('gravityview/edit_entry/no_post_text', __('This field is not editable; the post no longer exists.', 'gravityview' ) );
1076
+			}
1426 1077
 
1427
-                        if( $count_files > $field->maxFiles ) {
1428
-                            $field->validation_message = __( 'Maximum number of files reached', 'gravityview' );
1429
-                            $field->failed_validation = 1;
1430
-                            $gv_valid = false;
1078
+			if( $message ) {
1079
+				$field_content = sprintf('<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) );
1080
+			}
1081
+		}
1431 1082
 
1432
-                            // in case of error make sure the newest upload files are removed from the upload input
1433
-                            GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ] = null;
1434
-                        }
1083
+		return $field_content;
1084
+	}
1435 1085
 
1436
-                    }
1086
+	/**
1087
+	 *
1088
+	 * Fill-in the saved values into the form inputs
1089
+	 *
1090
+	 * @param string $field_content Always empty. Returning not-empty overrides the input.
1091
+	 * @param GF_Field $field
1092
+	 * @param string|array $value If array, it's a field with multiple inputs. If string, single input.
1093
+	 * @param int $lead_id Lead ID. Always 0 for the `gform_field_input` filter.
1094
+	 * @param int $form_id Form ID
1095
+	 *
1096
+	 * @return mixed
1097
+	 */
1098
+	public function modify_edit_field_input( $field_content = '', $field, $value, $lead_id = 0, $form_id ) {
1099
+
1100
+		$gv_field = GravityView_Fields::get_associated_field( $field );
1101
+
1102
+		// If the form has been submitted, then we don't need to pre-fill the values,
1103
+		// Except for fileupload type and when a field input is overridden- run always!!
1104
+		if(
1105
+			( $this->is_edit_entry_submission() && !in_array( $field->type, array( 'fileupload', 'post_image' ) ) )
1106
+			&& false === ( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) )
1107
+			&& ! GFCommon::is_product_field( $field->type )
1108
+			|| ! empty( $field_content )
1109
+			|| in_array( $field->type, array( 'honeypot' ) )
1110
+		) {
1111
+			return $field_content;
1112
+		}
1113
+
1114
+		// SET SOME FIELD DEFAULTS TO PREVENT ISSUES
1115
+		$field->adminOnly = false; /** @see GFFormDisplay::get_counter_init_script() need to prevent adminOnly */
1116
+
1117
+		$field_value = $this->get_field_value( $field );
1118
+
1119
+		// Prevent any PHP warnings, like undefined index
1120
+		ob_start();
1121
+
1122
+		$return = null;
1123
+
1124
+		/** @var GravityView_Field $gv_field */
1125
+		if( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) {
1126
+			$return = $gv_field->get_field_input( $this->form, $field_value, $this->entry, $field );
1127
+		} else {
1128
+			$return = $field->get_field_input( $this->form, $field_value, $this->entry );
1129
+		}
1130
+
1131
+		// If there was output, it's an error
1132
+		$warnings = ob_get_clean();
1133
+
1134
+		if( !empty( $warnings ) ) {
1135
+			do_action( 'gravityview_log_error', __METHOD__ . $warnings, $field_value );
1136
+		}
1137
+
1138
+		return $return;
1139
+	}
1140
+
1141
+	/**
1142
+	 * Modify the value for the current field input
1143
+	 *
1144
+	 * @param GF_Field $field
1145
+	 *
1146
+	 * @return array|mixed|string
1147
+	 */
1148
+	private function get_field_value( $field ) {
1149
+
1150
+		/**
1151
+		 * @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.
1152
+		 * @param boolean True: override saved values; False: don't override (default)
1153
+		 * @param $field GF_Field object Gravity Forms field object
1154
+		 * @since 1.13
1155
+		 */
1156
+		$override_saved_value = apply_filters( 'gravityview/edit_entry/pre_populate/override', false, $field );
1157
+
1158
+		// We're dealing with multiple inputs (e.g. checkbox) but not time or date (as it doesn't store data in input IDs)
1159
+		if( isset( $field->inputs ) && is_array( $field->inputs ) && !in_array( $field->type, array( 'time', 'date' ) ) ) {
1160
+
1161
+			$field_value = array();
1162
+
1163
+			// only accept pre-populated values if the field doesn't have any choice selected.
1164
+			$allow_pre_populated = $field->allowsPrepopulate;
1165
+
1166
+			foreach ( (array)$field->inputs as $input ) {
1167
+
1168
+				$input_id = strval( $input['id'] );
1169
+                
1170
+				if ( isset( $this->entry[ $input_id ] ) && ! gv_empty( $this->entry[ $input_id ], false, false ) ) {
1171
+					$field_value[ $input_id ] =  'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ];
1172
+					$allow_pre_populated = false;
1173
+				}
1174
+
1175
+			}
1176
+
1177
+			$pre_value = $field->get_value_submission( array(), false );
1178
+
1179
+			$field_value = ! $allow_pre_populated && ! ( $override_saved_value && !gv_empty( $pre_value, false, false ) ) ? $field_value : $pre_value;
1180
+
1181
+		} else {
1182
+
1183
+			$id = intval( $field->id );
1184
+
1185
+			// get pre-populated value if exists
1186
+			$pre_value = $field->allowsPrepopulate ? GFFormsModel::get_parameter_value( $field->inputName, array(), $field ) : '';
1187
+
1188
+			// saved field entry value (if empty, fallback to the pre-populated value, if exists)
1189
+			// or pre-populated value if not empty and set to override saved value
1190
+			$field_value = !gv_empty( $this->entry[ $id ], false, false ) && ! ( $override_saved_value && !gv_empty( $pre_value, false, false ) ) ? $this->entry[ $id ] : $pre_value;
1191
+
1192
+			// in case field is post_category but inputType is select, multi-select or radio, convert value into array of category IDs.
1193
+			if ( 'post_category' === $field->type && !gv_empty( $field_value, false, false ) ) {
1194
+				$categories = array();
1195
+				foreach ( explode( ',', $field_value ) as $cat_string ) {
1196
+					$categories[] = GFCommon::format_post_category( $cat_string, true );
1197
+				}
1198
+				$field_value = 'multiselect' === $field->get_input_type() ? $categories : implode( '', $categories );
1199
+			}
1200
+
1201
+		}
1202
+
1203
+		// if value is empty get the default value if defined
1204
+		$field_value = $field->get_value_default_if_empty( $field_value );
1205
+
1206
+		/**
1207
+		 * @filter `gravityview/edit_entry/field_value` Change the value of an Edit Entry field, if needed
1208
+		 * @since 1.11
1209
+		 * @since 1.20 Added third param
1210
+		 * @param mixed $field_value field value used to populate the input
1211
+		 * @param object $field Gravity Forms field object ( Class GF_Field )
1212
+		 * @param GravityView_Edit_Entry_Render $this Current object
1213
+		 */
1214
+		$field_value = apply_filters( 'gravityview/edit_entry/field_value', $field_value, $field, $this );
1215
+
1216
+		/**
1217
+		 * @filter `gravityview/edit_entry/field_value_{field_type}` Change the value of an Edit Entry field for a specific field type
1218
+		 * @since 1.17
1219
+		 * @since 1.20 Added third param
1220
+		 * @param mixed $field_value field value used to populate the input
1221
+		 * @param GF_Field $field Gravity Forms field object
1222
+		 * @param GravityView_Edit_Entry_Render $this Current object
1223
+		 */
1224
+		$field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type , $field_value, $field, $this );
1225
+
1226
+		return $field_value;
1227
+	}
1228
+
1229
+
1230
+	// ---- Entry validation
1231
+
1232
+	/**
1233
+	 * Add field keys that Gravity Forms expects.
1234
+	 *
1235
+	 * @see GFFormDisplay::validate()
1236
+	 * @param  array $form GF Form
1237
+	 * @return array       Modified GF Form
1238
+	 */
1239
+	public function gform_pre_validation( $form ) {
1240
+
1241
+		if( ! $this->verify_nonce() ) {
1242
+			return $form;
1243
+		}
1244
+
1245
+		// Fix PHP warning regarding undefined index.
1246
+		foreach ( $form['fields'] as &$field) {
1247
+
1248
+			// This is because we're doing admin form pretending to be front-end, so Gravity Forms
1249
+			// expects certain field array items to be set.
1250
+			foreach ( array( 'noDuplicates', 'adminOnly', 'inputType', 'isRequired', 'enablePrice', 'inputs', 'allowedExtensions' ) as $key ) {
1251
+				$field->{$key} = isset( $field->{$key} ) ? $field->{$key} : NULL;
1252
+			}
1253
+
1254
+			switch( RGFormsModel::get_input_type( $field ) ) {
1255
+
1256
+				/**
1257
+				 * 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.
1258
+				 *
1259
+				 * 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.
1260
+				 *
1261
+				 * @hack
1262
+				 */
1263
+				case 'fileupload':
1264
+
1265
+					// Set the previous value
1266
+					$entry = $this->get_entry();
1267
+
1268
+					$input_name = 'input_'.$field->id;
1269
+					$form_id = $form['id'];
1270
+
1271
+					$value = NULL;
1272
+
1273
+					// Use the previous entry value as the default.
1274
+					if( isset( $entry[ $field->id ] ) ) {
1275
+						$value = $entry[ $field->id ];
1276
+					}
1277
+
1278
+					// If this is a single upload file
1279
+					if( !empty( $_FILES[ $input_name ] ) && !empty( $_FILES[ $input_name ]['name'] ) ) {
1280
+						$file_path = GFFormsModel::get_file_upload_path( $form['id'], $_FILES[ $input_name ]['name'] );
1281
+						$value = $file_path['url'];
1282
+
1283
+					} else {
1284
+
1285
+						// Fix PHP warning on line 1498 of form_display.php for post_image fields
1286
+						// Fix PHP Notice:  Undefined index:  size in form_display.php on line 1511
1287
+						$_FILES[ $input_name ] = array('name' => '', 'size' => '' );
1437 1288
 
1289
+					}
1438 1290
 
1439
-                    break;
1291
+					if( rgar($field, "multipleFiles") ) {
1440 1292
 
1441
-            }
1293
+						// If there are fresh uploads, process and merge them.
1294
+						// Otherwise, use the passed values, which should be json-encoded array of URLs
1295
+						if( isset( GFFormsModel::$uploaded_files[$form_id][$input_name] ) ) {
1296
+							$value = empty( $value ) ? '[]' : $value;
1297
+							$value = stripslashes_deep( $value );
1298
+							$value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'], array());
1299
+						}
1300
+
1301
+					} else {
1442 1302
 
1443
-            // This field has failed validation.
1444
-            if( !empty( $field->failed_validation ) ) {
1303
+						// A file already exists when editing an entry
1304
+						// We set this to solve issue when file upload fields are required.
1305
+						GFFormsModel::$uploaded_files[ $form_id ][ $input_name ] = $value;
1445 1306
 
1446
-                do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field is invalid.', array( 'field' => $field, 'value' => $value ) );
1307
+					}
1447 1308
 
1448
-                switch ( $field_type ) {
1309
+					$this->entry[ $input_name ] = $value;
1310
+					$_POST[ $input_name ] = $value;
1449 1311
 
1450
-                    // Captchas don't need to be re-entered.
1451
-                    case 'captcha':
1312
+					break;
1452 1313
 
1453
-                        // Post Image fields aren't editable, so we un-fail them.
1454
-                    case 'post_image':
1455
-                        $field->failed_validation = false;
1456
-                        unset( $field->validation_message );
1457
-                        break;
1314
+				case 'number':
1315
+					// Fix "undefined index" issue at line 1286 in form_display.php
1316
+					if( !isset( $_POST['input_'.$field->id ] ) ) {
1317
+						$_POST['input_'.$field->id ] = NULL;
1318
+					}
1319
+					break;
1320
+			}
1321
+
1322
+		}
1458 1323
 
1459
-                }
1324
+		return $form;
1325
+	}
1460 1326
 
1461
-                // You can't continue inside a switch, so we do it after.
1462
-                if( empty( $field->failed_validation ) ) {
1463
-                    continue;
1464
-                }
1465 1327
 
1466
-                // checks if the No Duplicates option is not validating entry against itself, since
1467
-                // we're editing a stored entry, it would also assume it's a duplicate.
1468
-                if( !empty( $field->noDuplicates ) ) {
1328
+	/**
1329
+	 * Process validation for a edit entry submission
1330
+	 *
1331
+	 * Sets the `is_valid` object var
1332
+	 *
1333
+	 * @return void
1334
+	 */
1335
+	private function validate() {
1469 1336
 
1470
-                    $entry = $this->get_entry();
1337
+		/**
1338
+		 * If using GF User Registration Add-on, remove the validation step, otherwise generates error when updating the entry
1339
+		 * GF User Registration Add-on version > 3.x has a different class name
1340
+		 * @since 1.16.2
1341
+		 */
1342
+		if ( class_exists( 'GF_User_Registration' ) ) {
1343
+			remove_filter( 'gform_validation', array( GF_User_Registration::get_instance(), 'validate' ) );
1344
+		} else  if ( class_exists( 'GFUser' ) ) {
1345
+			remove_filter( 'gform_validation', array( 'GFUser', 'user_registration_validation' ) );
1346
+		}
1471 1347
 
1472
-                    // If the value of the entry is the same as the stored value
1473
-                    // Then we can assume it's not a duplicate, it's the same.
1474
-                    if( !empty( $entry ) && $value == $entry[ $field->id ] ) {
1475
-                        //if value submitted was not changed, then don't validate
1476
-                        $field->failed_validation = false;
1477 1348
 
1478
-                        unset( $field->validation_message );
1349
+		/**
1350
+		 * For some crazy reason, Gravity Forms doesn't validate Edit Entry form submissions.
1351
+		 * You can enter whatever you want!
1352
+		 * We try validating, and customize the results using `self::custom_validation()`
1353
+		 */
1354
+		add_filter( 'gform_validation_'. $this->form_id, array( $this, 'custom_validation' ), 10, 4);
1479 1355
 
1480
-                        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', $entry );
1356
+		// Needed by the validate funtion
1357
+		$failed_validation_page = NULL;
1358
+		$field_values = RGForms::post( 'gform_field_values' );
1481 1359
 
1482
-                        continue;
1483
-                    }
1484
-                }
1360
+		// Prevent entry limit from running when editing an entry, also
1361
+		// prevent form scheduling from preventing editing
1362
+		unset( $this->form['limitEntries'], $this->form['scheduleForm'] );
1485 1363
 
1486
-                // if here then probably we are facing the validation 'At least one field must be filled out'
1487
-                if( GFFormDisplay::is_empty( $field, $this->form_id  ) && empty( $field->isRequired ) ) {
1488
-                    unset( $field->validation_message );
1489
-	                $field->validation_message = false;
1490
-                    continue;
1491
-                }
1364
+		// Hide fields depending on Edit Entry settings
1365
+		$this->form['fields'] = $this->get_configured_edit_fields( $this->form, $this->view_id );
1492 1366
 
1493
-                $gv_valid = false;
1367
+		$this->is_valid = GFFormDisplay::validate( $this->form, $field_values, 1, $failed_validation_page );
1494 1368
 
1495
-            }
1369
+		remove_filter( 'gform_validation_'. $this->form_id, array( $this, 'custom_validation' ), 10 );
1370
+	}
1496 1371
 
1497
-        }
1498 1372
 
1499
-        $validation_results['is_valid'] = $gv_valid;
1373
+	/**
1374
+	 * Make validation work for Edit Entry
1375
+	 *
1376
+	 * Because we're calling the GFFormDisplay::validate() in an unusual way (as a front-end
1377
+	 * form pretending to be a back-end form), validate() doesn't know we _can't_ edit post
1378
+	 * fields. This goes through all the fields and if they're an invalid post field, we
1379
+	 * set them as valid. If there are still issues, we'll return false.
1380
+	 *
1381
+	 * @param  [type] $validation_results [description]
1382
+	 * @return [type]                     [description]
1383
+	 */
1384
+	public function custom_validation( $validation_results ) {
1500 1385
 
1501
-        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results.', $validation_results );
1386
+		do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results: ', $validation_results );
1502 1387
 
1503
-        // We'll need this result when rendering the form ( on GFFormDisplay::get_form )
1504
-        $this->form_after_validation = $validation_results['form'];
1388
+		do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
1505 1389
 
1506
-        return $validation_results;
1507
-    }
1390
+		$gv_valid = true;
1391
+
1392
+		foreach ( $validation_results['form']['fields'] as $key => &$field ) {
1393
+
1394
+			$value = RGFormsModel::get_field_value( $field );
1395
+			$field_type = RGFormsModel::get_input_type( $field );
1396
+
1397
+			// Validate always
1398
+			switch ( $field_type ) {
1399
+
1400
+
1401
+				case 'fileupload' :
1402
+				case 'post_image':
1403
+
1404
+					// in case nothing is uploaded but there are already files saved
1405
+					if( !empty( $field->failed_validation ) && !empty( $field->isRequired ) && !empty( $value ) ) {
1406
+						$field->failed_validation = false;
1407
+						unset( $field->validation_message );
1408
+					}
1409
+
1410
+					// validate if multi file upload reached max number of files [maxFiles] => 2
1411
+					if( rgobj( $field, 'maxFiles') && rgobj( $field, 'multipleFiles') ) {
1412
+
1413
+						$input_name = 'input_' . $field->id;
1414
+						//uploaded
1415
+						$file_names = isset( GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] : array();
1416
+
1417
+						//existent
1418
+						$entry = $this->get_entry();
1419
+						$value = NULL;
1420
+						if( isset( $entry[ $field->id ] ) ) {
1421
+							$value = json_decode( $entry[ $field->id ], true );
1422
+						}
1423
+
1424
+						// count uploaded files and existent entry files
1425
+						$count_files = count( $file_names ) + count( $value );
1426
+
1427
+						if( $count_files > $field->maxFiles ) {
1428
+							$field->validation_message = __( 'Maximum number of files reached', 'gravityview' );
1429
+							$field->failed_validation = 1;
1430
+							$gv_valid = false;
1431
+
1432
+							// in case of error make sure the newest upload files are removed from the upload input
1433
+							GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ] = null;
1434
+						}
1435
+
1436
+					}
1437
+
1438
+
1439
+					break;
1440
+
1441
+			}
1508 1442
 
1443
+			// This field has failed validation.
1444
+			if( !empty( $field->failed_validation ) ) {
1509 1445
 
1510
-    /**
1511
-     * TODO: This seems to be hacky... we should remove it. Entry is set when updating the form using setup_vars()!
1512
-     * Get the current entry and set it if it's not yet set.
1513
-     * @return array Gravity Forms entry array
1514
-     */
1515
-    public function get_entry() {
1446
+				do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field is invalid.', array( 'field' => $field, 'value' => $value ) );
1516 1447
 
1517
-        if( empty( $this->entry ) ) {
1518
-            // Get the database value of the entry that's being edited
1519
-            $this->entry = gravityview_get_entry( GravityView_frontend::is_single_entry() );
1520
-        }
1448
+				switch ( $field_type ) {
1521 1449
 
1522
-        return $this->entry;
1523
-    }
1450
+					// Captchas don't need to be re-entered.
1451
+					case 'captcha':
1524 1452
 
1453
+						// Post Image fields aren't editable, so we un-fail them.
1454
+					case 'post_image':
1455
+						$field->failed_validation = false;
1456
+						unset( $field->validation_message );
1457
+						break;
1525 1458
 
1459
+				}
1526 1460
 
1527
-    // --- Filters
1461
+				// You can't continue inside a switch, so we do it after.
1462
+				if( empty( $field->failed_validation ) ) {
1463
+					continue;
1464
+				}
1528 1465
 
1529
-    /**
1530
-     * Get the Edit Entry fields as configured in the View
1531
-     *
1532
-     * @since 1.8
1533
-     *
1534
-     * @param int $view_id
1535
-     *
1536
-     * @return array Array of fields that are configured in the Edit tab in the Admin
1537
-     */
1538
-    private function get_configured_edit_fields( $form, $view_id ) {
1466
+				// checks if the No Duplicates option is not validating entry against itself, since
1467
+				// we're editing a stored entry, it would also assume it's a duplicate.
1468
+				if( !empty( $field->noDuplicates ) ) {
1539 1469
 
1540
-        // Get all fields for form
1470
+					$entry = $this->get_entry();
1471
+
1472
+					// If the value of the entry is the same as the stored value
1473
+					// Then we can assume it's not a duplicate, it's the same.
1474
+					if( !empty( $entry ) && $value == $entry[ $field->id ] ) {
1475
+						//if value submitted was not changed, then don't validate
1476
+						$field->failed_validation = false;
1477
+
1478
+						unset( $field->validation_message );
1479
+
1480
+						do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', $entry );
1481
+
1482
+						continue;
1483
+					}
1484
+				}
1485
+
1486
+				// if here then probably we are facing the validation 'At least one field must be filled out'
1487
+				if( GFFormDisplay::is_empty( $field, $this->form_id  ) && empty( $field->isRequired ) ) {
1488
+					unset( $field->validation_message );
1489
+					$field->validation_message = false;
1490
+					continue;
1491
+				}
1492
+
1493
+				$gv_valid = false;
1494
+
1495
+			}
1496
+
1497
+		}
1498
+
1499
+		$validation_results['is_valid'] = $gv_valid;
1500
+
1501
+		do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results.', $validation_results );
1502
+
1503
+		// We'll need this result when rendering the form ( on GFFormDisplay::get_form )
1504
+		$this->form_after_validation = $validation_results['form'];
1505
+
1506
+		return $validation_results;
1507
+	}
1508
+
1509
+
1510
+	/**
1511
+	 * TODO: This seems to be hacky... we should remove it. Entry is set when updating the form using setup_vars()!
1512
+	 * Get the current entry and set it if it's not yet set.
1513
+	 * @return array Gravity Forms entry array
1514
+	 */
1515
+	public function get_entry() {
1516
+
1517
+		if( empty( $this->entry ) ) {
1518
+			// Get the database value of the entry that's being edited
1519
+			$this->entry = gravityview_get_entry( GravityView_frontend::is_single_entry() );
1520
+		}
1521
+
1522
+		return $this->entry;
1523
+	}
1524
+
1525
+
1526
+
1527
+	// --- Filters
1528
+
1529
+	/**
1530
+	 * Get the Edit Entry fields as configured in the View
1531
+	 *
1532
+	 * @since 1.8
1533
+	 *
1534
+	 * @param int $view_id
1535
+	 *
1536
+	 * @return array Array of fields that are configured in the Edit tab in the Admin
1537
+	 */
1538
+	private function get_configured_edit_fields( $form, $view_id ) {
1539
+
1540
+		// Get all fields for form
1541 1541
 		if ( defined( 'GRAVITYVIEW_FUTURE_CORE_LOADED' ) ) {
1542 1542
 			if ( \GV\View::exists( $view_id ) ) {
1543 1543
 				$view = \GV\View::by_id( $view_id );
@@ -1548,446 +1548,446 @@  discard block
 block discarded – undo
1548 1548
 			$properties = GravityView_View_Data::getInstance()->get_fields( $view_id );
1549 1549
 		}
1550 1550
 
1551
-        // If edit tab not yet configured, show all fields
1552
-        $edit_fields = !empty( $properties['edit_edit-fields'] ) ? $properties['edit_edit-fields'] : NULL;
1551
+		// If edit tab not yet configured, show all fields
1552
+		$edit_fields = !empty( $properties['edit_edit-fields'] ) ? $properties['edit_edit-fields'] : NULL;
1553
+
1554
+		// Hide fields depending on admin settings
1555
+		$fields = $this->filter_fields( $form['fields'], $edit_fields );
1556
+
1557
+		// If Edit Entry fields are configured, remove adminOnly field settings. Otherwise, don't.
1558
+		$fields = $this->filter_admin_only_fields( $fields, $edit_fields, $form, $view_id );
1559
+
1560
+		/**
1561
+		 * @filter `gravityview/edit_entry/form_fields` Modify the fields displayed in Edit Entry form
1562
+		 * @since 1.17
1563
+		 * @param GF_Field[] $fields Gravity Forms form fields
1564
+		 * @param array|null $edit_fields Fields for the Edit Entry tab configured in the View Configuration
1565
+		 * @param array $form GF Form array (`fields` key modified to have only fields configured to show in Edit Entry)
1566
+		 * @param int $view_id View ID
1567
+		 */
1568
+		$fields = apply_filters( 'gravityview/edit_entry/form_fields', $fields, $edit_fields, $form, $view_id );
1569
+
1570
+		return $fields;
1571
+	}
1572
+
1573
+
1574
+	/**
1575
+	 * Filter area fields based on specified conditions
1576
+	 *  - This filter removes the fields that have calculation configured
1577
+	 *
1578
+	 * @uses GravityView_Edit_Entry::user_can_edit_field() Check caps
1579
+	 * @access private
1580
+	 * @param GF_Field[] $fields
1581
+	 * @param array $configured_fields
1582
+	 * @since  1.5
1583
+	 * @return array $fields
1584
+	 */
1585
+	private function filter_fields( $fields, $configured_fields ) {
1586
+
1587
+		if( empty( $fields ) || !is_array( $fields ) ) {
1588
+			return $fields;
1589
+		}
1590
+
1591
+		$edit_fields = array();
1592
+
1593
+		$field_type_blacklist = $this->loader->get_field_blacklist( $this->entry );
1594
+
1595
+		// First, remove blacklist or calculation fields
1596
+		foreach ( $fields as $key => $field ) {
1597
+
1598
+			// Remove the fields that have calculation properties and keep them to be used later
1599
+			// @since 1.16.2
1600
+			if( $field->has_calculation() ) {
1601
+				$this->fields_with_calculation[] = $field;
1602
+				// don't remove the calculation fields on form render.
1603
+			}
1604
+
1605
+			if( in_array( $field->type, $field_type_blacklist ) ) {
1606
+				unset( $fields[ $key ] );
1607
+			}
1608
+		}
1609
+
1610
+		// The Edit tab has not been configured, so we return all fields by default.
1611
+		if( empty( $configured_fields ) ) {
1612
+			return $fields;
1613
+		}
1614
+
1615
+		// The edit tab has been configured, so we loop through to configured settings
1616
+		foreach ( $configured_fields as $configured_field ) {
1617
+
1618
+			/** @var GF_Field $field */
1619
+			foreach ( $fields as $field ) {
1620
+
1621
+				if( intval( $configured_field['id'] ) === intval( $field->id ) && $this->user_can_edit_field( $configured_field, false ) ) {
1622
+					$edit_fields[] = $this->merge_field_properties( $field, $configured_field );
1623
+					break;
1624
+				}
1625
+
1626
+			}
1627
+
1628
+		}
1629
+
1630
+		return $edit_fields;
1631
+
1632
+	}
1633
+
1634
+	/**
1635
+	 * Override GF Form field properties with the ones defined on the View
1636
+	 * @param  GF_Field $field GF Form field object
1637
+	 * @param  array $field_setting  GV field options
1638
+	 * @since  1.5
1639
+	 * @return array|GF_Field
1640
+	 */
1641
+	private function merge_field_properties( $field, $field_setting ) {
1642
+
1643
+		$return_field = $field;
1644
+
1645
+		if( empty( $field_setting['show_label'] ) ) {
1646
+			$return_field->label = '';
1647
+		} elseif ( !empty( $field_setting['custom_label'] ) ) {
1648
+			$return_field->label = $field_setting['custom_label'];
1649
+		}
1650
+
1651
+		if( !empty( $field_setting['custom_class'] ) ) {
1652
+			$return_field->cssClass .= ' '. gravityview_sanitize_html_class( $field_setting['custom_class'] );
1653
+		}
1654
+
1655
+		/**
1656
+		 * Normalize page numbers - avoid conflicts with page validation
1657
+		 * @since 1.6
1658
+		 */
1659
+		$return_field->pageNumber = 1;
1660
+
1661
+		return $return_field;
1662
+
1663
+	}
1664
+
1665
+	/**
1666
+	 * Remove fields that shouldn't be visible based on the Gravity Forms adminOnly field property
1667
+	 *
1668
+	 * @since 1.9.1
1669
+	 *
1670
+	 * @param array|GF_Field[] $fields Gravity Forms form fields
1671
+	 * @param array|null $edit_fields Fields for the Edit Entry tab configured in the View Configuration
1672
+	 * @param array $form GF Form array
1673
+	 * @param int $view_id View ID
1674
+	 *
1675
+	 * @return array Possibly modified form array
1676
+	 */
1677
+	private function filter_admin_only_fields( $fields = array(), $edit_fields = null, $form = array(), $view_id = 0 ) {
1678
+
1679
+		/**
1680
+		 * @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
1681
+		 * If the Edit Entry tab is not configured, adminOnly fields will not be shown to non-administrators.
1682
+		 * If the Edit Entry tab *is* configured, adminOnly fields will be shown to non-administrators, using the configured GV permissions
1683
+		 * @since 1.9.1
1684
+		 * @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.
1685
+		 * @param array $form GF Form array
1686
+		 * @param int $view_id View ID
1687
+		 */
1688
+		$use_gf_adminonly_setting = apply_filters( 'gravityview/edit_entry/use_gf_admin_only_setting', empty( $edit_fields ), $form, $view_id );
1689
+
1690
+		if( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry['id'] ) ) {
1691
+			foreach( $fields as $k => $field ) {
1692
+				if( $field->adminOnly ) {
1693
+					unset( $fields[ $k ] );
1694
+				}
1695
+			}
1696
+			return $fields;
1697
+		}
1698
+
1699
+		foreach( $fields as &$field ) {
1700
+			$field->adminOnly = false;
1701
+		}
1702
+
1703
+		return $fields;
1704
+	}
1705
+
1706
+	// --- Conditional Logic
1707
+
1708
+	/**
1709
+	 * Conditional logic isn't designed to work with forms that already have content. When switching input values,
1710
+	 * the dependent fields will be blank.
1711
+	 *
1712
+	 * Note: This is because GF populates a JavaScript variable with the input values. This is tough to filter at the input level;
1713
+	 * via the `gform_field_value` filter; it requires lots of legwork. Doing it at the form level is easier.
1714
+	 *
1715
+	 * @since 1.17.4
1716
+	 *
1717
+	 * @param array $form Gravity Forms array object
1718
+	 *
1719
+	 * @return array $form, modified to fix conditional
1720
+	 */
1721
+	function prefill_conditional_logic( $form ) {
1722
+
1723
+		if( ! GFFormDisplay::has_conditional_logic( $form ) ) {
1724
+			return $form;
1725
+		}
1726
+
1727
+		// Have Conditional Logic pre-fill fields as if the data were default values
1728
+		/** @var GF_Field $field */
1729
+		foreach ( $form['fields'] as &$field ) {
1730
+
1731
+			if( 'checkbox' === $field->type ) {
1732
+				foreach ( $field->get_entry_inputs() as $key => $input ) {
1733
+					$input_id = $input['id'];
1734
+					$choice = $field->choices[ $key ];
1735
+					$value = rgar( $this->entry, $input_id );
1736
+					$match = RGFormsModel::choice_value_match( $field, $choice, $value );
1737
+					if( $match ) {
1738
+						$field->choices[ $key ]['isSelected'] = true;
1739
+					}
1740
+				}
1741
+			} else {
1742
+
1743
+				// We need to run through each field to set the default values
1744
+				foreach ( $this->entry as $field_id => $field_value ) {
1745
+
1746
+					if( floatval( $field_id ) === floatval( $field->id ) ) {
1747
+
1748
+						if( 'list' === $field->type ) {
1749
+							$list_rows = maybe_unserialize( $field_value );
1750
+
1751
+							$list_field_value = array();
1752
+							foreach ( (array) $list_rows as $row ) {
1753
+								foreach ( (array) $row as $column ) {
1754
+									$list_field_value[] = $column;
1755
+								}
1756
+							}
1757
+
1758
+							$field->defaultValue = serialize( $list_field_value );
1759
+						} else {
1760
+							$field->defaultValue = $field_value;
1761
+						}
1762
+					}
1763
+				}
1764
+			}
1765
+		}
1766
+
1767
+		return $form;
1768
+	}
1769
+
1770
+	/**
1771
+	 * Remove the conditional logic rules from the form button and the form fields, if needed.
1772
+	 *
1773
+	 * @todo Merge with caller method
1774
+	 * @since 1.9
1775
+	 *
1776
+	 * @param array $form Gravity Forms form
1777
+	 * @return array Modified form, if not using Conditional Logic
1778
+	 */
1779
+	private function filter_conditional_logic( $form ) {
1780
+
1781
+		/**
1782
+		 * @filter `gravityview/edit_entry/conditional_logic` Should the Edit Entry form use Gravity Forms conditional logic showing/hiding of fields?
1783
+		 * @since 1.9
1784
+		 * @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
1785
+		 * @param array $form Gravity Forms form
1786
+		 */
1787
+		$use_conditional_logic = apply_filters( 'gravityview/edit_entry/conditional_logic', true, $form );
1788
+
1789
+		if( $use_conditional_logic ) {
1790
+			return $form;
1791
+		}
1792
+
1793
+		foreach( $form['fields'] as &$field ) {
1794
+			/* @var GF_Field $field */
1795
+			$field->conditionalLogic = null;
1796
+		}
1553 1797
 
1554
-        // Hide fields depending on admin settings
1555
-        $fields = $this->filter_fields( $form['fields'], $edit_fields );
1798
+		unset( $form['button']['conditionalLogic'] );
1556 1799
 
1557
-	    // If Edit Entry fields are configured, remove adminOnly field settings. Otherwise, don't.
1558
-	    $fields = $this->filter_admin_only_fields( $fields, $edit_fields, $form, $view_id );
1800
+		return $form;
1559 1801
 
1560
-        /**
1561
-         * @filter `gravityview/edit_entry/form_fields` Modify the fields displayed in Edit Entry form
1562
-         * @since 1.17
1563
-         * @param GF_Field[] $fields Gravity Forms form fields
1564
-         * @param array|null $edit_fields Fields for the Edit Entry tab configured in the View Configuration
1565
-         * @param array $form GF Form array (`fields` key modified to have only fields configured to show in Edit Entry)
1566
-         * @param int $view_id View ID
1567
-         */
1568
-        $fields = apply_filters( 'gravityview/edit_entry/form_fields', $fields, $edit_fields, $form, $view_id );
1802
+	}
1569 1803
 
1570
-        return $fields;
1571
-    }
1572
-
1573
-
1574
-    /**
1575
-     * Filter area fields based on specified conditions
1576
-     *  - This filter removes the fields that have calculation configured
1577
-     *
1578
-     * @uses GravityView_Edit_Entry::user_can_edit_field() Check caps
1579
-     * @access private
1580
-     * @param GF_Field[] $fields
1581
-     * @param array $configured_fields
1582
-     * @since  1.5
1583
-     * @return array $fields
1584
-     */
1585
-    private function filter_fields( $fields, $configured_fields ) {
1586
-
1587
-        if( empty( $fields ) || !is_array( $fields ) ) {
1588
-            return $fields;
1589
-        }
1590
-
1591
-        $edit_fields = array();
1592
-
1593
-        $field_type_blacklist = $this->loader->get_field_blacklist( $this->entry );
1594
-
1595
-        // First, remove blacklist or calculation fields
1596
-        foreach ( $fields as $key => $field ) {
1597
-
1598
-            // Remove the fields that have calculation properties and keep them to be used later
1599
-            // @since 1.16.2
1600
-            if( $field->has_calculation() ) {
1601
-                $this->fields_with_calculation[] = $field;
1602
-                // don't remove the calculation fields on form render.
1603
-            }
1604
-
1605
-            if( in_array( $field->type, $field_type_blacklist ) ) {
1606
-                unset( $fields[ $key ] );
1607
-            }
1608
-        }
1609
-
1610
-        // The Edit tab has not been configured, so we return all fields by default.
1611
-        if( empty( $configured_fields ) ) {
1612
-            return $fields;
1613
-        }
1614
-
1615
-        // The edit tab has been configured, so we loop through to configured settings
1616
-        foreach ( $configured_fields as $configured_field ) {
1617
-
1618
-	        /** @var GF_Field $field */
1619
-	        foreach ( $fields as $field ) {
1620
-
1621
-                if( intval( $configured_field['id'] ) === intval( $field->id ) && $this->user_can_edit_field( $configured_field, false ) ) {
1622
-                    $edit_fields[] = $this->merge_field_properties( $field, $configured_field );
1623
-                    break;
1624
-                }
1625
-
1626
-            }
1627
-
1628
-        }
1629
-
1630
-        return $edit_fields;
1631
-
1632
-    }
1633
-
1634
-    /**
1635
-     * Override GF Form field properties with the ones defined on the View
1636
-     * @param  GF_Field $field GF Form field object
1637
-     * @param  array $field_setting  GV field options
1638
-     * @since  1.5
1639
-     * @return array|GF_Field
1640
-     */
1641
-    private function merge_field_properties( $field, $field_setting ) {
1642
-
1643
-        $return_field = $field;
1644
-
1645
-        if( empty( $field_setting['show_label'] ) ) {
1646
-            $return_field->label = '';
1647
-        } elseif ( !empty( $field_setting['custom_label'] ) ) {
1648
-            $return_field->label = $field_setting['custom_label'];
1649
-        }
1650
-
1651
-        if( !empty( $field_setting['custom_class'] ) ) {
1652
-            $return_field->cssClass .= ' '. gravityview_sanitize_html_class( $field_setting['custom_class'] );
1653
-        }
1654
-
1655
-        /**
1656
-         * Normalize page numbers - avoid conflicts with page validation
1657
-         * @since 1.6
1658
-         */
1659
-        $return_field->pageNumber = 1;
1660
-
1661
-        return $return_field;
1662
-
1663
-    }
1664
-
1665
-    /**
1666
-     * Remove fields that shouldn't be visible based on the Gravity Forms adminOnly field property
1667
-     *
1668
-     * @since 1.9.1
1669
-     *
1670
-     * @param array|GF_Field[] $fields Gravity Forms form fields
1671
-     * @param array|null $edit_fields Fields for the Edit Entry tab configured in the View Configuration
1672
-     * @param array $form GF Form array
1673
-     * @param int $view_id View ID
1674
-     *
1675
-     * @return array Possibly modified form array
1676
-     */
1677
-    private function filter_admin_only_fields( $fields = array(), $edit_fields = null, $form = array(), $view_id = 0 ) {
1678
-
1679
-	    /**
1680
-         * @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
1681
-	     * If the Edit Entry tab is not configured, adminOnly fields will not be shown to non-administrators.
1682
-	     * If the Edit Entry tab *is* configured, adminOnly fields will be shown to non-administrators, using the configured GV permissions
1683
-	     * @since 1.9.1
1684
-	     * @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.
1685
-	     * @param array $form GF Form array
1686
-	     * @param int $view_id View ID
1687
-	     */
1688
-	    $use_gf_adminonly_setting = apply_filters( 'gravityview/edit_entry/use_gf_admin_only_setting', empty( $edit_fields ), $form, $view_id );
1689
-
1690
-	    if( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry['id'] ) ) {
1691
-            foreach( $fields as $k => $field ) {
1692
-                if( $field->adminOnly ) {
1693
-                    unset( $fields[ $k ] );
1694
-                }
1695
-            }
1696
-            return $fields;
1697
-        }
1698
-
1699
-	    foreach( $fields as &$field ) {
1700
-		    $field->adminOnly = false;
1701
-        }
1702
-
1703
-        return $fields;
1704
-    }
1705
-
1706
-    // --- Conditional Logic
1707
-
1708
-    /**
1709
-     * Conditional logic isn't designed to work with forms that already have content. When switching input values,
1710
-     * the dependent fields will be blank.
1711
-     *
1712
-     * Note: This is because GF populates a JavaScript variable with the input values. This is tough to filter at the input level;
1713
-     * via the `gform_field_value` filter; it requires lots of legwork. Doing it at the form level is easier.
1714
-     *
1715
-     * @since 1.17.4
1716
-     *
1717
-     * @param array $form Gravity Forms array object
1718
-     *
1719
-     * @return array $form, modified to fix conditional
1720
-     */
1721
-    function prefill_conditional_logic( $form ) {
1722
-
1723
-        if( ! GFFormDisplay::has_conditional_logic( $form ) ) {
1724
-            return $form;
1725
-        }
1726
-
1727
-        // Have Conditional Logic pre-fill fields as if the data were default values
1728
-        /** @var GF_Field $field */
1729
-        foreach ( $form['fields'] as &$field ) {
1730
-
1731
-            if( 'checkbox' === $field->type ) {
1732
-                foreach ( $field->get_entry_inputs() as $key => $input ) {
1733
-                    $input_id = $input['id'];
1734
-                    $choice = $field->choices[ $key ];
1735
-                    $value = rgar( $this->entry, $input_id );
1736
-                    $match = RGFormsModel::choice_value_match( $field, $choice, $value );
1737
-                    if( $match ) {
1738
-                        $field->choices[ $key ]['isSelected'] = true;
1739
-                    }
1740
-                }
1741
-            } else {
1742
-
1743
-                // We need to run through each field to set the default values
1744
-                foreach ( $this->entry as $field_id => $field_value ) {
1745
-
1746
-                    if( floatval( $field_id ) === floatval( $field->id ) ) {
1747
-
1748
-                        if( 'list' === $field->type ) {
1749
-                            $list_rows = maybe_unserialize( $field_value );
1750
-
1751
-                            $list_field_value = array();
1752
-                            foreach ( (array) $list_rows as $row ) {
1753
-                                foreach ( (array) $row as $column ) {
1754
-                                    $list_field_value[] = $column;
1755
-                                }
1756
-                            }
1757
-
1758
-                            $field->defaultValue = serialize( $list_field_value );
1759
-                        } else {
1760
-                            $field->defaultValue = $field_value;
1761
-                        }
1762
-                    }
1763
-                }
1764
-            }
1765
-        }
1766
-
1767
-        return $form;
1768
-    }
1769
-
1770
-    /**
1771
-     * Remove the conditional logic rules from the form button and the form fields, if needed.
1772
-     *
1773
-     * @todo Merge with caller method
1774
-     * @since 1.9
1775
-     *
1776
-     * @param array $form Gravity Forms form
1777
-     * @return array Modified form, if not using Conditional Logic
1778
-     */
1779
-    private function filter_conditional_logic( $form ) {
1780
-
1781
-        /**
1782
-         * @filter `gravityview/edit_entry/conditional_logic` Should the Edit Entry form use Gravity Forms conditional logic showing/hiding of fields?
1783
-         * @since 1.9
1784
-         * @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
1785
-         * @param array $form Gravity Forms form
1786
-         */
1787
-        $use_conditional_logic = apply_filters( 'gravityview/edit_entry/conditional_logic', true, $form );
1788
-
1789
-        if( $use_conditional_logic ) {
1790
-            return $form;
1791
-        }
1792
-
1793
-        foreach( $form['fields'] as &$field ) {
1794
-            /* @var GF_Field $field */
1795
-            $field->conditionalLogic = null;
1796
-        }
1797
-
1798
-        unset( $form['button']['conditionalLogic'] );
1799
-
1800
-        return $form;
1801
-
1802
-    }
1803
-
1804
-    /**
1805
-     * Disable the Gravity Forms conditional logic script and features on the Edit Entry screen
1806
-     *
1807
-     * @since 1.9
1808
-     *
1809
-     * @param $has_conditional_logic
1810
-     * @param $form
1811
-     * @return mixed
1812
-     */
1813
-    public function manage_conditional_logic( $has_conditional_logic, $form ) {
1814
-
1815
-        if( ! $this->is_edit_entry() ) {
1816
-            return $has_conditional_logic;
1817
-        }
1818
-
1819
-	    /** @see GravityView_Edit_Entry_Render::filter_conditional_logic for filter documentation */
1820
-        return apply_filters( 'gravityview/edit_entry/conditional_logic', $has_conditional_logic, $form );
1821
-    }
1822
-
1823
-
1824
-    // --- User checks and nonces
1825
-
1826
-    /**
1827
-     * Check if the user can edit the entry
1828
-     *
1829
-     * - Is the nonce valid?
1830
-     * - Does the user have the right caps for the entry
1831
-     * - Is the entry in the trash?
1832
-     *
1833
-     * @todo Move to GVCommon
1834
-     *
1835
-     * @param  boolean $echo Show error messages in the form?
1836
-     * @return boolean        True: can edit form. False: nope.
1837
-     */
1838
-    private function user_can_edit_entry( $echo = false ) {
1839
-
1840
-        $error = NULL;
1841
-
1842
-        /**
1843
-         *  1. Permalinks are turned off
1844
-         *  2. There are two entries embedded using oEmbed
1845
-         *  3. One of the entries has just been saved
1846
-         */
1847
-        if( !empty( $_POST['lid'] ) && !empty( $_GET['entry'] ) && ( $_POST['lid'] !== $_GET['entry'] ) ) {
1848
-
1849
-            $error = true;
1850
-
1851
-        }
1852
-
1853
-        if( !empty( $_GET['entry'] ) && (string)$this->entry['id'] !== $_GET['entry'] ) {
1854
-
1855
-            $error = true;
1856
-
1857
-        } elseif( ! $this->verify_nonce() ) {
1858
-
1859
-            /**
1860
-             * If the Entry is embedded, there may be two entries on the same page.
1861
-             * If that's the case, and one is being edited, the other should fail gracefully and not display an error.
1862
-             */
1863
-            if( GravityView_oEmbed::getInstance()->get_entry_id() ) {
1864
-                $error = true;
1865
-            } else {
1866
-                $error = __( 'The link to edit this entry is not valid; it may have expired.', 'gravityview');
1867
-            }
1868
-
1869
-        }
1870
-
1871
-        if( ! GravityView_Edit_Entry::check_user_cap_edit_entry( $this->entry ) ) {
1872
-            $error = __( 'You do not have permission to edit this entry.', 'gravityview');
1873
-        }
1874
-
1875
-        if( $this->entry['status'] === 'trash' ) {
1876
-            $error = __('You cannot edit the entry; it is in the trash.', 'gravityview' );
1877
-        }
1804
+	/**
1805
+	 * Disable the Gravity Forms conditional logic script and features on the Edit Entry screen
1806
+	 *
1807
+	 * @since 1.9
1808
+	 *
1809
+	 * @param $has_conditional_logic
1810
+	 * @param $form
1811
+	 * @return mixed
1812
+	 */
1813
+	public function manage_conditional_logic( $has_conditional_logic, $form ) {
1878 1814
 
1879
-        // No errors; everything's fine here!
1880
-        if( empty( $error ) ) {
1881
-            return true;
1882
-        }
1815
+		if( ! $this->is_edit_entry() ) {
1816
+			return $has_conditional_logic;
1817
+		}
1883 1818
 
1884
-        if( $echo && $error !== true ) {
1819
+		/** @see GravityView_Edit_Entry_Render::filter_conditional_logic for filter documentation */
1820
+		return apply_filters( 'gravityview/edit_entry/conditional_logic', $has_conditional_logic, $form );
1821
+	}
1885 1822
 
1886
-	        $error = esc_html( $error );
1887 1823
 
1888
-	        /**
1889
-	         * @since 1.9
1890
-	         */
1891
-	        if ( ! empty( $this->entry ) ) {
1892
-		        $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;" ) );
1893
-	        }
1824
+	// --- User checks and nonces
1894 1825
 
1895
-            echo GVCommon::generate_notice( wpautop( $error ), 'gv-error error');
1896
-        }
1826
+	/**
1827
+	 * Check if the user can edit the entry
1828
+	 *
1829
+	 * - Is the nonce valid?
1830
+	 * - Does the user have the right caps for the entry
1831
+	 * - Is the entry in the trash?
1832
+	 *
1833
+	 * @todo Move to GVCommon
1834
+	 *
1835
+	 * @param  boolean $echo Show error messages in the form?
1836
+	 * @return boolean        True: can edit form. False: nope.
1837
+	 */
1838
+	private function user_can_edit_entry( $echo = false ) {
1897 1839
 
1898
-        do_action('gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_entry]' . $error );
1840
+		$error = NULL;
1899 1841
 
1900
-        return false;
1901
-    }
1902
-
1903
-
1904
-    /**
1905
-     * Check whether a field is editable by the current user, and optionally display an error message
1906
-     * @uses  GravityView_Edit_Entry->check_user_cap_edit_field() Check user capabilities
1907
-     * @param  array  $field Field or field settings array
1908
-     * @param  boolean $echo  Whether to show error message telling user they aren't allowed
1909
-     * @return boolean         True: user can edit the current field; False: nope, they can't.
1910
-     */
1911
-    private function user_can_edit_field( $field, $echo = false ) {
1842
+		/**
1843
+		 *  1. Permalinks are turned off
1844
+		 *  2. There are two entries embedded using oEmbed
1845
+		 *  3. One of the entries has just been saved
1846
+		 */
1847
+		if( !empty( $_POST['lid'] ) && !empty( $_GET['entry'] ) && ( $_POST['lid'] !== $_GET['entry'] ) ) {
1912 1848
 
1913
-        $error = NULL;
1849
+			$error = true;
1914 1850
 
1915
-        if( ! $this->check_user_cap_edit_field( $field ) ) {
1916
-            $error = __( 'You do not have permission to edit this field.', 'gravityview');
1917
-        }
1851
+		}
1918 1852
 
1919
-        // No errors; everything's fine here!
1920
-        if( empty( $error ) ) {
1921
-            return true;
1922
-        }
1853
+		if( !empty( $_GET['entry'] ) && (string)$this->entry['id'] !== $_GET['entry'] ) {
1923 1854
 
1924
-        if( $echo ) {
1925
-            echo GVCommon::generate_notice( wpautop( esc_html( $error ) ), 'gv-error error');
1926
-        }
1927
-
1928
-        do_action('gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_field]' . $error );
1855
+			$error = true;
1929 1856
 
1930
-        return false;
1857
+		} elseif( ! $this->verify_nonce() ) {
1931 1858
 
1932
-    }
1859
+			/**
1860
+			 * If the Entry is embedded, there may be two entries on the same page.
1861
+			 * If that's the case, and one is being edited, the other should fail gracefully and not display an error.
1862
+			 */
1863
+			if( GravityView_oEmbed::getInstance()->get_entry_id() ) {
1864
+				$error = true;
1865
+			} else {
1866
+				$error = __( 'The link to edit this entry is not valid; it may have expired.', 'gravityview');
1867
+			}
1933 1868
 
1869
+		}
1934 1870
 
1935
-    /**
1936
-     * checks if user has permissions to edit a specific field
1937
-     *
1938
-     * Needs to be used combined with GravityView_Edit_Entry::user_can_edit_field for maximum security!!
1939
-     *
1940
-     * @param  [type] $field [description]
1941
-     * @return bool
1942
-     */
1943
-    private function check_user_cap_edit_field( $field ) {
1871
+		if( ! GravityView_Edit_Entry::check_user_cap_edit_entry( $this->entry ) ) {
1872
+			$error = __( 'You do not have permission to edit this entry.', 'gravityview');
1873
+		}
1944 1874
 
1945
-        // If they can edit any entries (as defined in Gravity Forms), we're good.
1946
-        if( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ) ) ) {
1947
-            return true;
1948
-        }
1875
+		if( $this->entry['status'] === 'trash' ) {
1876
+			$error = __('You cannot edit the entry; it is in the trash.', 'gravityview' );
1877
+		}
1949 1878
 
1950
-        $field_cap = isset( $field['allow_edit_cap'] ) ? $field['allow_edit_cap'] : false;
1879
+		// No errors; everything's fine here!
1880
+		if( empty( $error ) ) {
1881
+			return true;
1882
+		}
1951 1883
 
1952
-        // If the field has custom editing capaibilities set, check those
1953
-        if( $field_cap ) {
1954
-            return GVCommon::has_cap( $field['allow_edit_cap'] );
1955
-        }
1956
-
1957
-        return false;
1958
-    }
1884
+		if( $echo && $error !== true ) {
1959 1885
 
1886
+			$error = esc_html( $error );
1960 1887
 
1961
-    /**
1962
-     * Is the current nonce valid for editing the entry?
1963
-     * @return boolean
1964
-     */
1965
-    public function verify_nonce() {
1888
+			/**
1889
+			 * @since 1.9
1890
+			 */
1891
+			if ( ! empty( $this->entry ) ) {
1892
+				$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;" ) );
1893
+			}
1966 1894
 
1967
-        // Verify form submitted for editing single
1968
-        if( $this->is_edit_entry_submission() ) {
1969
-            $valid = wp_verify_nonce( $_POST[ self::$nonce_field ], self::$nonce_field );
1970
-        }
1895
+			echo GVCommon::generate_notice( wpautop( $error ), 'gv-error error');
1896
+		}
1971 1897
 
1972
-        // Verify
1973
-        else if( ! $this->is_edit_entry() ) {
1974
-            $valid = false;
1975
-        }
1898
+		do_action('gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_entry]' . $error );
1976 1899
 
1977
-        else {
1978
-            $valid = wp_verify_nonce( $_GET['edit'], self::$nonce_key );
1979
-        }
1900
+		return false;
1901
+	}
1902
+
1903
+
1904
+	/**
1905
+	 * Check whether a field is editable by the current user, and optionally display an error message
1906
+	 * @uses  GravityView_Edit_Entry->check_user_cap_edit_field() Check user capabilities
1907
+	 * @param  array  $field Field or field settings array
1908
+	 * @param  boolean $echo  Whether to show error message telling user they aren't allowed
1909
+	 * @return boolean         True: user can edit the current field; False: nope, they can't.
1910
+	 */
1911
+	private function user_can_edit_field( $field, $echo = false ) {
1980 1912
 
1981
-        /**
1982
-         * @filter `gravityview/edit_entry/verify_nonce` Override Edit Entry nonce validation. Return true to declare nonce valid.
1983
-         * @since 1.13
1984
-         * @param int|boolean $valid False if invalid; 1 or 2 when nonce was generated
1985
-         * @param string $nonce_field Key used when validating submissions. Default: is_gv_edit_entry
1986
-         */
1987
-        $valid = apply_filters( 'gravityview/edit_entry/verify_nonce', $valid, self::$nonce_field );
1913
+		$error = NULL;
1988 1914
 
1989
-        return $valid;
1990
-    }
1915
+		if( ! $this->check_user_cap_edit_field( $field ) ) {
1916
+			$error = __( 'You do not have permission to edit this field.', 'gravityview');
1917
+		}
1918
+
1919
+		// No errors; everything's fine here!
1920
+		if( empty( $error ) ) {
1921
+			return true;
1922
+		}
1923
+
1924
+		if( $echo ) {
1925
+			echo GVCommon::generate_notice( wpautop( esc_html( $error ) ), 'gv-error error');
1926
+		}
1927
+
1928
+		do_action('gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_field]' . $error );
1929
+
1930
+		return false;
1931
+
1932
+	}
1933
+
1934
+
1935
+	/**
1936
+	 * checks if user has permissions to edit a specific field
1937
+	 *
1938
+	 * Needs to be used combined with GravityView_Edit_Entry::user_can_edit_field for maximum security!!
1939
+	 *
1940
+	 * @param  [type] $field [description]
1941
+	 * @return bool
1942
+	 */
1943
+	private function check_user_cap_edit_field( $field ) {
1944
+
1945
+		// If they can edit any entries (as defined in Gravity Forms), we're good.
1946
+		if( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ) ) ) {
1947
+			return true;
1948
+		}
1949
+
1950
+		$field_cap = isset( $field['allow_edit_cap'] ) ? $field['allow_edit_cap'] : false;
1951
+
1952
+		// If the field has custom editing capaibilities set, check those
1953
+		if( $field_cap ) {
1954
+			return GVCommon::has_cap( $field['allow_edit_cap'] );
1955
+		}
1956
+
1957
+		return false;
1958
+	}
1959
+
1960
+
1961
+	/**
1962
+	 * Is the current nonce valid for editing the entry?
1963
+	 * @return boolean
1964
+	 */
1965
+	public function verify_nonce() {
1966
+
1967
+		// Verify form submitted for editing single
1968
+		if( $this->is_edit_entry_submission() ) {
1969
+			$valid = wp_verify_nonce( $_POST[ self::$nonce_field ], self::$nonce_field );
1970
+		}
1971
+
1972
+		// Verify
1973
+		else if( ! $this->is_edit_entry() ) {
1974
+			$valid = false;
1975
+		}
1976
+
1977
+		else {
1978
+			$valid = wp_verify_nonce( $_GET['edit'], self::$nonce_key );
1979
+		}
1980
+
1981
+		/**
1982
+		 * @filter `gravityview/edit_entry/verify_nonce` Override Edit Entry nonce validation. Return true to declare nonce valid.
1983
+		 * @since 1.13
1984
+		 * @param int|boolean $valid False if invalid; 1 or 2 when nonce was generated
1985
+		 * @param string $nonce_field Key used when validating submissions. Default: is_gv_edit_entry
1986
+		 */
1987
+		$valid = apply_filters( 'gravityview/edit_entry/verify_nonce', $valid, self::$nonce_field );
1988
+
1989
+		return $valid;
1990
+	}
1991 1991
 
1992 1992
 
1993 1993
 	/**
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
@@ -357,8 +357,8 @@  discard block
 block discarded – undo
357 357
     private function unset_hidden_field_values() {
358 358
 	    global $wpdb;
359 359
 
360
-	    $lead_detail_table      = GFFormsModel::get_lead_details_table_name();
361
-	    $current_fields   = $wpdb->get_results( $wpdb->prepare( "SELECT id, field_number FROM $lead_detail_table WHERE lead_id=%d", $this->entry['id'] ) );
360
+	    $lead_detail_table = GFFormsModel::get_lead_details_table_name();
361
+	    $current_fields = $wpdb->get_results( $wpdb->prepare( "SELECT id, field_number FROM $lead_detail_table WHERE lead_id=%d", $this->entry[ 'id' ] ) );
362 362
 
363 363
 	    foreach ( $this->entry as $input_id => $field_value ) {
364 364
 
@@ -438,7 +438,7 @@  discard block
 block discarded – undo
438 438
 		}
439 439
 
440 440
 		/** No file is being uploaded. */
441
-		if ( empty( $_FILES[ $input_name ]['name'] ) ) {
441
+		if ( empty( $_FILES[ $input_name ][ 'name' ] ) ) {
442 442
 			/** So return the original upload */
443 443
 			return $entry[ $input_id ];
444 444
 		}
@@ -456,11 +456,11 @@  discard block
 block discarded – undo
456 456
      * @return mixed
457 457
      */
458 458
     public function modify_fileupload_settings( $plupload_init, $form_id, $instance ) {
459
-        if( ! $this->is_edit_entry() ) {
459
+        if ( ! $this->is_edit_entry() ) {
460 460
             return $plupload_init;
461 461
         }
462 462
 
463
-        $plupload_init['gf_vars']['max_files'] = 0;
463
+        $plupload_init[ 'gf_vars' ][ 'max_files' ] = 0;
464 464
 
465 465
         return $plupload_init;
466 466
     }
@@ -475,22 +475,22 @@  discard block
 block discarded – undo
475 475
         $form = $this->form;
476 476
 
477 477
 	    /** @var GF_Field $field */
478
-        foreach( $form['fields'] as $k => &$field ) {
478
+        foreach ( $form[ 'fields' ] as $k => &$field ) {
479 479
 
480 480
             /**
481 481
              * Remove the fields with calculation formulas before save to avoid conflicts with GF logic
482 482
              * @since 1.16.3
483 483
              * @var GF_Field $field
484 484
              */
485
-            if( $field->has_calculation() ) {
486
-                unset( $form['fields'][ $k ] );
485
+            if ( $field->has_calculation() ) {
486
+                unset( $form[ 'fields' ][ $k ] );
487 487
             }
488 488
 
489 489
             $field->adminOnly = false;
490 490
 
491
-            if( isset( $field->inputs ) && is_array( $field->inputs ) ) {
492
-                foreach( $field->inputs as $key => $input ) {
493
-                    $field->inputs[ $key ][ 'id' ] = (string)$input['id'];
491
+            if ( isset( $field->inputs ) && is_array( $field->inputs ) ) {
492
+                foreach ( $field->inputs as $key => $input ) {
493
+                    $field->inputs[ $key ][ 'id' ] = (string)$input[ 'id' ];
494 494
                 }
495 495
             }
496 496
         }
@@ -504,30 +504,30 @@  discard block
 block discarded – undo
504 504
         $update = false;
505 505
 
506 506
         // get the most up to date entry values
507
-        $entry = GFAPI::get_entry( $this->entry['id'] );
507
+        $entry = GFAPI::get_entry( $this->entry[ 'id' ] );
508 508
 
509
-        if( !empty( $this->fields_with_calculation ) ) {
509
+        if ( ! empty( $this->fields_with_calculation ) ) {
510 510
             $update = true;
511 511
             foreach ( $this->fields_with_calculation as $calc_field ) {
512 512
                 $inputs = $calc_field->get_entry_inputs();
513 513
                 if ( is_array( $inputs ) ) {
514 514
                     foreach ( $inputs as $input ) {
515
-                        $input_name = 'input_' . str_replace( '.', '_', $input['id'] );
516
-                        $entry[ strval( $input['id'] ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
515
+                        $input_name = 'input_' . str_replace( '.', '_', $input[ 'id' ] );
516
+                        $entry[ strval( $input[ 'id' ] ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry[ 'id' ], $entry );
517 517
                     }
518 518
                 } else {
519
-                    $input_name = 'input_' . str_replace( '.', '_', $calc_field->id);
520
-                    $entry[ strval( $calc_field->id ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
519
+                    $input_name = 'input_' . str_replace( '.', '_', $calc_field->id );
520
+                    $entry[ strval( $calc_field->id ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry[ 'id' ], $entry );
521 521
                 }
522 522
             }
523 523
 
524 524
         }
525 525
 
526
-        if( $update ) {
526
+        if ( $update ) {
527 527
 
528 528
             $return_entry = GFAPI::update_entry( $entry );
529 529
 
530
-            if( is_wp_error( $return_entry ) ) {
530
+            if ( is_wp_error( $return_entry ) ) {
531 531
                 do_action( 'gravityview_log_error', 'Updating the entry calculation fields failed', $return_entry );
532 532
             } else {
533 533
                 do_action( 'gravityview_log_debug', 'Updating the entry calculation fields succeeded' );
@@ -558,18 +558,18 @@  discard block
 block discarded – undo
558 558
 
559 559
         $input_name = 'input_' . $field_id;
560 560
 
561
-        if ( !empty( $_FILES[ $input_name ]['name'] ) ) {
561
+        if ( ! empty( $_FILES[ $input_name ][ 'name' ] ) ) {
562 562
 
563 563
             // We have a new image
564 564
 
565
-            $value = RGFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'] );
565
+            $value = RGFormsModel::prepare_value( $form, $field, $value, $input_name, $entry[ 'id' ] );
566 566
 
567 567
             $ary = ! empty( $value ) ? explode( '|:|', $value ) : array();
568 568
             $img_url = rgar( $ary, 0 );
569 569
 
570
-            $img_title       = count( $ary ) > 1 ? $ary[1] : '';
571
-            $img_caption     = count( $ary ) > 2 ? $ary[2] : '';
572
-            $img_description = count( $ary ) > 3 ? $ary[3] : '';
570
+            $img_title       = count( $ary ) > 1 ? $ary[ 1 ] : '';
571
+            $img_caption     = count( $ary ) > 2 ? $ary[ 2 ] : '';
572
+            $img_description = count( $ary ) > 3 ? $ary[ 3 ] : '';
573 573
 
574 574
             $image_meta = array(
575 575
                 'post_excerpt' => $img_caption,
@@ -578,7 +578,7 @@  discard block
 block discarded – undo
578 578
 
579 579
             //adding title only if it is not empty. It will default to the file name if it is not in the array
580 580
             if ( ! empty( $img_title ) ) {
581
-                $image_meta['post_title'] = $img_title;
581
+                $image_meta[ 'post_title' ] = $img_title;
582 582
             }
583 583
 
584 584
             /**
@@ -593,13 +593,13 @@  discard block
 block discarded – undo
593 593
                 set_post_thumbnail( $post_id, $media_id );
594 594
             }
595 595
 
596
-        } elseif ( !empty( $_POST[ $input_name ] ) && is_array( $value ) ) {
596
+        } elseif ( ! empty( $_POST[ $input_name ] ) && is_array( $value ) ) {
597 597
 
598 598
             $img_url = $_POST[ $input_name ];
599 599
 
600
-			$img_title       = rgar( $_POST, $input_name.'_1' );
601
-			$img_caption     = rgar( $_POST, $input_name .'_4' );
602
-			$img_description = rgar( $_POST, $input_name .'_7' );
600
+			$img_title       = rgar( $_POST, $input_name . '_1' );
601
+			$img_caption     = rgar( $_POST, $input_name . '_4' );
602
+			$img_description = rgar( $_POST, $input_name . '_7' );
603 603
 
604 604
 			$value = ! empty( $img_url ) ? $img_url . "|:|" . $img_title . "|:|" . $img_caption . "|:|" . $img_description : '';
605 605
 
@@ -637,16 +637,16 @@  discard block
 block discarded – undo
637 637
      */
638 638
     private function maybe_update_post_fields( $form ) {
639 639
 
640
-        if( empty( $this->entry['post_id'] ) ) {
640
+        if ( empty( $this->entry[ 'post_id' ] ) ) {
641 641
 	        do_action( 'gravityview_log_debug', __METHOD__ . ': This entry has no post fields. Continuing...' );
642 642
             return;
643 643
         }
644 644
 
645
-        $post_id = $this->entry['post_id'];
645
+        $post_id = $this->entry[ 'post_id' ];
646 646
 
647 647
         // Security check
648
-        if( false === GVCommon::has_cap( 'edit_post', $post_id ) ) {
649
-            do_action( 'gravityview_log_error', 'The current user does not have the ability to edit Post #'.$post_id );
648
+        if ( false === GVCommon::has_cap( 'edit_post', $post_id ) ) {
649
+            do_action( 'gravityview_log_error', 'The current user does not have the ability to edit Post #' . $post_id );
650 650
             return;
651 651
         }
652 652
 
@@ -658,25 +658,25 @@  discard block
 block discarded – undo
658 658
 
659 659
             $field = RGFormsModel::get_field( $form, $field_id );
660 660
 
661
-            if( ! $field ) {
661
+            if ( ! $field ) {
662 662
                 continue;
663 663
             }
664 664
 
665
-            if( GFCommon::is_post_field( $field ) && 'post_category' !== $field->type ) {
665
+            if ( GFCommon::is_post_field( $field ) && 'post_category' !== $field->type ) {
666 666
 
667 667
                 // Get the value of the field, including $_POSTed value
668 668
                 $value = RGFormsModel::get_field_value( $field );
669 669
 
670 670
                 // Use temporary entry variable, to make values available to fill_post_template() and update_post_image()
671 671
                 $entry_tmp = $this->entry;
672
-                $entry_tmp["{$field_id}"] = $value;
672
+                $entry_tmp[ "{$field_id}" ] = $value;
673 673
 
674
-                switch( $field->type ) {
674
+                switch ( $field->type ) {
675 675
 
676 676
                     case 'post_title':
677 677
                         $post_title = $value;
678
-                        if( rgar( $form, 'postTitleTemplateEnabled' ) ) {
679
-                            $post_title = $this->fill_post_template( $form['postTitleTemplate'], $form, $entry_tmp );
678
+                        if ( rgar( $form, 'postTitleTemplateEnabled' ) ) {
679
+                            $post_title = $this->fill_post_template( $form[ 'postTitleTemplate' ], $form, $entry_tmp );
680 680
                         }
681 681
                         $updated_post->post_title = $post_title;
682 682
                         $updated_post->post_name  = $post_title;
@@ -685,8 +685,8 @@  discard block
 block discarded – undo
685 685
 
686 686
                     case 'post_content':
687 687
                         $post_content = $value;
688
-                        if( rgar( $form, 'postContentTemplateEnabled' ) ) {
689
-                            $post_content = $this->fill_post_template( $form['postContentTemplate'], $form, $entry_tmp, true );
688
+                        if ( rgar( $form, 'postContentTemplateEnabled' ) ) {
689
+                            $post_content = $this->fill_post_template( $form[ 'postContentTemplate' ], $form, $entry_tmp, true );
690 690
                         }
691 691
                         $updated_post->post_content = $post_content;
692 692
                         unset( $post_content );
@@ -704,12 +704,12 @@  discard block
 block discarded – undo
704 704
 							$value = $value[ $field_id ];
705 705
 						}
706 706
 
707
-                        if( ! empty( $field->customFieldTemplateEnabled ) ) {
707
+                        if ( ! empty( $field->customFieldTemplateEnabled ) ) {
708 708
                             $value = $this->fill_post_template( $field->customFieldTemplate, $form, $entry_tmp, true );
709 709
                         }
710 710
 
711 711
 	                    if ( $this->is_field_json_encoded( $field ) && ! is_string( $value ) ) {
712
-		                    $value = function_exists('wp_json_encode') ? wp_json_encode( $value ) : json_encode( $value );
712
+		                    $value = function_exists( 'wp_json_encode' ) ? wp_json_encode( $value ) : json_encode( $value );
713 713
 	                    }
714 714
 
715 715
                         update_post_meta( $post_id, $field->postCustomFieldName, $value );
@@ -722,7 +722,7 @@  discard block
 block discarded – undo
722 722
                 }
723 723
 
724 724
                 // update entry after
725
-                $this->entry["{$field_id}"] = $value;
725
+                $this->entry[ "{$field_id}" ] = $value;
726 726
 
727 727
                 $update_entry = true;
728 728
 
@@ -731,25 +731,25 @@  discard block
 block discarded – undo
731 731
 
732 732
         }
733 733
 
734
-        if( $update_entry ) {
734
+        if ( $update_entry ) {
735 735
 
736 736
             $return_entry = GFAPI::update_entry( $this->entry );
737 737
 
738
-            if( is_wp_error( $return_entry ) ) {
738
+            if ( is_wp_error( $return_entry ) ) {
739 739
                do_action( 'gravityview_log_error', 'Updating the entry post fields failed', array( '$this->entry' => $this->entry, '$return_entry' => $return_entry ) );
740 740
             } else {
741
-                do_action( 'gravityview_log_debug', 'Updating the entry post fields for post #'.$post_id.' succeeded' );
741
+                do_action( 'gravityview_log_debug', 'Updating the entry post fields for post #' . $post_id . ' succeeded' );
742 742
             }
743 743
 
744 744
         }
745 745
 
746 746
         $return_post = wp_update_post( $updated_post, true );
747 747
 
748
-        if( is_wp_error( $return_post ) ) {
748
+        if ( is_wp_error( $return_post ) ) {
749 749
             $return_post->add_data( $updated_post, '$updated_post' );
750 750
             do_action( 'gravityview_log_error', 'Updating the post content failed', compact( 'updated_post', 'return_post' ) );
751 751
         } else {
752
-            do_action( 'gravityview_log_debug', 'Updating the post content for post #'.$post_id.' succeeded', $updated_post );
752
+            do_action( 'gravityview_log_debug', 'Updating the post content for post #' . $post_id . ' succeeded', $updated_post );
753 753
         }
754 754
     }
755 755
 
@@ -767,7 +767,7 @@  discard block
 block discarded – undo
767 767
         $input_type = RGFormsModel::get_input_type( $field );
768 768
 
769 769
 	    // Only certain custom field types are supported
770
-	    switch( $input_type ) {
770
+	    switch ( $input_type ) {
771 771
 		    case 'fileupload':
772 772
 		    case 'list':
773 773
 		    case 'multiselect':
@@ -804,7 +804,7 @@  discard block
 block discarded – undo
804 804
         $output = GFCommon::replace_variables( $output, $form, $entry, false, false, false );
805 805
 
806 806
         // replace conditional shortcodes
807
-        if( $do_shortcode ) {
807
+        if ( $do_shortcode ) {
808 808
             $output = do_shortcode( $output );
809 809
         }
810 810
 
@@ -823,18 +823,18 @@  discard block
 block discarded – undo
823 823
      */
824 824
     private function after_update() {
825 825
 
826
-        do_action( 'gform_after_update_entry', $this->form, $this->entry['id'], self::$original_entry );
827
-        do_action( "gform_after_update_entry_{$this->form['id']}", $this->form, $this->entry['id'], self::$original_entry );
826
+        do_action( 'gform_after_update_entry', $this->form, $this->entry[ 'id' ], self::$original_entry );
827
+        do_action( "gform_after_update_entry_{$this->form[ 'id' ]}", $this->form, $this->entry[ 'id' ], self::$original_entry );
828 828
 
829 829
         // Re-define the entry now that we've updated it.
830
-        $entry = RGFormsModel::get_lead( $this->entry['id'] );
830
+        $entry = RGFormsModel::get_lead( $this->entry[ 'id' ] );
831 831
 
832 832
         $entry = GFFormsModel::set_entry_meta( $entry, $this->form );
833 833
 
834 834
         // We need to clear the cache because Gravity Forms caches the field values, which
835 835
         // we have just updated.
836
-        foreach ($this->form['fields'] as $key => $field) {
837
-            GFFormsModel::refresh_lead_field_value( $entry['id'], $field->id );
836
+        foreach ( $this->form[ 'fields' ] as $key => $field ) {
837
+            GFFormsModel::refresh_lead_field_value( $entry[ 'id' ], $field->id );
838 838
         }
839 839
 
840 840
         $this->entry = $entry;
@@ -852,7 +852,7 @@  discard block
 block discarded – undo
852 852
 
853 853
         <div class="gv-edit-entry-wrapper"><?php
854 854
 
855
-            $javascript = gravityview_ob_include( GravityView_Edit_Entry::$file .'/partials/inline-javascript.php', $this );
855
+            $javascript = gravityview_ob_include( GravityView_Edit_Entry::$file . '/partials/inline-javascript.php', $this );
856 856
 
857 857
             /**
858 858
              * Fixes weird wpautop() issue
@@ -868,7 +868,7 @@  discard block
 block discarded – undo
868 868
                      * @param string $edit_entry_title Modify the "Edit Entry" title
869 869
                      * @param GravityView_Edit_Entry_Render $this This object
870 870
                      */
871
-                    $edit_entry_title = apply_filters('gravityview_edit_entry_title', __('Edit Entry', 'gravityview'), $this );
871
+                    $edit_entry_title = apply_filters( 'gravityview_edit_entry_title', __( 'Edit Entry', 'gravityview' ), $this );
872 872
 
873 873
                     echo esc_attr( $edit_entry_title );
874 874
             ?></span>
@@ -914,20 +914,20 @@  discard block
 block discarded – undo
914 914
      */
915 915
     private function maybe_print_message() {
916 916
 
917
-        if( rgpost('action') === 'update' ) {
917
+        if ( rgpost( 'action' ) === 'update' ) {
918 918
 
919 919
             $back_link = esc_url( remove_query_arg( array( 'page', 'view', 'edit' ) ) );
920 920
 
921
-            if( ! $this->is_valid ){
921
+            if ( ! $this->is_valid ) {
922 922
 
923 923
                 // Keeping this compatible with Gravity Forms.
924
-                $validation_message = "<div class='validation_error'>" . __('There was a problem with your submission.', 'gravityview') . " " . __('Errors have been highlighted below.', 'gravityview') . "</div>";
925
-                $message = apply_filters("gform_validation_message_{$this->form['id']}", apply_filters("gform_validation_message", $validation_message, $this->form), $this->form);
924
+                $validation_message = "<div class='validation_error'>" . __( 'There was a problem with your submission.', 'gravityview' ) . " " . __( 'Errors have been highlighted below.', 'gravityview' ) . "</div>";
925
+                $message = apply_filters( "gform_validation_message_{$this->form[ 'id' ]}", apply_filters( "gform_validation_message", $validation_message, $this->form ), $this->form );
926 926
 
927
-                echo GVCommon::generate_notice( $message , 'gv-error' );
927
+                echo GVCommon::generate_notice( $message, 'gv-error' );
928 928
 
929 929
             } else {
930
-                $entry_updated_message = sprintf( esc_attr__('Entry Updated. %sReturn to Entry%s', 'gravityview'), '<a href="'. $back_link .'">', '</a>' );
930
+                $entry_updated_message = sprintf( esc_attr__( 'Entry Updated. %sReturn to Entry%s', 'gravityview' ), '<a href="' . $back_link . '">', '</a>' );
931 931
 
932 932
                 /**
933 933
                  * @filter `gravityview/edit_entry/success` Modify the edit entry success message (including the anchor link)
@@ -937,7 +937,7 @@  discard block
 block discarded – undo
937 937
                  * @param array $entry Gravity Forms entry array
938 938
                  * @param string $back_link URL to return to the original entry. @since 1.6
939 939
                  */
940
-                $message = apply_filters( 'gravityview/edit_entry/success', $entry_updated_message , $this->view_id, $this->entry, $back_link );
940
+                $message = apply_filters( 'gravityview/edit_entry/success', $entry_updated_message, $this->view_id, $this->entry, $back_link );
941 941
 
942 942
                 echo GVCommon::generate_notice( $message );
943 943
             }
@@ -961,21 +961,21 @@  discard block
 block discarded – undo
961 961
          */
962 962
         do_action( 'gravityview/edit-entry/render/before', $this );
963 963
 
964
-        add_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields'), 5000, 3 );
965
-        add_filter( 'gform_submit_button', array( $this, 'render_form_buttons') );
964
+        add_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields' ), 5000, 3 );
965
+        add_filter( 'gform_submit_button', array( $this, 'render_form_buttons' ) );
966 966
         add_filter( 'gform_disable_view_counter', '__return_true' );
967 967
 
968 968
         add_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5, 5 );
969 969
         add_filter( 'gform_field_input', array( $this, 'modify_edit_field_input' ), 10, 5 );
970 970
 
971 971
         // We need to remove the fake $_GET['page'] arg to avoid rendering form as if in admin.
972
-        unset( $_GET['page'] );
972
+        unset( $_GET[ 'page' ] );
973 973
 
974 974
         // TODO: Verify multiple-page forms
975 975
 
976 976
         ob_start(); // Prevent PHP warnings possibly caused by prefilling list fields for conditional logic
977 977
 
978
-        $html = GFFormDisplay::get_form( $this->form['id'], false, false, true, $this->entry );
978
+        $html = GFFormDisplay::get_form( $this->form[ 'id' ], false, false, true, $this->entry );
979 979
 
980 980
         ob_get_clean();
981 981
 
@@ -1001,7 +1001,7 @@  discard block
 block discarded – undo
1001 1001
      * @return string
1002 1002
      */
1003 1003
     public function render_form_buttons() {
1004
-        return gravityview_ob_include( GravityView_Edit_Entry::$file .'/partials/form-buttons.php', $this );
1004
+        return gravityview_ob_include( GravityView_Edit_Entry::$file . '/partials/form-buttons.php', $this );
1005 1005
     }
1006 1006
 
1007 1007
 
@@ -1021,10 +1021,10 @@  discard block
 block discarded – undo
1021 1021
     public function filter_modify_form_fields( $form, $ajax = false, $field_values = '' ) {
1022 1022
 
1023 1023
         // In case we have validated the form, use it to inject the validation results into the form render
1024
-        if( isset( $this->form_after_validation ) ) {
1024
+        if ( isset( $this->form_after_validation ) ) {
1025 1025
             $form = $this->form_after_validation;
1026 1026
         } else {
1027
-            $form['fields'] = $this->get_configured_edit_fields( $form, $this->view_id );
1027
+            $form[ 'fields' ] = $this->get_configured_edit_fields( $form, $this->view_id );
1028 1028
         }
1029 1029
 
1030 1030
         $form = $this->filter_conditional_logic( $form );
@@ -1032,8 +1032,8 @@  discard block
 block discarded – undo
1032 1032
         $form = $this->prefill_conditional_logic( $form );
1033 1033
 
1034 1034
         // for now we don't support Save and Continue feature.
1035
-        if( ! self::$supports_save_and_continue ) {
1036
-	        unset( $form['save'] );
1035
+        if ( ! self::$supports_save_and_continue ) {
1036
+	        unset( $form[ 'save' ] );
1037 1037
         }
1038 1038
 
1039 1039
         return $form;
@@ -1054,29 +1054,29 @@  discard block
 block discarded – undo
1054 1054
      */
1055 1055
     public function verify_user_can_edit_post( $field_content = '', $field, $value, $lead_id = 0, $form_id ) {
1056 1056
 
1057
-        if( GFCommon::is_post_field( $field ) ) {
1057
+        if ( GFCommon::is_post_field( $field ) ) {
1058 1058
 
1059 1059
             $message = null;
1060 1060
 
1061 1061
             // First, make sure they have the capability to edit the post.
1062
-            if( false === current_user_can( 'edit_post', $this->entry['post_id'] ) ) {
1062
+            if ( false === current_user_can( 'edit_post', $this->entry[ 'post_id' ] ) ) {
1063 1063
 
1064 1064
                 /**
1065 1065
                  * @filter `gravityview/edit_entry/unsupported_post_field_text` Modify the message when someone isn't able to edit a post
1066 1066
                  * @param string $message The existing "You don't have permission..." text
1067 1067
                  */
1068
-                $message = apply_filters('gravityview/edit_entry/unsupported_post_field_text', __('You don&rsquo;t have permission to edit this post.', 'gravityview') );
1068
+                $message = apply_filters( 'gravityview/edit_entry/unsupported_post_field_text', __( 'You don&rsquo;t have permission to edit this post.', 'gravityview' ) );
1069 1069
 
1070
-            } elseif( null === get_post( $this->entry['post_id'] ) ) {
1070
+            } elseif ( null === get_post( $this->entry[ 'post_id' ] ) ) {
1071 1071
                 /**
1072 1072
                  * @filter `gravityview/edit_entry/no_post_text` Modify the message when someone is editing an entry attached to a post that no longer exists
1073 1073
                  * @param string $message The existing "This field is not editable; the post no longer exists." text
1074 1074
                  */
1075
-                $message = apply_filters('gravityview/edit_entry/no_post_text', __('This field is not editable; the post no longer exists.', 'gravityview' ) );
1075
+                $message = apply_filters( 'gravityview/edit_entry/no_post_text', __( 'This field is not editable; the post no longer exists.', 'gravityview' ) );
1076 1076
             }
1077 1077
 
1078
-            if( $message ) {
1079
-                $field_content = sprintf('<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) );
1078
+            if ( $message ) {
1079
+                $field_content = sprintf( '<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) );
1080 1080
             }
1081 1081
         }
1082 1082
 
@@ -1101,8 +1101,8 @@  discard block
 block discarded – undo
1101 1101
 
1102 1102
         // If the form has been submitted, then we don't need to pre-fill the values,
1103 1103
         // Except for fileupload type and when a field input is overridden- run always!!
1104
-        if(
1105
-            ( $this->is_edit_entry_submission() && !in_array( $field->type, array( 'fileupload', 'post_image' ) ) )
1104
+        if (
1105
+            ( $this->is_edit_entry_submission() && ! in_array( $field->type, array( 'fileupload', 'post_image' ) ) )
1106 1106
             && false === ( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) )
1107 1107
             && ! GFCommon::is_product_field( $field->type )
1108 1108
             || ! empty( $field_content )
@@ -1122,7 +1122,7 @@  discard block
 block discarded – undo
1122 1122
 	    $return = null;
1123 1123
 
1124 1124
         /** @var GravityView_Field $gv_field */
1125
-        if( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) {
1125
+        if ( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) {
1126 1126
             $return = $gv_field->get_field_input( $this->form, $field_value, $this->entry, $field );
1127 1127
         } else {
1128 1128
 	        $return = $field->get_field_input( $this->form, $field_value, $this->entry );
@@ -1131,7 +1131,7 @@  discard block
 block discarded – undo
1131 1131
 	    // If there was output, it's an error
1132 1132
 	    $warnings = ob_get_clean();
1133 1133
 
1134
-	    if( !empty( $warnings ) ) {
1134
+	    if ( ! empty( $warnings ) ) {
1135 1135
 		    do_action( 'gravityview_log_error', __METHOD__ . $warnings, $field_value );
1136 1136
 	    }
1137 1137
 
@@ -1156,7 +1156,7 @@  discard block
 block discarded – undo
1156 1156
         $override_saved_value = apply_filters( 'gravityview/edit_entry/pre_populate/override', false, $field );
1157 1157
 
1158 1158
         // We're dealing with multiple inputs (e.g. checkbox) but not time or date (as it doesn't store data in input IDs)
1159
-        if( isset( $field->inputs ) && is_array( $field->inputs ) && !in_array( $field->type, array( 'time', 'date' ) ) ) {
1159
+        if ( isset( $field->inputs ) && is_array( $field->inputs ) && ! in_array( $field->type, array( 'time', 'date' ) ) ) {
1160 1160
 
1161 1161
             $field_value = array();
1162 1162
 
@@ -1165,10 +1165,10 @@  discard block
 block discarded – undo
1165 1165
 
1166 1166
             foreach ( (array)$field->inputs as $input ) {
1167 1167
 
1168
-                $input_id = strval( $input['id'] );
1168
+                $input_id = strval( $input[ 'id' ] );
1169 1169
                 
1170 1170
                 if ( isset( $this->entry[ $input_id ] ) && ! gv_empty( $this->entry[ $input_id ], false, false ) ) {
1171
-                    $field_value[ $input_id ] =  'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ];
1171
+                    $field_value[ $input_id ] = 'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ];
1172 1172
                     $allow_pre_populated = false;
1173 1173
                 }
1174 1174
 
@@ -1176,7 +1176,7 @@  discard block
 block discarded – undo
1176 1176
 
1177 1177
             $pre_value = $field->get_value_submission( array(), false );
1178 1178
 
1179
-            $field_value = ! $allow_pre_populated && ! ( $override_saved_value && !gv_empty( $pre_value, false, false ) ) ? $field_value : $pre_value;
1179
+            $field_value = ! $allow_pre_populated && ! ( $override_saved_value && ! gv_empty( $pre_value, false, false ) ) ? $field_value : $pre_value;
1180 1180
 
1181 1181
         } else {
1182 1182
 
@@ -1187,13 +1187,13 @@  discard block
 block discarded – undo
1187 1187
 
1188 1188
             // saved field entry value (if empty, fallback to the pre-populated value, if exists)
1189 1189
             // or pre-populated value if not empty and set to override saved value
1190
-            $field_value = !gv_empty( $this->entry[ $id ], false, false ) && ! ( $override_saved_value && !gv_empty( $pre_value, false, false ) ) ? $this->entry[ $id ] : $pre_value;
1190
+            $field_value = ! gv_empty( $this->entry[ $id ], false, false ) && ! ( $override_saved_value && ! gv_empty( $pre_value, false, false ) ) ? $this->entry[ $id ] : $pre_value;
1191 1191
 
1192 1192
             // in case field is post_category but inputType is select, multi-select or radio, convert value into array of category IDs.
1193
-            if ( 'post_category' === $field->type && !gv_empty( $field_value, false, false ) ) {
1193
+            if ( 'post_category' === $field->type && ! gv_empty( $field_value, false, false ) ) {
1194 1194
                 $categories = array();
1195 1195
                 foreach ( explode( ',', $field_value ) as $cat_string ) {
1196
-                    $categories[] = GFCommon::format_post_category( $cat_string, true );
1196
+                    $categories[ ] = GFCommon::format_post_category( $cat_string, true );
1197 1197
                 }
1198 1198
                 $field_value = 'multiselect' === $field->get_input_type() ? $categories : implode( '', $categories );
1199 1199
             }
@@ -1221,7 +1221,7 @@  discard block
 block discarded – undo
1221 1221
 	     * @param GF_Field $field Gravity Forms field object
1222 1222
 	     * @param GravityView_Edit_Entry_Render $this Current object
1223 1223
 	     */
1224
-	    $field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type , $field_value, $field, $this );
1224
+	    $field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type, $field_value, $field, $this );
1225 1225
 
1226 1226
         return $field_value;
1227 1227
     }
@@ -1238,12 +1238,12 @@  discard block
 block discarded – undo
1238 1238
      */
1239 1239
     public function gform_pre_validation( $form ) {
1240 1240
 
1241
-        if( ! $this->verify_nonce() ) {
1241
+        if ( ! $this->verify_nonce() ) {
1242 1242
             return $form;
1243 1243
         }
1244 1244
 
1245 1245
         // Fix PHP warning regarding undefined index.
1246
-        foreach ( $form['fields'] as &$field) {
1246
+        foreach ( $form[ 'fields' ] as &$field ) {
1247 1247
 
1248 1248
             // This is because we're doing admin form pretending to be front-end, so Gravity Forms
1249 1249
             // expects certain field array items to be set.
@@ -1251,7 +1251,7 @@  discard block
 block discarded – undo
1251 1251
 	            $field->{$key} = isset( $field->{$key} ) ? $field->{$key} : NULL;
1252 1252
             }
1253 1253
 
1254
-            switch( RGFormsModel::get_input_type( $field ) ) {
1254
+            switch ( RGFormsModel::get_input_type( $field ) ) {
1255 1255
 
1256 1256
                 /**
1257 1257
                  * 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,37 +1265,37 @@  discard block
 block discarded – undo
1265 1265
                     // Set the previous value
1266 1266
                     $entry = $this->get_entry();
1267 1267
 
1268
-                    $input_name = 'input_'.$field->id;
1269
-                    $form_id = $form['id'];
1268
+                    $input_name = 'input_' . $field->id;
1269
+                    $form_id = $form[ 'id' ];
1270 1270
 
1271 1271
                     $value = NULL;
1272 1272
 
1273 1273
                     // Use the previous entry value as the default.
1274
-                    if( isset( $entry[ $field->id ] ) ) {
1274
+                    if ( isset( $entry[ $field->id ] ) ) {
1275 1275
                         $value = $entry[ $field->id ];
1276 1276
                     }
1277 1277
 
1278 1278
                     // If this is a single upload file
1279
-                    if( !empty( $_FILES[ $input_name ] ) && !empty( $_FILES[ $input_name ]['name'] ) ) {
1280
-                        $file_path = GFFormsModel::get_file_upload_path( $form['id'], $_FILES[ $input_name ]['name'] );
1281
-                        $value = $file_path['url'];
1279
+                    if ( ! empty( $_FILES[ $input_name ] ) && ! empty( $_FILES[ $input_name ][ 'name' ] ) ) {
1280
+                        $file_path = GFFormsModel::get_file_upload_path( $form[ 'id' ], $_FILES[ $input_name ][ 'name' ] );
1281
+                        $value = $file_path[ 'url' ];
1282 1282
 
1283 1283
                     } else {
1284 1284
 
1285 1285
                         // Fix PHP warning on line 1498 of form_display.php for post_image fields
1286 1286
                         // Fix PHP Notice:  Undefined index:  size in form_display.php on line 1511
1287
-                        $_FILES[ $input_name ] = array('name' => '', 'size' => '' );
1287
+                        $_FILES[ $input_name ] = array( 'name' => '', 'size' => '' );
1288 1288
 
1289 1289
                     }
1290 1290
 
1291
-                    if( rgar($field, "multipleFiles") ) {
1291
+                    if ( rgar( $field, "multipleFiles" ) ) {
1292 1292
 
1293 1293
                         // If there are fresh uploads, process and merge them.
1294 1294
                         // Otherwise, use the passed values, which should be json-encoded array of URLs
1295
-                        if( isset( GFFormsModel::$uploaded_files[$form_id][$input_name] ) ) {
1295
+                        if ( isset( GFFormsModel::$uploaded_files[ $form_id ][ $input_name ] ) ) {
1296 1296
                             $value = empty( $value ) ? '[]' : $value;
1297 1297
                             $value = stripslashes_deep( $value );
1298
-                            $value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'], array());
1298
+                            $value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry[ 'id' ], array() );
1299 1299
                         }
1300 1300
 
1301 1301
                     } else {
@@ -1313,8 +1313,8 @@  discard block
 block discarded – undo
1313 1313
 
1314 1314
                 case 'number':
1315 1315
                     // Fix "undefined index" issue at line 1286 in form_display.php
1316
-                    if( !isset( $_POST['input_'.$field->id ] ) ) {
1317
-                        $_POST['input_'.$field->id ] = NULL;
1316
+                    if ( ! isset( $_POST[ 'input_' . $field->id ] ) ) {
1317
+                        $_POST[ 'input_' . $field->id ] = NULL;
1318 1318
                     }
1319 1319
                     break;
1320 1320
             }
@@ -1351,7 +1351,7 @@  discard block
 block discarded – undo
1351 1351
          * You can enter whatever you want!
1352 1352
          * We try validating, and customize the results using `self::custom_validation()`
1353 1353
          */
1354
-        add_filter( 'gform_validation_'. $this->form_id, array( $this, 'custom_validation' ), 10, 4);
1354
+        add_filter( 'gform_validation_' . $this->form_id, array( $this, 'custom_validation' ), 10, 4 );
1355 1355
 
1356 1356
         // Needed by the validate funtion
1357 1357
         $failed_validation_page = NULL;
@@ -1359,14 +1359,14 @@  discard block
 block discarded – undo
1359 1359
 
1360 1360
         // Prevent entry limit from running when editing an entry, also
1361 1361
         // prevent form scheduling from preventing editing
1362
-        unset( $this->form['limitEntries'], $this->form['scheduleForm'] );
1362
+        unset( $this->form[ 'limitEntries' ], $this->form[ 'scheduleForm' ] );
1363 1363
 
1364 1364
         // Hide fields depending on Edit Entry settings
1365
-        $this->form['fields'] = $this->get_configured_edit_fields( $this->form, $this->view_id );
1365
+        $this->form[ 'fields' ] = $this->get_configured_edit_fields( $this->form, $this->view_id );
1366 1366
 
1367 1367
         $this->is_valid = GFFormDisplay::validate( $this->form, $field_values, 1, $failed_validation_page );
1368 1368
 
1369
-        remove_filter( 'gform_validation_'. $this->form_id, array( $this, 'custom_validation' ), 10 );
1369
+        remove_filter( 'gform_validation_' . $this->form_id, array( $this, 'custom_validation' ), 10 );
1370 1370
     }
1371 1371
 
1372 1372
 
@@ -1383,13 +1383,13 @@  discard block
 block discarded – undo
1383 1383
      */
1384 1384
     public function custom_validation( $validation_results ) {
1385 1385
 
1386
-        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results: ', $validation_results );
1386
+        do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results: ', $validation_results );
1387 1387
 
1388
-        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
1388
+        do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] $_POSTed data (sanitized): ', esc_html( print_r( $_POST, true ) ) );
1389 1389
 
1390 1390
         $gv_valid = true;
1391 1391
 
1392
-        foreach ( $validation_results['form']['fields'] as $key => &$field ) {
1392
+        foreach ( $validation_results[ 'form' ][ 'fields' ] as $key => &$field ) {
1393 1393
 
1394 1394
             $value = RGFormsModel::get_field_value( $field );
1395 1395
             $field_type = RGFormsModel::get_input_type( $field );
@@ -1402,35 +1402,35 @@  discard block
 block discarded – undo
1402 1402
                 case 'post_image':
1403 1403
 
1404 1404
                     // in case nothing is uploaded but there are already files saved
1405
-                    if( !empty( $field->failed_validation ) && !empty( $field->isRequired ) && !empty( $value ) ) {
1405
+                    if ( ! empty( $field->failed_validation ) && ! empty( $field->isRequired ) && ! empty( $value ) ) {
1406 1406
                         $field->failed_validation = false;
1407 1407
                         unset( $field->validation_message );
1408 1408
                     }
1409 1409
 
1410 1410
                     // validate if multi file upload reached max number of files [maxFiles] => 2
1411
-                    if( rgobj( $field, 'maxFiles') && rgobj( $field, 'multipleFiles') ) {
1411
+                    if ( rgobj( $field, 'maxFiles' ) && rgobj( $field, 'multipleFiles' ) ) {
1412 1412
 
1413 1413
                         $input_name = 'input_' . $field->id;
1414 1414
                         //uploaded
1415
-                        $file_names = isset( GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] : array();
1415
+                        $file_names = isset( GFFormsModel::$uploaded_files[ $validation_results[ 'form' ][ 'id' ] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results[ 'form' ][ 'id' ] ][ $input_name ] : array();
1416 1416
 
1417 1417
                         //existent
1418 1418
                         $entry = $this->get_entry();
1419 1419
                         $value = NULL;
1420
-                        if( isset( $entry[ $field->id ] ) ) {
1420
+                        if ( isset( $entry[ $field->id ] ) ) {
1421 1421
                             $value = json_decode( $entry[ $field->id ], true );
1422 1422
                         }
1423 1423
 
1424 1424
                         // count uploaded files and existent entry files
1425 1425
                         $count_files = count( $file_names ) + count( $value );
1426 1426
 
1427
-                        if( $count_files > $field->maxFiles ) {
1427
+                        if ( $count_files > $field->maxFiles ) {
1428 1428
                             $field->validation_message = __( 'Maximum number of files reached', 'gravityview' );
1429 1429
                             $field->failed_validation = 1;
1430 1430
                             $gv_valid = false;
1431 1431
 
1432 1432
                             // in case of error make sure the newest upload files are removed from the upload input
1433
-                            GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ] = null;
1433
+                            GFFormsModel::$uploaded_files[ $validation_results[ 'form' ][ 'id' ] ] = null;
1434 1434
                         }
1435 1435
 
1436 1436
                     }
@@ -1441,7 +1441,7 @@  discard block
 block discarded – undo
1441 1441
             }
1442 1442
 
1443 1443
             // This field has failed validation.
1444
-            if( !empty( $field->failed_validation ) ) {
1444
+            if ( ! empty( $field->failed_validation ) ) {
1445 1445
 
1446 1446
                 do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field is invalid.', array( 'field' => $field, 'value' => $value ) );
1447 1447
 
@@ -1459,32 +1459,32 @@  discard block
 block discarded – undo
1459 1459
                 }
1460 1460
 
1461 1461
                 // You can't continue inside a switch, so we do it after.
1462
-                if( empty( $field->failed_validation ) ) {
1462
+                if ( empty( $field->failed_validation ) ) {
1463 1463
                     continue;
1464 1464
                 }
1465 1465
 
1466 1466
                 // checks if the No Duplicates option is not validating entry against itself, since
1467 1467
                 // we're editing a stored entry, it would also assume it's a duplicate.
1468
-                if( !empty( $field->noDuplicates ) ) {
1468
+                if ( ! empty( $field->noDuplicates ) ) {
1469 1469
 
1470 1470
                     $entry = $this->get_entry();
1471 1471
 
1472 1472
                     // If the value of the entry is the same as the stored value
1473 1473
                     // Then we can assume it's not a duplicate, it's the same.
1474
-                    if( !empty( $entry ) && $value == $entry[ $field->id ] ) {
1474
+                    if ( ! empty( $entry ) && $value == $entry[ $field->id ] ) {
1475 1475
                         //if value submitted was not changed, then don't validate
1476 1476
                         $field->failed_validation = false;
1477 1477
 
1478 1478
                         unset( $field->validation_message );
1479 1479
 
1480
-                        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', $entry );
1480
+                        do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', $entry );
1481 1481
 
1482 1482
                         continue;
1483 1483
                     }
1484 1484
                 }
1485 1485
 
1486 1486
                 // if here then probably we are facing the validation 'At least one field must be filled out'
1487
-                if( GFFormDisplay::is_empty( $field, $this->form_id  ) && empty( $field->isRequired ) ) {
1487
+                if ( GFFormDisplay::is_empty( $field, $this->form_id ) && empty( $field->isRequired ) ) {
1488 1488
                     unset( $field->validation_message );
1489 1489
 	                $field->validation_message = false;
1490 1490
                     continue;
@@ -1496,12 +1496,12 @@  discard block
 block discarded – undo
1496 1496
 
1497 1497
         }
1498 1498
 
1499
-        $validation_results['is_valid'] = $gv_valid;
1499
+        $validation_results[ 'is_valid' ] = $gv_valid;
1500 1500
 
1501
-        do_action('gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results.', $validation_results );
1501
+        do_action( 'gravityview_log_debug', 'GravityView_Edit_Entry[custom_validation] Validation results.', $validation_results );
1502 1502
 
1503 1503
         // We'll need this result when rendering the form ( on GFFormDisplay::get_form )
1504
-        $this->form_after_validation = $validation_results['form'];
1504
+        $this->form_after_validation = $validation_results[ 'form' ];
1505 1505
 
1506 1506
         return $validation_results;
1507 1507
     }
@@ -1514,7 +1514,7 @@  discard block
 block discarded – undo
1514 1514
      */
1515 1515
     public function get_entry() {
1516 1516
 
1517
-        if( empty( $this->entry ) ) {
1517
+        if ( empty( $this->entry ) ) {
1518 1518
             // Get the database value of the entry that's being edited
1519 1519
             $this->entry = gravityview_get_entry( GravityView_frontend::is_single_entry() );
1520 1520
         }
@@ -1549,10 +1549,10 @@  discard block
 block discarded – undo
1549 1549
 		}
1550 1550
 
1551 1551
         // If edit tab not yet configured, show all fields
1552
-        $edit_fields = !empty( $properties['edit_edit-fields'] ) ? $properties['edit_edit-fields'] : NULL;
1552
+        $edit_fields = ! empty( $properties[ 'edit_edit-fields' ] ) ? $properties[ 'edit_edit-fields' ] : NULL;
1553 1553
 
1554 1554
         // Hide fields depending on admin settings
1555
-        $fields = $this->filter_fields( $form['fields'], $edit_fields );
1555
+        $fields = $this->filter_fields( $form[ 'fields' ], $edit_fields );
1556 1556
 
1557 1557
 	    // If Edit Entry fields are configured, remove adminOnly field settings. Otherwise, don't.
1558 1558
 	    $fields = $this->filter_admin_only_fields( $fields, $edit_fields, $form, $view_id );
@@ -1584,7 +1584,7 @@  discard block
 block discarded – undo
1584 1584
      */
1585 1585
     private function filter_fields( $fields, $configured_fields ) {
1586 1586
 
1587
-        if( empty( $fields ) || !is_array( $fields ) ) {
1587
+        if ( empty( $fields ) || ! is_array( $fields ) ) {
1588 1588
             return $fields;
1589 1589
         }
1590 1590
 
@@ -1597,18 +1597,18 @@  discard block
 block discarded – undo
1597 1597
 
1598 1598
             // Remove the fields that have calculation properties and keep them to be used later
1599 1599
             // @since 1.16.2
1600
-            if( $field->has_calculation() ) {
1601
-                $this->fields_with_calculation[] = $field;
1600
+            if ( $field->has_calculation() ) {
1601
+                $this->fields_with_calculation[ ] = $field;
1602 1602
                 // don't remove the calculation fields on form render.
1603 1603
             }
1604 1604
 
1605
-            if( in_array( $field->type, $field_type_blacklist ) ) {
1605
+            if ( in_array( $field->type, $field_type_blacklist ) ) {
1606 1606
                 unset( $fields[ $key ] );
1607 1607
             }
1608 1608
         }
1609 1609
 
1610 1610
         // The Edit tab has not been configured, so we return all fields by default.
1611
-        if( empty( $configured_fields ) ) {
1611
+        if ( empty( $configured_fields ) ) {
1612 1612
             return $fields;
1613 1613
         }
1614 1614
 
@@ -1618,8 +1618,8 @@  discard block
 block discarded – undo
1618 1618
 	        /** @var GF_Field $field */
1619 1619
 	        foreach ( $fields as $field ) {
1620 1620
 
1621
-                if( intval( $configured_field['id'] ) === intval( $field->id ) && $this->user_can_edit_field( $configured_field, false ) ) {
1622
-                    $edit_fields[] = $this->merge_field_properties( $field, $configured_field );
1621
+                if ( intval( $configured_field[ 'id' ] ) === intval( $field->id ) && $this->user_can_edit_field( $configured_field, false ) ) {
1622
+                    $edit_fields[ ] = $this->merge_field_properties( $field, $configured_field );
1623 1623
                     break;
1624 1624
                 }
1625 1625
 
@@ -1642,14 +1642,14 @@  discard block
 block discarded – undo
1642 1642
 
1643 1643
         $return_field = $field;
1644 1644
 
1645
-        if( empty( $field_setting['show_label'] ) ) {
1645
+        if ( empty( $field_setting[ 'show_label' ] ) ) {
1646 1646
             $return_field->label = '';
1647
-        } elseif ( !empty( $field_setting['custom_label'] ) ) {
1648
-            $return_field->label = $field_setting['custom_label'];
1647
+        } elseif ( ! empty( $field_setting[ 'custom_label' ] ) ) {
1648
+            $return_field->label = $field_setting[ 'custom_label' ];
1649 1649
         }
1650 1650
 
1651
-        if( !empty( $field_setting['custom_class'] ) ) {
1652
-            $return_field->cssClass .= ' '. gravityview_sanitize_html_class( $field_setting['custom_class'] );
1651
+        if ( ! empty( $field_setting[ 'custom_class' ] ) ) {
1652
+            $return_field->cssClass .= ' ' . gravityview_sanitize_html_class( $field_setting[ 'custom_class' ] );
1653 1653
         }
1654 1654
 
1655 1655
         /**
@@ -1687,16 +1687,16 @@  discard block
 block discarded – undo
1687 1687
 	     */
1688 1688
 	    $use_gf_adminonly_setting = apply_filters( 'gravityview/edit_entry/use_gf_admin_only_setting', empty( $edit_fields ), $form, $view_id );
1689 1689
 
1690
-	    if( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry['id'] ) ) {
1691
-            foreach( $fields as $k => $field ) {
1692
-                if( $field->adminOnly ) {
1690
+	    if ( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry[ 'id' ] ) ) {
1691
+            foreach ( $fields as $k => $field ) {
1692
+                if ( $field->adminOnly ) {
1693 1693
                     unset( $fields[ $k ] );
1694 1694
                 }
1695 1695
             }
1696 1696
             return $fields;
1697 1697
         }
1698 1698
 
1699
-	    foreach( $fields as &$field ) {
1699
+	    foreach ( $fields as &$field ) {
1700 1700
 		    $field->adminOnly = false;
1701 1701
         }
1702 1702
 
@@ -1720,22 +1720,22 @@  discard block
 block discarded – undo
1720 1720
      */
1721 1721
     function prefill_conditional_logic( $form ) {
1722 1722
 
1723
-        if( ! GFFormDisplay::has_conditional_logic( $form ) ) {
1723
+        if ( ! GFFormDisplay::has_conditional_logic( $form ) ) {
1724 1724
             return $form;
1725 1725
         }
1726 1726
 
1727 1727
         // Have Conditional Logic pre-fill fields as if the data were default values
1728 1728
         /** @var GF_Field $field */
1729
-        foreach ( $form['fields'] as &$field ) {
1729
+        foreach ( $form[ 'fields' ] as &$field ) {
1730 1730
 
1731
-            if( 'checkbox' === $field->type ) {
1731
+            if ( 'checkbox' === $field->type ) {
1732 1732
                 foreach ( $field->get_entry_inputs() as $key => $input ) {
1733
-                    $input_id = $input['id'];
1733
+                    $input_id = $input[ 'id' ];
1734 1734
                     $choice = $field->choices[ $key ];
1735 1735
                     $value = rgar( $this->entry, $input_id );
1736 1736
                     $match = RGFormsModel::choice_value_match( $field, $choice, $value );
1737
-                    if( $match ) {
1738
-                        $field->choices[ $key ]['isSelected'] = true;
1737
+                    if ( $match ) {
1738
+                        $field->choices[ $key ][ 'isSelected' ] = true;
1739 1739
                     }
1740 1740
                 }
1741 1741
             } else {
@@ -1743,15 +1743,15 @@  discard block
 block discarded – undo
1743 1743
                 // We need to run through each field to set the default values
1744 1744
                 foreach ( $this->entry as $field_id => $field_value ) {
1745 1745
 
1746
-                    if( floatval( $field_id ) === floatval( $field->id ) ) {
1746
+                    if ( floatval( $field_id ) === floatval( $field->id ) ) {
1747 1747
 
1748
-                        if( 'list' === $field->type ) {
1748
+                        if ( 'list' === $field->type ) {
1749 1749
                             $list_rows = maybe_unserialize( $field_value );
1750 1750
 
1751 1751
                             $list_field_value = array();
1752
-                            foreach ( (array) $list_rows as $row ) {
1753
-                                foreach ( (array) $row as $column ) {
1754
-                                    $list_field_value[] = $column;
1752
+                            foreach ( (array)$list_rows as $row ) {
1753
+                                foreach ( (array)$row as $column ) {
1754
+                                    $list_field_value[ ] = $column;
1755 1755
                                 }
1756 1756
                             }
1757 1757
 
@@ -1786,16 +1786,16 @@  discard block
 block discarded – undo
1786 1786
          */
1787 1787
         $use_conditional_logic = apply_filters( 'gravityview/edit_entry/conditional_logic', true, $form );
1788 1788
 
1789
-        if( $use_conditional_logic ) {
1789
+        if ( $use_conditional_logic ) {
1790 1790
             return $form;
1791 1791
         }
1792 1792
 
1793
-        foreach( $form['fields'] as &$field ) {
1793
+        foreach ( $form[ 'fields' ] as &$field ) {
1794 1794
             /* @var GF_Field $field */
1795 1795
             $field->conditionalLogic = null;
1796 1796
         }
1797 1797
 
1798
-        unset( $form['button']['conditionalLogic'] );
1798
+        unset( $form[ 'button' ][ 'conditionalLogic' ] );
1799 1799
 
1800 1800
         return $form;
1801 1801
 
@@ -1812,7 +1812,7 @@  discard block
 block discarded – undo
1812 1812
      */
1813 1813
     public function manage_conditional_logic( $has_conditional_logic, $form ) {
1814 1814
 
1815
-        if( ! $this->is_edit_entry() ) {
1815
+        if ( ! $this->is_edit_entry() ) {
1816 1816
             return $has_conditional_logic;
1817 1817
         }
1818 1818
 
@@ -1844,44 +1844,44 @@  discard block
 block discarded – undo
1844 1844
          *  2. There are two entries embedded using oEmbed
1845 1845
          *  3. One of the entries has just been saved
1846 1846
          */
1847
-        if( !empty( $_POST['lid'] ) && !empty( $_GET['entry'] ) && ( $_POST['lid'] !== $_GET['entry'] ) ) {
1847
+        if ( ! empty( $_POST[ 'lid' ] ) && ! empty( $_GET[ 'entry' ] ) && ( $_POST[ 'lid' ] !== $_GET[ 'entry' ] ) ) {
1848 1848
 
1849 1849
             $error = true;
1850 1850
 
1851 1851
         }
1852 1852
 
1853
-        if( !empty( $_GET['entry'] ) && (string)$this->entry['id'] !== $_GET['entry'] ) {
1853
+        if ( ! empty( $_GET[ 'entry' ] ) && (string)$this->entry[ 'id' ] !== $_GET[ 'entry' ] ) {
1854 1854
 
1855 1855
             $error = true;
1856 1856
 
1857
-        } elseif( ! $this->verify_nonce() ) {
1857
+        } elseif ( ! $this->verify_nonce() ) {
1858 1858
 
1859 1859
             /**
1860 1860
              * If the Entry is embedded, there may be two entries on the same page.
1861 1861
              * If that's the case, and one is being edited, the other should fail gracefully and not display an error.
1862 1862
              */
1863
-            if( GravityView_oEmbed::getInstance()->get_entry_id() ) {
1863
+            if ( GravityView_oEmbed::getInstance()->get_entry_id() ) {
1864 1864
                 $error = true;
1865 1865
             } else {
1866
-                $error = __( 'The link to edit this entry is not valid; it may have expired.', 'gravityview');
1866
+                $error = __( 'The link to edit this entry is not valid; it may have expired.', 'gravityview' );
1867 1867
             }
1868 1868
 
1869 1869
         }
1870 1870
 
1871
-        if( ! GravityView_Edit_Entry::check_user_cap_edit_entry( $this->entry ) ) {
1872
-            $error = __( 'You do not have permission to edit this entry.', 'gravityview');
1871
+        if ( ! GravityView_Edit_Entry::check_user_cap_edit_entry( $this->entry ) ) {
1872
+            $error = __( 'You do not have permission to edit this entry.', 'gravityview' );
1873 1873
         }
1874 1874
 
1875
-        if( $this->entry['status'] === 'trash' ) {
1876
-            $error = __('You cannot edit the entry; it is in the trash.', 'gravityview' );
1875
+        if ( $this->entry[ 'status' ] === 'trash' ) {
1876
+            $error = __( 'You cannot edit the entry; it is in the trash.', 'gravityview' );
1877 1877
         }
1878 1878
 
1879 1879
         // No errors; everything's fine here!
1880
-        if( empty( $error ) ) {
1880
+        if ( empty( $error ) ) {
1881 1881
             return true;
1882 1882
         }
1883 1883
 
1884
-        if( $echo && $error !== true ) {
1884
+        if ( $echo && $error !== true ) {
1885 1885
 
1886 1886
 	        $error = esc_html( $error );
1887 1887
 
@@ -1889,13 +1889,13 @@  discard block
 block discarded – undo
1889 1889
 	         * @since 1.9
1890 1890
 	         */
1891 1891
 	        if ( ! empty( $this->entry ) ) {
1892
-		        $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;" ) );
1892
+		        $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;" ) );
1893 1893
 	        }
1894 1894
 
1895
-            echo GVCommon::generate_notice( wpautop( $error ), 'gv-error error');
1895
+            echo GVCommon::generate_notice( wpautop( $error ), 'gv-error error' );
1896 1896
         }
1897 1897
 
1898
-        do_action('gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_entry]' . $error );
1898
+        do_action( 'gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_entry]' . $error );
1899 1899
 
1900 1900
         return false;
1901 1901
     }
@@ -1912,20 +1912,20 @@  discard block
 block discarded – undo
1912 1912
 
1913 1913
         $error = NULL;
1914 1914
 
1915
-        if( ! $this->check_user_cap_edit_field( $field ) ) {
1916
-            $error = __( 'You do not have permission to edit this field.', 'gravityview');
1915
+        if ( ! $this->check_user_cap_edit_field( $field ) ) {
1916
+            $error = __( 'You do not have permission to edit this field.', 'gravityview' );
1917 1917
         }
1918 1918
 
1919 1919
         // No errors; everything's fine here!
1920
-        if( empty( $error ) ) {
1920
+        if ( empty( $error ) ) {
1921 1921
             return true;
1922 1922
         }
1923 1923
 
1924
-        if( $echo ) {
1925
-            echo GVCommon::generate_notice( wpautop( esc_html( $error ) ), 'gv-error error');
1924
+        if ( $echo ) {
1925
+            echo GVCommon::generate_notice( wpautop( esc_html( $error ) ), 'gv-error error' );
1926 1926
         }
1927 1927
 
1928
-        do_action('gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_field]' . $error );
1928
+        do_action( 'gravityview_log_error', 'GravityView_Edit_Entry[user_can_edit_field]' . $error );
1929 1929
 
1930 1930
         return false;
1931 1931
 
@@ -1943,15 +1943,15 @@  discard block
 block discarded – undo
1943 1943
     private function check_user_cap_edit_field( $field ) {
1944 1944
 
1945 1945
         // If they can edit any entries (as defined in Gravity Forms), we're good.
1946
-        if( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ) ) ) {
1946
+        if ( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ) ) ) {
1947 1947
             return true;
1948 1948
         }
1949 1949
 
1950
-        $field_cap = isset( $field['allow_edit_cap'] ) ? $field['allow_edit_cap'] : false;
1950
+        $field_cap = isset( $field[ 'allow_edit_cap' ] ) ? $field[ 'allow_edit_cap' ] : false;
1951 1951
 
1952 1952
         // If the field has custom editing capaibilities set, check those
1953
-        if( $field_cap ) {
1954
-            return GVCommon::has_cap( $field['allow_edit_cap'] );
1953
+        if ( $field_cap ) {
1954
+            return GVCommon::has_cap( $field[ 'allow_edit_cap' ] );
1955 1955
         }
1956 1956
 
1957 1957
         return false;
@@ -1965,17 +1965,17 @@  discard block
 block discarded – undo
1965 1965
     public function verify_nonce() {
1966 1966
 
1967 1967
         // Verify form submitted for editing single
1968
-        if( $this->is_edit_entry_submission() ) {
1968
+        if ( $this->is_edit_entry_submission() ) {
1969 1969
             $valid = wp_verify_nonce( $_POST[ self::$nonce_field ], self::$nonce_field );
1970 1970
         }
1971 1971
 
1972 1972
         // Verify
1973
-        else if( ! $this->is_edit_entry() ) {
1973
+        else if ( ! $this->is_edit_entry() ) {
1974 1974
             $valid = false;
1975 1975
         }
1976 1976
 
1977 1977
         else {
1978
-            $valid = wp_verify_nonce( $_GET['edit'], self::$nonce_key );
1978
+            $valid = wp_verify_nonce( $_GET[ 'edit' ], self::$nonce_key );
1979 1979
         }
1980 1980
 
1981 1981
         /**
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.