Completed
Push — develop ( f1ab0c...827450 )
by Gennady
18:58
created
includes/extensions/edit-entry/class-edit-entry-render.php 1 patch
Indentation   +289 added lines, -289 removed lines patch added patch discarded remove patch
@@ -102,10 +102,10 @@  discard block
 block discarded – undo
102 102
 
103 103
 	/**
104 104
 	 * ID of the current post. May also be ID of the current View.
105
-     *
106
-     * @since 2.0.13
107
-     * 
108
-     * @var int
105
+	 *
106
+	 * @since 2.0.13
107
+	 * 
108
+	 * @var int
109 109
 	 */
110 110
 	public $post_id;
111 111
 
@@ -187,7 +187,7 @@  discard block
 block discarded – undo
187 187
 	 */
188 188
 	public function prevent_maybe_process_form() {
189 189
 
190
-	    if( ! $this->is_edit_entry_submission() ) {
190
+		if( ! $this->is_edit_entry_submission() ) {
191 191
 			return;
192 192
 		}
193 193
 
@@ -221,14 +221,14 @@  discard block
 block discarded – undo
221 221
 	 * When Edit entry view is requested setup the vars
222 222
 	 */
223 223
 	private function setup_vars() {
224
-        global $post;
224
+		global $post;
225 225
 
226 226
 		$gravityview_view = GravityView_View::getInstance();
227 227
 
228 228
 
229 229
 		$entries = $gravityview_view->getEntries();
230
-	    self::$original_entry = $entries[0];
231
-	    $this->entry = $entries[0];
230
+		self::$original_entry = $entries[0];
231
+		$this->entry = $entries[0];
232 232
 
233 233
 		self::$original_form = $gravityview_view->getForm();
234 234
 		$this->form = $gravityview_view->getForm();
@@ -370,8 +370,8 @@  discard block
 block discarded – undo
370 370
 
371 371
 			GFFormsModel::save_lead( $form, $this->entry );
372 372
 
373
-	        // Delete the values for hidden inputs
374
-	        $this->unset_hidden_field_values();
373
+			// Delete the values for hidden inputs
374
+			$this->unset_hidden_field_values();
375 375
 			
376 376
 			$this->entry['date_created'] = $date_created;
377 377
 
@@ -381,7 +381,7 @@  discard block
 block discarded – undo
381 381
 			// Perform actions normally performed after updating a lead
382 382
 			$this->after_update();
383 383
 
384
-	        /**
384
+			/**
385 385
 			 * Must be AFTER after_update()!
386 386
 			 * @see https://github.com/gravityview/GravityView/issues/764
387 387
 			 */
@@ -389,7 +389,7 @@  discard block
 block discarded – undo
389 389
 
390 390
 			/**
391 391
 			 * @action `gravityview/edit_entry/after_update` Perform an action after the entry has been updated using Edit Entry
392
-             * @since 2.1 Added $gv_data parameter
392
+			 * @since 2.1 Added $gv_data parameter
393 393
 			 * @param array $form Gravity Forms form array
394 394
 			 * @param string $entry_id Numeric ID of the entry that was updated
395 395
 			 * @param GravityView_Edit_Entry_Render $this This object
@@ -413,7 +413,7 @@  discard block
 block discarded – undo
413 413
 	 * @return void
414 414
 	 */
415 415
 	private function unset_hidden_field_values() {
416
-	    global $wpdb;
416
+		global $wpdb;
417 417
 
418 418
 		/**
419 419
 		 * @filter `gravityview/edit_entry/unset_hidden_field_values` Whether to delete values of fields hidden by conditional logic
@@ -437,17 +437,17 @@  discard block
 block discarded – undo
437 437
 			$current_fields = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $lead_detail_table WHERE lead_id=%d", $this->entry['id'] ) );
438 438
 		}
439 439
 
440
-	    foreach ( $this->entry as $input_id => $field_value ) {
440
+		foreach ( $this->entry as $input_id => $field_value ) {
441 441
 
442 442
 			if ( ! is_numeric( $input_id ) ) {
443 443
 				continue;
444 444
 			}
445 445
 
446
-		    $field = RGFormsModel::get_field( $this->form, $input_id );
446
+			$field = RGFormsModel::get_field( $this->form, $input_id );
447 447
 
448
-		    // Reset fields that are hidden
449
-		    // Don't pass $entry as fourth parameter; force using $_POST values to calculate conditional logic
450
-		    if ( GFFormsModel::is_field_hidden( $this->form, $field, array(), NULL ) ) {
448
+			// Reset fields that are hidden
449
+			// Don't pass $entry as fourth parameter; force using $_POST values to calculate conditional logic
450
+			if ( GFFormsModel::is_field_hidden( $this->form, $field, array(), NULL ) ) {
451 451
 
452 452
 				$empty_value = $field->get_value_save_entry(
453 453
 					is_array( $field->get_entry_inputs() ) ? array() : '',
@@ -459,16 +459,16 @@  discard block
 block discarded – undo
459 459
 					$empty_value = '';
460 460
 				}
461 461
 
462
-			    $lead_detail_id = GFFormsModel::get_lead_detail_id( $current_fields, $input_id );
462
+				$lead_detail_id = GFFormsModel::get_lead_detail_id( $current_fields, $input_id );
463 463
 
464
-			    GFFormsModel::update_lead_field_value( $this->form, $this->entry, $field, $lead_detail_id, $input_id, $empty_value );
464
+				GFFormsModel::update_lead_field_value( $this->form, $this->entry, $field, $lead_detail_id, $input_id, $empty_value );
465 465
 
466
-			    // Prevent the $_POST values of hidden fields from being used as default values when rendering the form
466
+				// Prevent the $_POST values of hidden fields from being used as default values when rendering the form
467 467
 				// after submission
468
-			    $post_input_id = 'input_' . str_replace( '.', '_', $input_id );
469
-			    $_POST[ $post_input_id ] = '';
470
-		    }
471
-	    }
468
+				$post_input_id = 'input_' . str_replace( '.', '_', $input_id );
469
+				$_POST[ $post_input_id ] = '';
470
+			}
471
+		}
472 472
 	}
473 473
 
474 474
 	/**
@@ -562,7 +562,7 @@  discard block
 block discarded – undo
562 562
 
563 563
 		$form = $this->filter_conditional_logic( $this->form );
564 564
 
565
-	    /** @var GF_Field $field */
565
+		/** @var GF_Field $field */
566 566
 		foreach( $form['fields'] as $k => &$field ) {
567 567
 
568 568
 			/**
@@ -578,7 +578,7 @@  discard block
 block discarded – undo
578 578
 
579 579
 			if( isset( $field->inputs ) && is_array( $field->inputs ) ) {
580 580
 				foreach( $field->inputs as $key => $input ) {
581
-				    $field->inputs[ $key ][ 'id' ] = (string)$input['id'];
581
+					$field->inputs[ $key ][ 'id' ] = (string)$input['id'];
582 582
 				}
583 583
 			}
584 584
 		}
@@ -618,7 +618,7 @@  discard block
 block discarded – undo
618 618
 
619 619
 				$inputs = $field->get_entry_inputs();
620 620
 				if ( is_array( $inputs ) ) {
621
-				    foreach ( $inputs as $input ) {
621
+					foreach ( $inputs as $input ) {
622 622
 						list( $field_id, $input_id ) = rgexplode( '.', $input['id'], 2 );
623 623
 
624 624
 						if ( 'product' === $field->type ) {
@@ -637,7 +637,7 @@  discard block
 block discarded – undo
637 637
 						}
638 638
 
639 639
 						GFFormsModel::save_input( $form, $field, $entry, $current_fields, $input['id'] );
640
-				    }
640
+					}
641 641
 				} else {
642 642
 					// Set to what it previously was if it's not editable
643 643
 					if ( ! in_array( $field->id, $allowed_fields ) ) {
@@ -683,7 +683,7 @@  discard block
 block discarded – undo
683 683
 			$value = RGFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'] );
684 684
 
685 685
 			$ary = ! empty( $value ) ? explode( '|:|', $value ) : array();
686
-	        $ary = stripslashes_deep( $ary );
686
+			$ary = stripslashes_deep( $ary );
687 687
 			$img_url = \GV\Utils::get( $ary, 0 );
688 688
 
689 689
 			$img_title       = count( $ary ) > 1 ? $ary[1] : '';
@@ -756,7 +756,7 @@  discard block
 block discarded – undo
756 756
 	private function maybe_update_post_fields( $form ) {
757 757
 
758 758
 		if( empty( $this->entry['post_id'] ) ) {
759
-	        gravityview()->log->debug( 'This entry has no post fields. Continuing...' );
759
+			gravityview()->log->debug( 'This entry has no post fields. Continuing...' );
760 760
 			return;
761 761
 		}
762 762
 
@@ -791,49 +791,49 @@  discard block
 block discarded – undo
791 791
 
792 792
 				switch( $field->type ) {
793 793
 
794
-				    case 'post_title':
795
-				        $post_title = $value;
796
-				        if ( \GV\Utils::get( $form, 'postTitleTemplateEnabled' ) ) {
797
-				            $post_title = $this->fill_post_template( $form['postTitleTemplate'], $form, $entry_tmp );
798
-				        }
799
-				        $updated_post->post_title = $post_title;
800
-				        $updated_post->post_name  = $post_title;
801
-				        unset( $post_title );
802
-				        break;
803
-
804
-				    case 'post_content':
805
-				        $post_content = $value;
806
-				        if ( \GV\Utils::get( $form, 'postContentTemplateEnabled' ) ) {
807
-				            $post_content = $this->fill_post_template( $form['postContentTemplate'], $form, $entry_tmp, true );
808
-				        }
809
-				        $updated_post->post_content = $post_content;
810
-				        unset( $post_content );
811
-				        break;
812
-				    case 'post_excerpt':
813
-				        $updated_post->post_excerpt = $value;
814
-				        break;
815
-				    case 'post_tags':
816
-				        wp_set_post_tags( $post_id, $value, false );
817
-				        break;
818
-				    case 'post_category':
819
-				        break;
820
-				    case 'post_custom_field':
794
+					case 'post_title':
795
+						$post_title = $value;
796
+						if ( \GV\Utils::get( $form, 'postTitleTemplateEnabled' ) ) {
797
+							$post_title = $this->fill_post_template( $form['postTitleTemplate'], $form, $entry_tmp );
798
+						}
799
+						$updated_post->post_title = $post_title;
800
+						$updated_post->post_name  = $post_title;
801
+						unset( $post_title );
802
+						break;
803
+
804
+					case 'post_content':
805
+						$post_content = $value;
806
+						if ( \GV\Utils::get( $form, 'postContentTemplateEnabled' ) ) {
807
+							$post_content = $this->fill_post_template( $form['postContentTemplate'], $form, $entry_tmp, true );
808
+						}
809
+						$updated_post->post_content = $post_content;
810
+						unset( $post_content );
811
+						break;
812
+					case 'post_excerpt':
813
+						$updated_post->post_excerpt = $value;
814
+						break;
815
+					case 'post_tags':
816
+						wp_set_post_tags( $post_id, $value, false );
817
+						break;
818
+					case 'post_category':
819
+						break;
820
+					case 'post_custom_field':
821 821
 						if ( is_array( $value ) && ( floatval( $field_id ) !== floatval( $field->id ) ) ) {
822 822
 							$value = $value[ $field_id ];
823 823
 						}
824 824
 
825
-				        if( ! empty( $field->customFieldTemplateEnabled ) ) {
826
-				            $value = $this->fill_post_template( $field->customFieldTemplate, $form, $entry_tmp, true );
827
-				        }
825
+						if( ! empty( $field->customFieldTemplateEnabled ) ) {
826
+							$value = $this->fill_post_template( $field->customFieldTemplate, $form, $entry_tmp, true );
827
+						}
828 828
 
829 829
 						$value = $field->get_value_save_entry( $value, $form, '', $this->entry['id'], $this->entry );
830 830
 
831
-				        update_post_meta( $post_id, $field->postCustomFieldName, $value );
832
-				        break;
831
+						update_post_meta( $post_id, $field->postCustomFieldName, $value );
832
+						break;
833 833
 
834
-				    case 'post_image':
835
-				        $value = $this->update_post_image( $form, $field, $field_id, $value, $this->entry, $post_id );
836
-				        break;
834
+					case 'post_image':
835
+						$value = $this->update_post_image( $form, $field, $field_id, $value, $this->entry, $post_id );
836
+						break;
837 837
 
838 838
 				}
839 839
 
@@ -990,14 +990,14 @@  discard block
 block discarded – undo
990 990
 			?><h2 class="gv-edit-entry-title">
991 991
 				<span><?php
992 992
 
993
-				    /**
994
-				     * @filter `gravityview_edit_entry_title` Modify the edit entry title
995
-				     * @param string $edit_entry_title Modify the "Edit Entry" title
996
-				     * @param GravityView_Edit_Entry_Render $this This object
997
-				     */
998
-				    $edit_entry_title = apply_filters('gravityview_edit_entry_title', __('Edit Entry', 'gravityview'), $this );
993
+					/**
994
+					 * @filter `gravityview_edit_entry_title` Modify the edit entry title
995
+					 * @param string $edit_entry_title Modify the "Edit Entry" title
996
+					 * @param GravityView_Edit_Entry_Render $this This object
997
+					 */
998
+					$edit_entry_title = apply_filters('gravityview_edit_entry_title', __('Edit Entry', 'gravityview'), $this );
999 999
 
1000
-				    echo esc_attr( $edit_entry_title );
1000
+					echo esc_attr( $edit_entry_title );
1001 1001
 			?></span>
1002 1002
 			</h2>
1003 1003
 
@@ -1060,26 +1060,26 @@  discard block
 block discarded – undo
1060 1060
 
1061 1061
 				switch ( $edit_redirect ) {
1062 1062
 
1063
-                    case '0':
1064
-	                    $redirect_url = $back_link;
1065
-	                    $entry_updated_message = sprintf( esc_attr_x('Entry Updated. %sReturning to Entry%s', 'Replacements are HTML', 'gravityview'), '<a href="'. esc_url( $redirect_url ) .'">', '</a>' );
1066
-                        break;
1067
-
1068
-                    case '1':
1069
-	                    $redirect_url = $directory_link = GravityView_API::directory_link();
1070
-	                    $entry_updated_message = sprintf( esc_attr_x('Entry Updated. %sReturning to %s%s', 'Replacement 1 is HTML. Replacement 2 is the title of the page where the user will be taken. Replacement 3 is HTML.','gravityview'), '<a href="'. esc_url( $redirect_url ) . '">', esc_html( $view->post_title ), '</a>' );
1071
-	                    break;
1072
-
1073
-                    case '2':
1074
-	                    $redirect_url = $edit_redirect_url;
1075
-	                    $redirect_url = GFCommon::replace_variables( $redirect_url, $this->form, $this->entry, false, false, false, 'text' );
1076
-	                    $entry_updated_message = sprintf( esc_attr_x('Entry Updated. %sRedirecting to %s%s', 'Replacement 1 is HTML. Replacement 2 is the URL where the user will be taken. Replacement 3 is HTML.','gravityview'), '<a href="'. esc_url( $redirect_url ) . '">', esc_html( $edit_redirect_url ), '</a>' );
1077
-                        break;
1078
-
1079
-                    case '':
1080
-                    default:
1081
-					    $entry_updated_message = sprintf( esc_attr__('Entry Updated. %sReturn to Entry%s', 'gravityview'), '<a href="'. esc_url( $back_link ) .'">', '</a>' );
1082
-                        break;
1063
+					case '0':
1064
+						$redirect_url = $back_link;
1065
+						$entry_updated_message = sprintf( esc_attr_x('Entry Updated. %sReturning to Entry%s', 'Replacements are HTML', 'gravityview'), '<a href="'. esc_url( $redirect_url ) .'">', '</a>' );
1066
+						break;
1067
+
1068
+					case '1':
1069
+						$redirect_url = $directory_link = GravityView_API::directory_link();
1070
+						$entry_updated_message = sprintf( esc_attr_x('Entry Updated. %sReturning to %s%s', 'Replacement 1 is HTML. Replacement 2 is the title of the page where the user will be taken. Replacement 3 is HTML.','gravityview'), '<a href="'. esc_url( $redirect_url ) . '">', esc_html( $view->post_title ), '</a>' );
1071
+						break;
1072
+
1073
+					case '2':
1074
+						$redirect_url = $edit_redirect_url;
1075
+						$redirect_url = GFCommon::replace_variables( $redirect_url, $this->form, $this->entry, false, false, false, 'text' );
1076
+						$entry_updated_message = sprintf( esc_attr_x('Entry Updated. %sRedirecting to %s%s', 'Replacement 1 is HTML. Replacement 2 is the URL where the user will be taken. Replacement 3 is HTML.','gravityview'), '<a href="'. esc_url( $redirect_url ) . '">', esc_html( $edit_redirect_url ), '</a>' );
1077
+						break;
1078
+
1079
+					case '':
1080
+					default:
1081
+						$entry_updated_message = sprintf( esc_attr__('Entry Updated. %sReturn to Entry%s', 'gravityview'), '<a href="'. esc_url( $back_link ) .'">', '</a>' );
1082
+						break;
1083 1083
 				}
1084 1084
 
1085 1085
 				if ( isset( $redirect_url ) ) {
@@ -1168,7 +1168,7 @@  discard block
 block discarded – undo
1168 1168
 
1169 1169
 		ob_get_clean();
1170 1170
 
1171
-	    remove_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields' ), 5000 );
1171
+		remove_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields' ), 5000 );
1172 1172
 		remove_filter( 'gform_submit_button', array( $this, 'render_form_buttons' ) );
1173 1173
 		remove_filter( 'gform_next_button', array( $this, 'render_form_buttons' ) );
1174 1174
 		remove_filter( 'gform_previous_button', array( $this, 'render_form_buttons' ) );
@@ -1224,7 +1224,7 @@  discard block
 block discarded – undo
1224 1224
 
1225 1225
 		// for now we don't support Save and Continue feature.
1226 1226
 		if( ! self::$supports_save_and_continue ) {
1227
-	        unset( $form['save'] );
1227
+			unset( $form['save'] );
1228 1228
 		}
1229 1229
 
1230 1230
 		$form = $this->unselect_default_values( $form );
@@ -1251,30 +1251,30 @@  discard block
 block discarded – undo
1251 1251
 			return $field_content;
1252 1252
 		}
1253 1253
 
1254
-        $message = null;
1254
+		$message = null;
1255 1255
 
1256
-        // First, make sure they have the capability to edit the post.
1257
-        if( false === current_user_can( 'edit_post', $this->entry['post_id'] ) ) {
1256
+		// First, make sure they have the capability to edit the post.
1257
+		if( false === current_user_can( 'edit_post', $this->entry['post_id'] ) ) {
1258 1258
 
1259
-            /**
1260
-             * @filter `gravityview/edit_entry/unsupported_post_field_text` Modify the message when someone isn't able to edit a post
1261
-             * @param string $message The existing "You don't have permission..." text
1262
-             */
1263
-            $message = apply_filters('gravityview/edit_entry/unsupported_post_field_text', __('You don&rsquo;t have permission to edit this post.', 'gravityview') );
1259
+			/**
1260
+			 * @filter `gravityview/edit_entry/unsupported_post_field_text` Modify the message when someone isn't able to edit a post
1261
+			 * @param string $message The existing "You don't have permission..." text
1262
+			 */
1263
+			$message = apply_filters('gravityview/edit_entry/unsupported_post_field_text', __('You don&rsquo;t have permission to edit this post.', 'gravityview') );
1264 1264
 
1265
-        } elseif( null === get_post( $this->entry['post_id'] ) ) {
1266
-            /**
1267
-             * @filter `gravityview/edit_entry/no_post_text` Modify the message when someone is editing an entry attached to a post that no longer exists
1268
-             * @param string $message The existing "This field is not editable; the post no longer exists." text
1269
-             */
1270
-            $message = apply_filters('gravityview/edit_entry/no_post_text', __('This field is not editable; the post no longer exists.', 'gravityview' ) );
1271
-        }
1265
+		} elseif( null === get_post( $this->entry['post_id'] ) ) {
1266
+			/**
1267
+			 * @filter `gravityview/edit_entry/no_post_text` Modify the message when someone is editing an entry attached to a post that no longer exists
1268
+			 * @param string $message The existing "This field is not editable; the post no longer exists." text
1269
+			 */
1270
+			$message = apply_filters('gravityview/edit_entry/no_post_text', __('This field is not editable; the post no longer exists.', 'gravityview' ) );
1271
+		}
1272 1272
 
1273
-        if( $message ) {
1274
-            $field_content = sprintf('<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) );
1275
-        }
1273
+		if( $message ) {
1274
+			$field_content = sprintf('<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) );
1275
+		}
1276 1276
 
1277
-        return $field_content;
1277
+		return $field_content;
1278 1278
 	}
1279 1279
 
1280 1280
 	/**
@@ -1302,7 +1302,7 @@  discard block
 block discarded – undo
1302 1302
 			|| ! empty( $field_content )
1303 1303
 			|| in_array( $field->type, array( 'honeypot' ) )
1304 1304
 		) {
1305
-	        return $field_content;
1305
+			return $field_content;
1306 1306
 		}
1307 1307
 
1308 1308
 		// SET SOME FIELD DEFAULTS TO PREVENT ISSUES
@@ -1310,24 +1310,24 @@  discard block
 block discarded – undo
1310 1310
 
1311 1311
 		$field_value = $this->get_field_value( $field );
1312 1312
 
1313
-	    // Prevent any PHP warnings, like undefined index
1314
-	    ob_start();
1313
+		// Prevent any PHP warnings, like undefined index
1314
+		ob_start();
1315 1315
 
1316
-	    $return = null;
1316
+		$return = null;
1317 1317
 
1318 1318
 		/** @var GravityView_Field $gv_field */
1319 1319
 		if( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) {
1320 1320
 			$return = $gv_field->get_field_input( $this->form, $field_value, $this->entry, $field );
1321 1321
 		} else {
1322
-	        $return = $field->get_field_input( $this->form, $field_value, $this->entry );
1323
-	    }
1322
+			$return = $field->get_field_input( $this->form, $field_value, $this->entry );
1323
+		}
1324 1324
 
1325
-	    // If there was output, it's an error
1326
-	    $warnings = ob_get_clean();
1325
+		// If there was output, it's an error
1326
+		$warnings = ob_get_clean();
1327 1327
 
1328
-	    if( !empty( $warnings ) ) {
1329
-		    gravityview()->log->error( '{warning}', array( 'warning' => $warnings, 'data' => $field_value ) );
1330
-	    }
1328
+		if( !empty( $warnings ) ) {
1329
+			gravityview()->log->error( '{warning}', array( 'warning' => $warnings, 'data' => $field_value ) );
1330
+		}
1331 1331
 
1332 1332
 		return $return;
1333 1333
 	}
@@ -1362,8 +1362,8 @@  discard block
 block discarded – undo
1362 1362
 				$input_id = strval( $input['id'] );
1363 1363
 
1364 1364
 				if ( isset( $this->entry[ $input_id ] ) && ! gv_empty( $this->entry[ $input_id ], false, false ) ) {
1365
-				    $field_value[ $input_id ] =  'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ];
1366
-				    $allow_pre_populated = false;
1365
+					$field_value[ $input_id ] =  'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ];
1366
+					$allow_pre_populated = false;
1367 1367
 				}
1368 1368
 
1369 1369
 			}
@@ -1387,7 +1387,7 @@  discard block
 block discarded – undo
1387 1387
 			if ( 'post_category' === $field->type && !gv_empty( $field_value, false, false ) ) {
1388 1388
 				$categories = array();
1389 1389
 				foreach ( explode( ',', $field_value ) as $cat_string ) {
1390
-				    $categories[] = GFCommon::format_post_category( $cat_string, true );
1390
+					$categories[] = GFCommon::format_post_category( $cat_string, true );
1391 1391
 				}
1392 1392
 				$field_value = 'multiselect' === $field->get_input_type() ? $categories : implode( '', $categories );
1393 1393
 			}
@@ -1397,25 +1397,25 @@  discard block
 block discarded – undo
1397 1397
 		// if value is empty get the default value if defined
1398 1398
 		$field_value = $field->get_value_default_if_empty( $field_value );
1399 1399
 
1400
-	    /**
1401
-	     * @filter `gravityview/edit_entry/field_value` Change the value of an Edit Entry field, if needed
1402
-	     * @since 1.11
1403
-	     * @since 1.20 Added third param
1404
-	     * @param mixed $field_value field value used to populate the input
1405
-	     * @param object $field Gravity Forms field object ( Class GF_Field )
1406
-	     * @param GravityView_Edit_Entry_Render $this Current object
1407
-	     */
1408
-	    $field_value = apply_filters( 'gravityview/edit_entry/field_value', $field_value, $field, $this );
1409
-
1410
-	    /**
1411
-	     * @filter `gravityview/edit_entry/field_value_{field_type}` Change the value of an Edit Entry field for a specific field type
1412
-	     * @since 1.17
1413
-	     * @since 1.20 Added third param
1414
-	     * @param mixed $field_value field value used to populate the input
1415
-	     * @param GF_Field $field Gravity Forms field object
1416
-	     * @param GravityView_Edit_Entry_Render $this Current object
1417
-	     */
1418
-	    $field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type , $field_value, $field, $this );
1400
+		/**
1401
+		 * @filter `gravityview/edit_entry/field_value` Change the value of an Edit Entry field, if needed
1402
+		 * @since 1.11
1403
+		 * @since 1.20 Added third param
1404
+		 * @param mixed $field_value field value used to populate the input
1405
+		 * @param object $field Gravity Forms field object ( Class GF_Field )
1406
+		 * @param GravityView_Edit_Entry_Render $this Current object
1407
+		 */
1408
+		$field_value = apply_filters( 'gravityview/edit_entry/field_value', $field_value, $field, $this );
1409
+
1410
+		/**
1411
+		 * @filter `gravityview/edit_entry/field_value_{field_type}` Change the value of an Edit Entry field for a specific field type
1412
+		 * @since 1.17
1413
+		 * @since 1.20 Added third param
1414
+		 * @param mixed $field_value field value used to populate the input
1415
+		 * @param GF_Field $field Gravity Forms field object
1416
+		 * @param GravityView_Edit_Entry_Render $this Current object
1417
+		 */
1418
+		$field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type , $field_value, $field, $this );
1419 1419
 
1420 1420
 		return $field_value;
1421 1421
 	}
@@ -1442,7 +1442,7 @@  discard block
 block discarded – undo
1442 1442
 			// This is because we're doing admin form pretending to be front-end, so Gravity Forms
1443 1443
 			// expects certain field array items to be set.
1444 1444
 			foreach ( array( 'noDuplicates', 'adminOnly', 'inputType', 'isRequired', 'enablePrice', 'inputs', 'allowedExtensions' ) as $key ) {
1445
-	            $field->{$key} = isset( $field->{$key} ) ? $field->{$key} : NULL;
1445
+				$field->{$key} = isset( $field->{$key} ) ? $field->{$key} : NULL;
1446 1446
 			}
1447 1447
 
1448 1448
 			switch( RGFormsModel::get_input_type( $field ) ) {
@@ -1456,61 +1456,61 @@  discard block
 block discarded – undo
1456 1456
 				 */
1457 1457
 				case 'fileupload':
1458 1458
 
1459
-				    // Set the previous value
1460
-				    $entry = $this->get_entry();
1459
+					// Set the previous value
1460
+					$entry = $this->get_entry();
1461 1461
 
1462
-				    $input_name = 'input_'.$field->id;
1463
-				    $form_id = $form['id'];
1462
+					$input_name = 'input_'.$field->id;
1463
+					$form_id = $form['id'];
1464 1464
 
1465
-				    $value = NULL;
1465
+					$value = NULL;
1466 1466
 
1467
-				    // Use the previous entry value as the default.
1468
-				    if( isset( $entry[ $field->id ] ) ) {
1469
-				        $value = $entry[ $field->id ];
1470
-				    }
1467
+					// Use the previous entry value as the default.
1468
+					if( isset( $entry[ $field->id ] ) ) {
1469
+						$value = $entry[ $field->id ];
1470
+					}
1471 1471
 
1472
-				    // If this is a single upload file
1473
-				    if( !empty( $_FILES[ $input_name ] ) && !empty( $_FILES[ $input_name ]['name'] ) ) {
1474
-				        $file_path = GFFormsModel::get_file_upload_path( $form['id'], $_FILES[ $input_name ]['name'] );
1475
-				        $value = $file_path['url'];
1472
+					// If this is a single upload file
1473
+					if( !empty( $_FILES[ $input_name ] ) && !empty( $_FILES[ $input_name ]['name'] ) ) {
1474
+						$file_path = GFFormsModel::get_file_upload_path( $form['id'], $_FILES[ $input_name ]['name'] );
1475
+						$value = $file_path['url'];
1476 1476
 
1477
-				    } else {
1477
+					} else {
1478 1478
 
1479
-				        // Fix PHP warning on line 1498 of form_display.php for post_image fields
1480
-				        // Fix PHP Notice:  Undefined index:  size in form_display.php on line 1511
1481
-				        $_FILES[ $input_name ] = array('name' => '', 'size' => '' );
1479
+						// Fix PHP warning on line 1498 of form_display.php for post_image fields
1480
+						// Fix PHP Notice:  Undefined index:  size in form_display.php on line 1511
1481
+						$_FILES[ $input_name ] = array('name' => '', 'size' => '' );
1482 1482
 
1483
-				    }
1483
+					}
1484 1484
 
1485
-				    if ( \GV\Utils::get( $field, "multipleFiles" ) ) {
1485
+					if ( \GV\Utils::get( $field, "multipleFiles" ) ) {
1486 1486
 
1487
-				        // If there are fresh uploads, process and merge them.
1488
-				        // Otherwise, use the passed values, which should be json-encoded array of URLs
1489
-				        if( isset( GFFormsModel::$uploaded_files[$form_id][$input_name] ) ) {
1490
-				            $value = empty( $value ) ? '[]' : $value;
1491
-				            $value = stripslashes_deep( $value );
1492
-				            $value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'], array());
1493
-				        }
1487
+						// If there are fresh uploads, process and merge them.
1488
+						// Otherwise, use the passed values, which should be json-encoded array of URLs
1489
+						if( isset( GFFormsModel::$uploaded_files[$form_id][$input_name] ) ) {
1490
+							$value = empty( $value ) ? '[]' : $value;
1491
+							$value = stripslashes_deep( $value );
1492
+							$value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'], array());
1493
+						}
1494 1494
 
1495
-				    } else {
1495
+					} else {
1496 1496
 
1497
-				        // A file already exists when editing an entry
1498
-				        // We set this to solve issue when file upload fields are required.
1499
-				        GFFormsModel::$uploaded_files[ $form_id ][ $input_name ] = $value;
1497
+						// A file already exists when editing an entry
1498
+						// We set this to solve issue when file upload fields are required.
1499
+						GFFormsModel::$uploaded_files[ $form_id ][ $input_name ] = $value;
1500 1500
 
1501
-				    }
1501
+					}
1502 1502
 
1503
-				    $this->entry[ $input_name ] = $value;
1504
-				    $_POST[ $input_name ] = $value;
1503
+					$this->entry[ $input_name ] = $value;
1504
+					$_POST[ $input_name ] = $value;
1505 1505
 
1506
-				    break;
1506
+					break;
1507 1507
 
1508 1508
 				case 'number':
1509
-				    // Fix "undefined index" issue at line 1286 in form_display.php
1510
-				    if( !isset( $_POST['input_'.$field->id ] ) ) {
1511
-				        $_POST['input_'.$field->id ] = NULL;
1512
-				    }
1513
-				    break;
1509
+					// Fix "undefined index" issue at line 1286 in form_display.php
1510
+					if( !isset( $_POST['input_'.$field->id ] ) ) {
1511
+						$_POST['input_'.$field->id ] = NULL;
1512
+					}
1513
+					break;
1514 1514
 			}
1515 1515
 
1516 1516
 		}
@@ -1595,43 +1595,43 @@  discard block
 block discarded – undo
1595 1595
 				case 'fileupload' :
1596 1596
 				case 'post_image':
1597 1597
 
1598
-				    // in case nothing is uploaded but there are already files saved
1599
-				    if( !empty( $field->failed_validation ) && !empty( $field->isRequired ) && !empty( $value ) ) {
1600
-				        $field->failed_validation = false;
1601
-				        unset( $field->validation_message );
1602
-				    }
1598
+					// in case nothing is uploaded but there are already files saved
1599
+					if( !empty( $field->failed_validation ) && !empty( $field->isRequired ) && !empty( $value ) ) {
1600
+						$field->failed_validation = false;
1601
+						unset( $field->validation_message );
1602
+					}
1603 1603
 
1604
-				    // validate if multi file upload reached max number of files [maxFiles] => 2
1605
-				    if( \GV\Utils::get( $field, 'maxFiles') && \GV\Utils::get( $field, 'multipleFiles') ) {
1604
+					// validate if multi file upload reached max number of files [maxFiles] => 2
1605
+					if( \GV\Utils::get( $field, 'maxFiles') && \GV\Utils::get( $field, 'multipleFiles') ) {
1606 1606
 
1607
-				        $input_name = 'input_' . $field->id;
1608
-				        //uploaded
1609
-				        $file_names = isset( GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] : array();
1607
+						$input_name = 'input_' . $field->id;
1608
+						//uploaded
1609
+						$file_names = isset( GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] : array();
1610 1610
 
1611
-				        //existent
1612
-				        $entry = $this->get_entry();
1613
-				        $value = NULL;
1614
-				        if( isset( $entry[ $field->id ] ) ) {
1615
-				            $value = json_decode( $entry[ $field->id ], true );
1616
-				        }
1611
+						//existent
1612
+						$entry = $this->get_entry();
1613
+						$value = NULL;
1614
+						if( isset( $entry[ $field->id ] ) ) {
1615
+							$value = json_decode( $entry[ $field->id ], true );
1616
+						}
1617 1617
 
1618
-				        // count uploaded files and existent entry files
1619
-				        $count_files = ( is_array( $file_names ) ? count( $file_names ) : 0 ) +
1620
-						               ( is_array( $value ) ? count( $value ) : 0 );
1618
+						// count uploaded files and existent entry files
1619
+						$count_files = ( is_array( $file_names ) ? count( $file_names ) : 0 ) +
1620
+									   ( is_array( $value ) ? count( $value ) : 0 );
1621 1621
 
1622
-				        if( $count_files > $field->maxFiles ) {
1623
-				            $field->validation_message = __( 'Maximum number of files reached', 'gravityview' );
1624
-				            $field->failed_validation = 1;
1625
-				            $gv_valid = false;
1622
+						if( $count_files > $field->maxFiles ) {
1623
+							$field->validation_message = __( 'Maximum number of files reached', 'gravityview' );
1624
+							$field->failed_validation = 1;
1625
+							$gv_valid = false;
1626 1626
 
1627
-				            // in case of error make sure the newest upload files are removed from the upload input
1628
-				            GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ] = null;
1629
-				        }
1627
+							// in case of error make sure the newest upload files are removed from the upload input
1628
+							GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ] = null;
1629
+						}
1630 1630
 
1631
-				    }
1631
+					}
1632 1632
 
1633 1633
 
1634
-				    break;
1634
+					break;
1635 1635
 
1636 1636
 			}
1637 1637
 
@@ -1642,47 +1642,47 @@  discard block
 block discarded – undo
1642 1642
 
1643 1643
 				switch ( $field_type ) {
1644 1644
 
1645
-				    // Captchas don't need to be re-entered.
1646
-				    case 'captcha':
1645
+					// Captchas don't need to be re-entered.
1646
+					case 'captcha':
1647 1647
 
1648
-				        // Post Image fields aren't editable, so we un-fail them.
1649
-				    case 'post_image':
1650
-				        $field->failed_validation = false;
1651
-				        unset( $field->validation_message );
1652
-				        break;
1648
+						// Post Image fields aren't editable, so we un-fail them.
1649
+					case 'post_image':
1650
+						$field->failed_validation = false;
1651
+						unset( $field->validation_message );
1652
+						break;
1653 1653
 
1654 1654
 				}
1655 1655
 
1656 1656
 				// You can't continue inside a switch, so we do it after.
1657 1657
 				if( empty( $field->failed_validation ) ) {
1658
-				    continue;
1658
+					continue;
1659 1659
 				}
1660 1660
 
1661 1661
 				// checks if the No Duplicates option is not validating entry against itself, since
1662 1662
 				// we're editing a stored entry, it would also assume it's a duplicate.
1663 1663
 				if( !empty( $field->noDuplicates ) ) {
1664 1664
 
1665
-				    $entry = $this->get_entry();
1665
+					$entry = $this->get_entry();
1666 1666
 
1667
-				    // If the value of the entry is the same as the stored value
1668
-				    // Then we can assume it's not a duplicate, it's the same.
1669
-				    if( !empty( $entry ) && $value == $entry[ $field->id ] ) {
1670
-				        //if value submitted was not changed, then don't validate
1671
-				        $field->failed_validation = false;
1667
+					// If the value of the entry is the same as the stored value
1668
+					// Then we can assume it's not a duplicate, it's the same.
1669
+					if( !empty( $entry ) && $value == $entry[ $field->id ] ) {
1670
+						//if value submitted was not changed, then don't validate
1671
+						$field->failed_validation = false;
1672 1672
 
1673
-				        unset( $field->validation_message );
1673
+						unset( $field->validation_message );
1674 1674
 
1675
-				        gravityview()->log->debug( 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', array( 'data' => $entry ) );
1675
+						gravityview()->log->debug( 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', array( 'data' => $entry ) );
1676 1676
 
1677
-				        continue;
1678
-				    }
1677
+						continue;
1678
+					}
1679 1679
 				}
1680 1680
 
1681 1681
 				// if here then probably we are facing the validation 'At least one field must be filled out'
1682 1682
 				if( GFFormDisplay::is_empty( $field, $this->form_id  ) && empty( $field->isRequired ) ) {
1683
-				    unset( $field->validation_message );
1684
-	                $field->validation_message = false;
1685
-				    continue;
1683
+					unset( $field->validation_message );
1684
+					$field->validation_message = false;
1685
+					continue;
1686 1686
 				}
1687 1687
 
1688 1688
 				$gv_valid = false;
@@ -1746,8 +1746,8 @@  discard block
 block discarded – undo
1746 1746
 		// Hide fields depending on admin settings
1747 1747
 		$fields = $this->filter_fields( $form['fields'], $edit_fields );
1748 1748
 
1749
-	    // If Edit Entry fields are configured, remove adminOnly field settings. Otherwise, don't.
1750
-	    $fields = $this->filter_admin_only_fields( $fields, $edit_fields, $form, $view_id );
1749
+		// If Edit Entry fields are configured, remove adminOnly field settings. Otherwise, don't.
1750
+		$fields = $this->filter_admin_only_fields( $fields, $edit_fields, $form, $view_id );
1751 1751
 
1752 1752
 		/**
1753 1753
 		 * @filter `gravityview/edit_entry/form_fields` Modify the fields displayed in Edit Entry form
@@ -1826,11 +1826,11 @@  discard block
 block discarded – undo
1826 1826
 		// The edit tab has been configured, so we loop through to configured settings
1827 1827
 		foreach ( $configured_fields as $configured_field ) {
1828 1828
 
1829
-	        /** @var GF_Field $field */
1830
-	        foreach ( $fields as $field ) {
1829
+			/** @var GF_Field $field */
1830
+			foreach ( $fields as $field ) {
1831 1831
 				if( intval( $configured_field['id'] ) === intval( $field->id ) && $this->user_can_edit_field( $configured_field, false ) ) {
1832
-				    $edit_fields[] = $this->merge_field_properties( $field, $configured_field );
1833
-				    break;
1832
+					$edit_fields[] = $this->merge_field_properties( $field, $configured_field );
1833
+					break;
1834 1834
 				}
1835 1835
 
1836 1836
 			}
@@ -1886,28 +1886,28 @@  discard block
 block discarded – undo
1886 1886
 	 */
1887 1887
 	private function filter_admin_only_fields( $fields = array(), $edit_fields = null, $form = array(), $view_id = 0 ) {
1888 1888
 
1889
-	    /**
1889
+		/**
1890 1890
 		 * @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
1891
-	     * If the Edit Entry tab is not configured, adminOnly fields will not be shown to non-administrators.
1892
-	     * If the Edit Entry tab *is* configured, adminOnly fields will be shown to non-administrators, using the configured GV permissions
1893
-	     * @since 1.9.1
1894
-	     * @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.
1895
-	     * @param array $form GF Form array
1896
-	     * @param int $view_id View ID
1897
-	     */
1898
-	    $use_gf_adminonly_setting = apply_filters( 'gravityview/edit_entry/use_gf_admin_only_setting', empty( $edit_fields ), $form, $view_id );
1899
-
1900
-	    if( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry['id'] ) ) {
1891
+		 * If the Edit Entry tab is not configured, adminOnly fields will not be shown to non-administrators.
1892
+		 * If the Edit Entry tab *is* configured, adminOnly fields will be shown to non-administrators, using the configured GV permissions
1893
+		 * @since 1.9.1
1894
+		 * @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.
1895
+		 * @param array $form GF Form array
1896
+		 * @param int $view_id View ID
1897
+		 */
1898
+		$use_gf_adminonly_setting = apply_filters( 'gravityview/edit_entry/use_gf_admin_only_setting', empty( $edit_fields ), $form, $view_id );
1899
+
1900
+		if( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry['id'] ) ) {
1901 1901
 			foreach( $fields as $k => $field ) {
1902 1902
 				if( $field->adminOnly ) {
1903
-				    unset( $fields[ $k ] );
1903
+					unset( $fields[ $k ] );
1904 1904
 				}
1905 1905
 			}
1906 1906
 			return array_values( $fields );
1907 1907
 		}
1908 1908
 
1909
-	    foreach( $fields as &$field ) {
1910
-		    $field->adminOnly = false;
1909
+		foreach( $fields as &$field ) {
1910
+			$field->adminOnly = false;
1911 1911
 		}
1912 1912
 
1913 1913
 		return $fields;
@@ -1927,13 +1927,13 @@  discard block
 block discarded – undo
1927 1927
 	 */
1928 1928
 	private function unselect_default_values( $form ) {
1929 1929
 
1930
-	    foreach ( $form['fields'] as &$field ) {
1930
+		foreach ( $form['fields'] as &$field ) {
1931 1931
 
1932 1932
 			if ( empty( $field->choices ) ) {
1933
-                continue;
1933
+				continue;
1934 1934
 			}
1935 1935
 
1936
-            foreach ( $field->choices as &$choice ) {
1936
+			foreach ( $field->choices as &$choice ) {
1937 1937
 				if ( \GV\Utils::get( $choice, 'isSelected' ) ) {
1938 1938
 					$choice['isSelected'] = false;
1939 1939
 				}
@@ -1970,36 +1970,36 @@  discard block
 block discarded – undo
1970 1970
 
1971 1971
 			if( 'checkbox' === $field->type ) {
1972 1972
 				foreach ( $field->get_entry_inputs() as $key => $input ) {
1973
-				    $input_id = $input['id'];
1974
-				    $choice = $field->choices[ $key ];
1975
-				    $value = \GV\Utils::get( $this->entry, $input_id );
1976
-				    $match = RGFormsModel::choice_value_match( $field, $choice, $value );
1977
-				    if( $match ) {
1978
-				        $field->choices[ $key ]['isSelected'] = true;
1979
-				    }
1973
+					$input_id = $input['id'];
1974
+					$choice = $field->choices[ $key ];
1975
+					$value = \GV\Utils::get( $this->entry, $input_id );
1976
+					$match = RGFormsModel::choice_value_match( $field, $choice, $value );
1977
+					if( $match ) {
1978
+						$field->choices[ $key ]['isSelected'] = true;
1979
+					}
1980 1980
 				}
1981 1981
 			} else {
1982 1982
 
1983 1983
 				// We need to run through each field to set the default values
1984 1984
 				foreach ( $this->entry as $field_id => $field_value ) {
1985 1985
 
1986
-				    if( floatval( $field_id ) === floatval( $field->id ) ) {
1986
+					if( floatval( $field_id ) === floatval( $field->id ) ) {
1987 1987
 
1988
-				        if( 'list' === $field->type ) {
1989
-				            $list_rows = maybe_unserialize( $field_value );
1988
+						if( 'list' === $field->type ) {
1989
+							$list_rows = maybe_unserialize( $field_value );
1990 1990
 
1991
-				            $list_field_value = array();
1992
-				            foreach ( (array) $list_rows as $row ) {
1993
-				                foreach ( (array) $row as $column ) {
1994
-				                    $list_field_value[] = $column;
1995
-				                }
1996
-				            }
1991
+							$list_field_value = array();
1992
+							foreach ( (array) $list_rows as $row ) {
1993
+								foreach ( (array) $row as $column ) {
1994
+									$list_field_value[] = $column;
1995
+								}
1996
+							}
1997 1997
 
1998
-				            $field->defaultValue = serialize( $list_field_value );
1999
-				        } else {
2000
-				            $field->defaultValue = $field_value;
2001
-				        }
2002
-				    }
1998
+							$field->defaultValue = serialize( $list_field_value );
1999
+						} else {
2000
+							$field->defaultValue = $field_value;
2001
+						}
2002
+					}
2003 2003
 				}
2004 2004
 			}
2005 2005
 		}
@@ -2060,7 +2060,7 @@  discard block
 block discarded – undo
2060 2060
 			foreach ( $form['fields'] as &$field ) {
2061 2061
 				foreach ( $remove_conditions_rule as $_remove_conditions_r ) {
2062 2062
 
2063
-				    list( $rule_field_id, $rule_i ) = $_remove_conditions_r;
2063
+					list( $rule_field_id, $rule_i ) = $_remove_conditions_r;
2064 2064
 
2065 2065
 					if ( $field['id'] == $rule_field_id ) {
2066 2066
 						unset( $field->conditionalLogic['rules'][ $rule_i ] );
@@ -2111,7 +2111,7 @@  discard block
 block discarded – undo
2111 2111
 			return $has_conditional_logic;
2112 2112
 		}
2113 2113
 
2114
-	    /** @see GravityView_Edit_Entry_Render::filter_conditional_logic for filter documentation */
2114
+		/** @see GravityView_Edit_Entry_Render::filter_conditional_logic for filter documentation */
2115 2115
 		return apply_filters( 'gravityview/edit_entry/conditional_logic', $has_conditional_logic, $form );
2116 2116
 	}
2117 2117
 
@@ -2178,14 +2178,14 @@  discard block
 block discarded – undo
2178 2178
 
2179 2179
 		if( $echo && $error !== true ) {
2180 2180
 
2181
-	        $error = esc_html( $error );
2181
+			$error = esc_html( $error );
2182 2182
 
2183
-	        /**
2184
-	         * @since 1.9
2185
-	         */
2186
-	        if ( ! empty( $this->entry ) ) {
2187
-		        $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;" ) );
2188
-	        }
2183
+			/**
2184
+			 * @since 1.9
2185
+			 */
2186
+			if ( ! empty( $this->entry ) ) {
2187
+				$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;" ) );
2188
+			}
2189 2189
 
2190 2190
 			echo GVCommon::generate_notice( wpautop( $error ), 'gv-error error');
2191 2191
 		}
Please login to merge, or discard this patch.