Completed
Push — develop ( 481ac7...82b867 )
by Gennady
17:13
created
includes/extensions/edit-entry/class-edit-entry-render.php 1 patch
Indentation   +287 added lines, -287 removed lines patch added patch discarded remove patch
@@ -94,10 +94,10 @@  discard block
 block discarded – undo
94 94
 
95 95
 	/**
96 96
 	 * ID of the current post. May also be ID of the current View.
97
-     *
98
-     * @since 2.0.13
99
-     * 
100
-     * @var int
97
+	 *
98
+	 * @since 2.0.13
99
+	 * 
100
+	 * @var int
101 101
 	 */
102 102
 	public $post_id;
103 103
 
@@ -169,12 +169,12 @@  discard block
 block discarded – undo
169 169
 	public function prevent_maybe_process_form() {
170 170
 
171 171
 		if( ! empty( $_POST ) ) {
172
-	        gravityview()->log->debug( 'GravityView_Edit_Entry[prevent_maybe_process_form] $_POSTed data (sanitized): ', array( 'data' => esc_html( print_r( $_POST, true ) ) ) );
172
+			gravityview()->log->debug( 'GravityView_Edit_Entry[prevent_maybe_process_form] $_POSTed data (sanitized): ', array( 'data' => esc_html( print_r( $_POST, true ) ) ) );
173 173
 		}
174 174
 
175 175
 		if( $this->is_edit_entry_submission() ) {
176 176
 			remove_action( 'wp',  array( 'RGForms', 'maybe_process_form'), 9 );
177
-	        remove_action( 'wp',  array( 'GFForms', 'maybe_process_form'), 9 );
177
+			remove_action( 'wp',  array( 'GFForms', 'maybe_process_form'), 9 );
178 178
 		}
179 179
 	}
180 180
 
@@ -202,14 +202,14 @@  discard block
 block discarded – undo
202 202
 	 * When Edit entry view is requested setup the vars
203 203
 	 */
204 204
 	private function setup_vars() {
205
-        global $post;
205
+		global $post;
206 206
 
207 207
 		$gravityview_view = GravityView_View::getInstance();
208 208
 
209 209
 
210 210
 		$entries = $gravityview_view->getEntries();
211
-	    self::$original_entry = $entries[0];
212
-	    $this->entry = $entries[0];
211
+		self::$original_entry = $entries[0];
212
+		$this->entry = $entries[0];
213 213
 
214 214
 		self::$original_form = $gravityview_view->getForm();
215 215
 		$this->form = $gravityview_view->getForm();
@@ -333,8 +333,8 @@  discard block
 block discarded – undo
333 333
 
334 334
 			GFFormsModel::save_lead( $form, $this->entry );
335 335
 
336
-	        // Delete the values for hidden inputs
337
-	        $this->unset_hidden_field_values();
336
+			// Delete the values for hidden inputs
337
+			$this->unset_hidden_field_values();
338 338
 			
339 339
 			$this->entry['date_created'] = $date_created;
340 340
 
@@ -347,7 +347,7 @@  discard block
 block discarded – undo
347 347
 			// Perform actions normally performed after updating a lead
348 348
 			$this->after_update();
349 349
 
350
-	        /**
350
+			/**
351 351
 			 * Must be AFTER after_update()!
352 352
 			 * @see https://github.com/gravityview/GravityView/issues/764
353 353
 			 */
@@ -355,7 +355,7 @@  discard block
 block discarded – undo
355 355
 
356 356
 			/**
357 357
 			 * @action `gravityview/edit_entry/after_update` Perform an action after the entry has been updated using Edit Entry
358
-             * @since 2.1 Added $gv_data parameter
358
+			 * @since 2.1 Added $gv_data parameter
359 359
 			 * @param array $form Gravity Forms form array
360 360
 			 * @param string $entry_id Numeric ID of the entry that was updated
361 361
 			 * @param GravityView_Edit_Entry_Render $this This object
@@ -379,7 +379,7 @@  discard block
 block discarded – undo
379 379
 	 * @return void
380 380
 	 */
381 381
 	private function unset_hidden_field_values() {
382
-	    global $wpdb;
382
+		global $wpdb;
383 383
 
384 384
 		/**
385 385
 		 * @filter `gravityview/edit_entry/unset_hidden_field_values` Whether to delete values of fields hidden by conditional logic
@@ -401,27 +401,27 @@  discard block
 block discarded – undo
401 401
 			$current_fields = $wpdb->get_results( $wpdb->prepare( "SELECT id, field_number FROM $lead_detail_table WHERE lead_id=%d", $this->entry['id'] ) );
402 402
 		}
403 403
 
404
-	    foreach ( $this->entry as $input_id => $field_value ) {
404
+		foreach ( $this->entry as $input_id => $field_value ) {
405 405
 
406
-		    $field = RGFormsModel::get_field( $this->form, $input_id );
406
+			$field = RGFormsModel::get_field( $this->form, $input_id );
407 407
 
408
-		    // Reset fields that are hidden
409
-		    // Don't pass $entry as fourth parameter; force using $_POST values to calculate conditional logic
410
-		    if ( GFFormsModel::is_field_hidden( $this->form, $field, array(), NULL ) ) {
408
+			// Reset fields that are hidden
409
+			// Don't pass $entry as fourth parameter; force using $_POST values to calculate conditional logic
410
+			if ( GFFormsModel::is_field_hidden( $this->form, $field, array(), NULL ) ) {
411 411
 
412
-		        // List fields are stored as empty arrays when empty
413
-			    $empty_value = $this->is_field_json_encoded( $field ) ? '[]' : '';
412
+				// List fields are stored as empty arrays when empty
413
+				$empty_value = $this->is_field_json_encoded( $field ) ? '[]' : '';
414 414
 
415
-			    $lead_detail_id = GFFormsModel::get_lead_detail_id( $current_fields, $input_id );
415
+				$lead_detail_id = GFFormsModel::get_lead_detail_id( $current_fields, $input_id );
416 416
 
417
-			    GFFormsModel::update_lead_field_value( $this->form, $this->entry, $field, $lead_detail_id, $input_id, $empty_value );
417
+				GFFormsModel::update_lead_field_value( $this->form, $this->entry, $field, $lead_detail_id, $input_id, $empty_value );
418 418
 
419
-			    // Prevent the $_POST values of hidden fields from being used as default values when rendering the form
419
+				// Prevent the $_POST values of hidden fields from being used as default values when rendering the form
420 420
 				// after submission
421
-			    $post_input_id = 'input_' . str_replace( '.', '_', $input_id );
422
-			    $_POST[ $post_input_id ] = '';
423
-		    }
424
-	    }
421
+				$post_input_id = 'input_' . str_replace( '.', '_', $input_id );
422
+				$_POST[ $post_input_id ] = '';
423
+			}
424
+		}
425 425
 	}
426 426
 
427 427
 	/**
@@ -515,7 +515,7 @@  discard block
 block discarded – undo
515 515
 
516 516
 		$form = $this->form;
517 517
 
518
-	    /** @var GF_Field $field */
518
+		/** @var GF_Field $field */
519 519
 		foreach( $form['fields'] as $k => &$field ) {
520 520
 
521 521
 			/**
@@ -531,7 +531,7 @@  discard block
 block discarded – undo
531 531
 
532 532
 			if( isset( $field->inputs ) && is_array( $field->inputs ) ) {
533 533
 				foreach( $field->inputs as $key => $input ) {
534
-				    $field->inputs[ $key ][ 'id' ] = (string)$input['id'];
534
+					$field->inputs[ $key ][ 'id' ] = (string)$input['id'];
535 535
 				}
536 536
 			}
537 537
 		}
@@ -554,13 +554,13 @@  discard block
 block discarded – undo
554 554
 			foreach ( $this->fields_with_calculation as $calc_field ) {
555 555
 				$inputs = $calc_field->get_entry_inputs();
556 556
 				if ( is_array( $inputs ) ) {
557
-				    foreach ( $inputs as $input ) {
558
-				        $input_name = 'input_' . str_replace( '.', '_', $input['id'] );
559
-				        $entry[ strval( $input['id'] ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
560
-				    }
557
+					foreach ( $inputs as $input ) {
558
+						$input_name = 'input_' . str_replace( '.', '_', $input['id'] );
559
+						$entry[ strval( $input['id'] ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
560
+					}
561 561
 				} else {
562
-				    $input_name = 'input_' . str_replace( '.', '_', $calc_field->id);
563
-				    $entry[ strval( $calc_field->id ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
562
+					$input_name = 'input_' . str_replace( '.', '_', $calc_field->id);
563
+					$entry[ strval( $calc_field->id ) ] = RGFormsModel::prepare_value( $form, $calc_field, '', $input_name, $entry['id'], $entry );
564 564
 				}
565 565
 			}
566 566
 		}
@@ -623,7 +623,7 @@  discard block
 block discarded – undo
623 623
 			$value = RGFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'] );
624 624
 
625 625
 			$ary = ! empty( $value ) ? explode( '|:|', $value ) : array();
626
-	        $ary = stripslashes_deep( $ary );
626
+			$ary = stripslashes_deep( $ary );
627 627
 			$img_url = \GV\Utils::get( $ary, 0 );
628 628
 
629 629
 			$img_title       = count( $ary ) > 1 ? $ary[1] : '';
@@ -696,7 +696,7 @@  discard block
 block discarded – undo
696 696
 	private function maybe_update_post_fields( $form ) {
697 697
 
698 698
 		if( empty( $this->entry['post_id'] ) ) {
699
-	        gravityview()->log->debug( 'This entry has no post fields. Continuing...' );
699
+			gravityview()->log->debug( 'This entry has no post fields. Continuing...' );
700 700
 			return;
701 701
 		}
702 702
 
@@ -731,51 +731,51 @@  discard block
 block discarded – undo
731 731
 
732 732
 				switch( $field->type ) {
733 733
 
734
-				    case 'post_title':
735
-				        $post_title = $value;
736
-				        if ( \GV\Utils::get( $form, 'postTitleTemplateEnabled' ) ) {
737
-				            $post_title = $this->fill_post_template( $form['postTitleTemplate'], $form, $entry_tmp );
738
-				        }
739
-				        $updated_post->post_title = $post_title;
740
-				        $updated_post->post_name  = $post_title;
741
-				        unset( $post_title );
742
-				        break;
743
-
744
-				    case 'post_content':
745
-				        $post_content = $value;
746
-				        if ( \GV\Utils::get( $form, 'postContentTemplateEnabled' ) ) {
747
-				            $post_content = $this->fill_post_template( $form['postContentTemplate'], $form, $entry_tmp, true );
748
-				        }
749
-				        $updated_post->post_content = $post_content;
750
-				        unset( $post_content );
751
-				        break;
752
-				    case 'post_excerpt':
753
-				        $updated_post->post_excerpt = $value;
754
-				        break;
755
-				    case 'post_tags':
756
-				        wp_set_post_tags( $post_id, $value, false );
757
-				        break;
758
-				    case 'post_category':
759
-				        break;
760
-				    case 'post_custom_field':
734
+					case 'post_title':
735
+						$post_title = $value;
736
+						if ( \GV\Utils::get( $form, 'postTitleTemplateEnabled' ) ) {
737
+							$post_title = $this->fill_post_template( $form['postTitleTemplate'], $form, $entry_tmp );
738
+						}
739
+						$updated_post->post_title = $post_title;
740
+						$updated_post->post_name  = $post_title;
741
+						unset( $post_title );
742
+						break;
743
+
744
+					case 'post_content':
745
+						$post_content = $value;
746
+						if ( \GV\Utils::get( $form, 'postContentTemplateEnabled' ) ) {
747
+							$post_content = $this->fill_post_template( $form['postContentTemplate'], $form, $entry_tmp, true );
748
+						}
749
+						$updated_post->post_content = $post_content;
750
+						unset( $post_content );
751
+						break;
752
+					case 'post_excerpt':
753
+						$updated_post->post_excerpt = $value;
754
+						break;
755
+					case 'post_tags':
756
+						wp_set_post_tags( $post_id, $value, false );
757
+						break;
758
+					case 'post_category':
759
+						break;
760
+					case 'post_custom_field':
761 761
 						if ( is_array( $value ) && ( floatval( $field_id ) !== floatval( $field->id ) ) ) {
762 762
 							$value = $value[ $field_id ];
763 763
 						}
764 764
 
765
-				        if( ! empty( $field->customFieldTemplateEnabled ) ) {
766
-				            $value = $this->fill_post_template( $field->customFieldTemplate, $form, $entry_tmp, true );
767
-				        }
765
+						if( ! empty( $field->customFieldTemplateEnabled ) ) {
766
+							$value = $this->fill_post_template( $field->customFieldTemplate, $form, $entry_tmp, true );
767
+						}
768 768
 
769
-	                    if ( $this->is_field_json_encoded( $field ) && ! is_string( $value ) ) {
770
-		                    $value = wp_json_encode( $value );
771
-	                    }
769
+						if ( $this->is_field_json_encoded( $field ) && ! is_string( $value ) ) {
770
+							$value = wp_json_encode( $value );
771
+						}
772 772
 
773
-				        update_post_meta( $post_id, $field->postCustomFieldName, $value );
774
-				        break;
773
+						update_post_meta( $post_id, $field->postCustomFieldName, $value );
774
+						break;
775 775
 
776
-				    case 'post_image':
777
-				        $value = $this->update_post_image( $form, $field, $field_id, $value, $this->entry, $post_id );
778
-				        break;
776
+					case 'post_image':
777
+						$value = $this->update_post_image( $form, $field, $field_id, $value, $this->entry, $post_id );
778
+						break;
779 779
 
780 780
 				}
781 781
 
@@ -820,20 +820,20 @@  discard block
 block discarded – undo
820 820
 	 */
821 821
 	private function is_field_json_encoded( $field ) {
822 822
 
823
-	    $json_encoded = false;
823
+		$json_encoded = false;
824 824
 
825 825
 		$input_type = RGFormsModel::get_input_type( $field );
826 826
 
827
-	    // Only certain custom field types are supported
828
-	    switch( $input_type ) {
829
-		    case 'fileupload':
830
-		    case 'list':
831
-		    case 'multiselect':
832
-			    $json_encoded = true;
833
-			    break;
834
-	    }
827
+		// Only certain custom field types are supported
828
+		switch( $input_type ) {
829
+			case 'fileupload':
830
+			case 'list':
831
+			case 'multiselect':
832
+				$json_encoded = true;
833
+				break;
834
+		}
835 835
 
836
-	    return $json_encoded;
836
+		return $json_encoded;
837 837
 	}
838 838
 
839 839
 	/**
@@ -923,14 +923,14 @@  discard block
 block discarded – undo
923 923
 			?><h2 class="gv-edit-entry-title">
924 924
 				<span><?php
925 925
 
926
-				    /**
927
-				     * @filter `gravityview_edit_entry_title` Modify the edit entry title
928
-				     * @param string $edit_entry_title Modify the "Edit Entry" title
929
-				     * @param GravityView_Edit_Entry_Render $this This object
930
-				     */
931
-				    $edit_entry_title = apply_filters('gravityview_edit_entry_title', __('Edit Entry', 'gravityview'), $this );
926
+					/**
927
+					 * @filter `gravityview_edit_entry_title` Modify the edit entry title
928
+					 * @param string $edit_entry_title Modify the "Edit Entry" title
929
+					 * @param GravityView_Edit_Entry_Render $this This object
930
+					 */
931
+					$edit_entry_title = apply_filters('gravityview_edit_entry_title', __('Edit Entry', 'gravityview'), $this );
932 932
 
933
-				    echo esc_attr( $edit_entry_title );
933
+					echo esc_attr( $edit_entry_title );
934 934
 			?></span>
935 935
 			</h2>
936 936
 
@@ -1039,7 +1039,7 @@  discard block
 block discarded – undo
1039 1039
 
1040 1040
 		ob_get_clean();
1041 1041
 
1042
-	    remove_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields' ), 5000 );
1042
+		remove_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields' ), 5000 );
1043 1043
 		remove_filter( 'gform_submit_button', array( $this, 'render_form_buttons' ) );
1044 1044
 		remove_filter( 'gform_disable_view_counter', '__return_true' );
1045 1045
 		remove_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5 );
@@ -1093,7 +1093,7 @@  discard block
 block discarded – undo
1093 1093
 
1094 1094
 		// for now we don't support Save and Continue feature.
1095 1095
 		if( ! self::$supports_save_and_continue ) {
1096
-	        unset( $form['save'] );
1096
+			unset( $form['save'] );
1097 1097
 		}
1098 1098
 
1099 1099
 		$form = $this->unselect_default_values( $form );
@@ -1120,30 +1120,30 @@  discard block
 block discarded – undo
1120 1120
 			return $field_content;
1121 1121
 		}
1122 1122
 
1123
-        $message = null;
1123
+		$message = null;
1124 1124
 
1125
-        // First, make sure they have the capability to edit the post.
1126
-        if( false === current_user_can( 'edit_post', $this->entry['post_id'] ) ) {
1125
+		// First, make sure they have the capability to edit the post.
1126
+		if( false === current_user_can( 'edit_post', $this->entry['post_id'] ) ) {
1127 1127
 
1128
-            /**
1129
-             * @filter `gravityview/edit_entry/unsupported_post_field_text` Modify the message when someone isn't able to edit a post
1130
-             * @param string $message The existing "You don't have permission..." text
1131
-             */
1132
-            $message = apply_filters('gravityview/edit_entry/unsupported_post_field_text', __('You don&rsquo;t have permission to edit this post.', 'gravityview') );
1128
+			/**
1129
+			 * @filter `gravityview/edit_entry/unsupported_post_field_text` Modify the message when someone isn't able to edit a post
1130
+			 * @param string $message The existing "You don't have permission..." text
1131
+			 */
1132
+			$message = apply_filters('gravityview/edit_entry/unsupported_post_field_text', __('You don&rsquo;t have permission to edit this post.', 'gravityview') );
1133 1133
 
1134
-        } elseif( null === get_post( $this->entry['post_id'] ) ) {
1135
-            /**
1136
-             * @filter `gravityview/edit_entry/no_post_text` Modify the message when someone is editing an entry attached to a post that no longer exists
1137
-             * @param string $message The existing "This field is not editable; the post no longer exists." text
1138
-             */
1139
-            $message = apply_filters('gravityview/edit_entry/no_post_text', __('This field is not editable; the post no longer exists.', 'gravityview' ) );
1140
-        }
1134
+		} elseif( null === get_post( $this->entry['post_id'] ) ) {
1135
+			/**
1136
+			 * @filter `gravityview/edit_entry/no_post_text` Modify the message when someone is editing an entry attached to a post that no longer exists
1137
+			 * @param string $message The existing "This field is not editable; the post no longer exists." text
1138
+			 */
1139
+			$message = apply_filters('gravityview/edit_entry/no_post_text', __('This field is not editable; the post no longer exists.', 'gravityview' ) );
1140
+		}
1141 1141
 
1142
-        if( $message ) {
1143
-            $field_content = sprintf('<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) );
1144
-        }
1142
+		if( $message ) {
1143
+			$field_content = sprintf('<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) );
1144
+		}
1145 1145
 
1146
-        return $field_content;
1146
+		return $field_content;
1147 1147
 	}
1148 1148
 
1149 1149
 	/**
@@ -1171,7 +1171,7 @@  discard block
 block discarded – undo
1171 1171
 			|| ! empty( $field_content )
1172 1172
 			|| in_array( $field->type, array( 'honeypot' ) )
1173 1173
 		) {
1174
-	        return $field_content;
1174
+			return $field_content;
1175 1175
 		}
1176 1176
 
1177 1177
 		// SET SOME FIELD DEFAULTS TO PREVENT ISSUES
@@ -1179,24 +1179,24 @@  discard block
 block discarded – undo
1179 1179
 
1180 1180
 		$field_value = $this->get_field_value( $field );
1181 1181
 
1182
-	    // Prevent any PHP warnings, like undefined index
1183
-	    ob_start();
1182
+		// Prevent any PHP warnings, like undefined index
1183
+		ob_start();
1184 1184
 
1185
-	    $return = null;
1185
+		$return = null;
1186 1186
 
1187 1187
 		/** @var GravityView_Field $gv_field */
1188 1188
 		if( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) {
1189 1189
 			$return = $gv_field->get_field_input( $this->form, $field_value, $this->entry, $field );
1190 1190
 		} else {
1191
-	        $return = $field->get_field_input( $this->form, $field_value, $this->entry );
1192
-	    }
1191
+			$return = $field->get_field_input( $this->form, $field_value, $this->entry );
1192
+		}
1193 1193
 
1194
-	    // If there was output, it's an error
1195
-	    $warnings = ob_get_clean();
1194
+		// If there was output, it's an error
1195
+		$warnings = ob_get_clean();
1196 1196
 
1197
-	    if( !empty( $warnings ) ) {
1198
-		    gravityview()->log->error( '{warning}', array( 'warning' => $warnings, 'data' => $field_value ) );
1199
-	    }
1197
+		if( !empty( $warnings ) ) {
1198
+			gravityview()->log->error( '{warning}', array( 'warning' => $warnings, 'data' => $field_value ) );
1199
+		}
1200 1200
 
1201 1201
 		return $return;
1202 1202
 	}
@@ -1231,8 +1231,8 @@  discard block
 block discarded – undo
1231 1231
 				$input_id = strval( $input['id'] );
1232 1232
 				
1233 1233
 				if ( isset( $this->entry[ $input_id ] ) && ! gv_empty( $this->entry[ $input_id ], false, false ) ) {
1234
-				    $field_value[ $input_id ] =  'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ];
1235
-				    $allow_pre_populated = false;
1234
+					$field_value[ $input_id ] =  'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ];
1235
+					$allow_pre_populated = false;
1236 1236
 				}
1237 1237
 
1238 1238
 			}
@@ -1256,7 +1256,7 @@  discard block
 block discarded – undo
1256 1256
 			if ( 'post_category' === $field->type && !gv_empty( $field_value, false, false ) ) {
1257 1257
 				$categories = array();
1258 1258
 				foreach ( explode( ',', $field_value ) as $cat_string ) {
1259
-				    $categories[] = GFCommon::format_post_category( $cat_string, true );
1259
+					$categories[] = GFCommon::format_post_category( $cat_string, true );
1260 1260
 				}
1261 1261
 				$field_value = 'multiselect' === $field->get_input_type() ? $categories : implode( '', $categories );
1262 1262
 			}
@@ -1266,25 +1266,25 @@  discard block
 block discarded – undo
1266 1266
 		// if value is empty get the default value if defined
1267 1267
 		$field_value = $field->get_value_default_if_empty( $field_value );
1268 1268
 
1269
-	    /**
1270
-	     * @filter `gravityview/edit_entry/field_value` Change the value of an Edit Entry field, if needed
1271
-	     * @since 1.11
1272
-	     * @since 1.20 Added third param
1273
-	     * @param mixed $field_value field value used to populate the input
1274
-	     * @param object $field Gravity Forms field object ( Class GF_Field )
1275
-	     * @param GravityView_Edit_Entry_Render $this Current object
1276
-	     */
1277
-	    $field_value = apply_filters( 'gravityview/edit_entry/field_value', $field_value, $field, $this );
1278
-
1279
-	    /**
1280
-	     * @filter `gravityview/edit_entry/field_value_{field_type}` Change the value of an Edit Entry field for a specific field type
1281
-	     * @since 1.17
1282
-	     * @since 1.20 Added third param
1283
-	     * @param mixed $field_value field value used to populate the input
1284
-	     * @param GF_Field $field Gravity Forms field object
1285
-	     * @param GravityView_Edit_Entry_Render $this Current object
1286
-	     */
1287
-	    $field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type , $field_value, $field, $this );
1269
+		/**
1270
+		 * @filter `gravityview/edit_entry/field_value` Change the value of an Edit Entry field, if needed
1271
+		 * @since 1.11
1272
+		 * @since 1.20 Added third param
1273
+		 * @param mixed $field_value field value used to populate the input
1274
+		 * @param object $field Gravity Forms field object ( Class GF_Field )
1275
+		 * @param GravityView_Edit_Entry_Render $this Current object
1276
+		 */
1277
+		$field_value = apply_filters( 'gravityview/edit_entry/field_value', $field_value, $field, $this );
1278
+
1279
+		/**
1280
+		 * @filter `gravityview/edit_entry/field_value_{field_type}` Change the value of an Edit Entry field for a specific field type
1281
+		 * @since 1.17
1282
+		 * @since 1.20 Added third param
1283
+		 * @param mixed $field_value field value used to populate the input
1284
+		 * @param GF_Field $field Gravity Forms field object
1285
+		 * @param GravityView_Edit_Entry_Render $this Current object
1286
+		 */
1287
+		$field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type , $field_value, $field, $this );
1288 1288
 
1289 1289
 		return $field_value;
1290 1290
 	}
@@ -1311,7 +1311,7 @@  discard block
 block discarded – undo
1311 1311
 			// This is because we're doing admin form pretending to be front-end, so Gravity Forms
1312 1312
 			// expects certain field array items to be set.
1313 1313
 			foreach ( array( 'noDuplicates', 'adminOnly', 'inputType', 'isRequired', 'enablePrice', 'inputs', 'allowedExtensions' ) as $key ) {
1314
-	            $field->{$key} = isset( $field->{$key} ) ? $field->{$key} : NULL;
1314
+				$field->{$key} = isset( $field->{$key} ) ? $field->{$key} : NULL;
1315 1315
 			}
1316 1316
 
1317 1317
 			switch( RGFormsModel::get_input_type( $field ) ) {
@@ -1325,61 +1325,61 @@  discard block
 block discarded – undo
1325 1325
 				 */
1326 1326
 				case 'fileupload':
1327 1327
 
1328
-				    // Set the previous value
1329
-				    $entry = $this->get_entry();
1328
+					// Set the previous value
1329
+					$entry = $this->get_entry();
1330 1330
 
1331
-				    $input_name = 'input_'.$field->id;
1332
-				    $form_id = $form['id'];
1331
+					$input_name = 'input_'.$field->id;
1332
+					$form_id = $form['id'];
1333 1333
 
1334
-				    $value = NULL;
1334
+					$value = NULL;
1335 1335
 
1336
-				    // Use the previous entry value as the default.
1337
-				    if( isset( $entry[ $field->id ] ) ) {
1338
-				        $value = $entry[ $field->id ];
1339
-				    }
1336
+					// Use the previous entry value as the default.
1337
+					if( isset( $entry[ $field->id ] ) ) {
1338
+						$value = $entry[ $field->id ];
1339
+					}
1340 1340
 
1341
-				    // If this is a single upload file
1342
-				    if( !empty( $_FILES[ $input_name ] ) && !empty( $_FILES[ $input_name ]['name'] ) ) {
1343
-				        $file_path = GFFormsModel::get_file_upload_path( $form['id'], $_FILES[ $input_name ]['name'] );
1344
-				        $value = $file_path['url'];
1341
+					// If this is a single upload file
1342
+					if( !empty( $_FILES[ $input_name ] ) && !empty( $_FILES[ $input_name ]['name'] ) ) {
1343
+						$file_path = GFFormsModel::get_file_upload_path( $form['id'], $_FILES[ $input_name ]['name'] );
1344
+						$value = $file_path['url'];
1345 1345
 
1346
-				    } else {
1346
+					} else {
1347 1347
 
1348
-				        // Fix PHP warning on line 1498 of form_display.php for post_image fields
1349
-				        // Fix PHP Notice:  Undefined index:  size in form_display.php on line 1511
1350
-				        $_FILES[ $input_name ] = array('name' => '', 'size' => '' );
1348
+						// Fix PHP warning on line 1498 of form_display.php for post_image fields
1349
+						// Fix PHP Notice:  Undefined index:  size in form_display.php on line 1511
1350
+						$_FILES[ $input_name ] = array('name' => '', 'size' => '' );
1351 1351
 
1352
-				    }
1352
+					}
1353 1353
 
1354
-				    if ( \GV\Utils::get( $field, "multipleFiles" ) ) {
1354
+					if ( \GV\Utils::get( $field, "multipleFiles" ) ) {
1355 1355
 
1356
-				        // If there are fresh uploads, process and merge them.
1357
-				        // Otherwise, use the passed values, which should be json-encoded array of URLs
1358
-				        if( isset( GFFormsModel::$uploaded_files[$form_id][$input_name] ) ) {
1359
-				            $value = empty( $value ) ? '[]' : $value;
1360
-				            $value = stripslashes_deep( $value );
1361
-				            $value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'], array());
1362
-				        }
1356
+						// If there are fresh uploads, process and merge them.
1357
+						// Otherwise, use the passed values, which should be json-encoded array of URLs
1358
+						if( isset( GFFormsModel::$uploaded_files[$form_id][$input_name] ) ) {
1359
+							$value = empty( $value ) ? '[]' : $value;
1360
+							$value = stripslashes_deep( $value );
1361
+							$value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'], array());
1362
+						}
1363 1363
 
1364
-				    } else {
1364
+					} else {
1365 1365
 
1366
-				        // A file already exists when editing an entry
1367
-				        // We set this to solve issue when file upload fields are required.
1368
-				        GFFormsModel::$uploaded_files[ $form_id ][ $input_name ] = $value;
1366
+						// A file already exists when editing an entry
1367
+						// We set this to solve issue when file upload fields are required.
1368
+						GFFormsModel::$uploaded_files[ $form_id ][ $input_name ] = $value;
1369 1369
 
1370
-				    }
1370
+					}
1371 1371
 
1372
-				    $this->entry[ $input_name ] = $value;
1373
-				    $_POST[ $input_name ] = $value;
1372
+					$this->entry[ $input_name ] = $value;
1373
+					$_POST[ $input_name ] = $value;
1374 1374
 
1375
-				    break;
1375
+					break;
1376 1376
 
1377 1377
 				case 'number':
1378
-				    // Fix "undefined index" issue at line 1286 in form_display.php
1379
-				    if( !isset( $_POST['input_'.$field->id ] ) ) {
1380
-				        $_POST['input_'.$field->id ] = NULL;
1381
-				    }
1382
-				    break;
1378
+					// Fix "undefined index" issue at line 1286 in form_display.php
1379
+					if( !isset( $_POST['input_'.$field->id ] ) ) {
1380
+						$_POST['input_'.$field->id ] = NULL;
1381
+					}
1382
+					break;
1383 1383
 			}
1384 1384
 
1385 1385
 		}
@@ -1464,42 +1464,42 @@  discard block
 block discarded – undo
1464 1464
 				case 'fileupload' :
1465 1465
 				case 'post_image':
1466 1466
 
1467
-				    // in case nothing is uploaded but there are already files saved
1468
-				    if( !empty( $field->failed_validation ) && !empty( $field->isRequired ) && !empty( $value ) ) {
1469
-				        $field->failed_validation = false;
1470
-				        unset( $field->validation_message );
1471
-				    }
1467
+					// in case nothing is uploaded but there are already files saved
1468
+					if( !empty( $field->failed_validation ) && !empty( $field->isRequired ) && !empty( $value ) ) {
1469
+						$field->failed_validation = false;
1470
+						unset( $field->validation_message );
1471
+					}
1472 1472
 
1473
-				    // validate if multi file upload reached max number of files [maxFiles] => 2
1474
-				    if( \GV\Utils::get( $field, 'maxFiles') && \GV\Utils::get( $field, 'multipleFiles') ) {
1473
+					// validate if multi file upload reached max number of files [maxFiles] => 2
1474
+					if( \GV\Utils::get( $field, 'maxFiles') && \GV\Utils::get( $field, 'multipleFiles') ) {
1475 1475
 
1476
-				        $input_name = 'input_' . $field->id;
1477
-				        //uploaded
1478
-				        $file_names = isset( GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] : array();
1476
+						$input_name = 'input_' . $field->id;
1477
+						//uploaded
1478
+						$file_names = isset( GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] : array();
1479 1479
 
1480
-				        //existent
1481
-				        $entry = $this->get_entry();
1482
-				        $value = NULL;
1483
-				        if( isset( $entry[ $field->id ] ) ) {
1484
-				            $value = json_decode( $entry[ $field->id ], true );
1485
-				        }
1480
+						//existent
1481
+						$entry = $this->get_entry();
1482
+						$value = NULL;
1483
+						if( isset( $entry[ $field->id ] ) ) {
1484
+							$value = json_decode( $entry[ $field->id ], true );
1485
+						}
1486 1486
 
1487
-				        // count uploaded files and existent entry files
1488
-				        $count_files = count( $file_names ) + count( $value );
1487
+						// count uploaded files and existent entry files
1488
+						$count_files = count( $file_names ) + count( $value );
1489 1489
 
1490
-				        if( $count_files > $field->maxFiles ) {
1491
-				            $field->validation_message = __( 'Maximum number of files reached', 'gravityview' );
1492
-				            $field->failed_validation = 1;
1493
-				            $gv_valid = false;
1490
+						if( $count_files > $field->maxFiles ) {
1491
+							$field->validation_message = __( 'Maximum number of files reached', 'gravityview' );
1492
+							$field->failed_validation = 1;
1493
+							$gv_valid = false;
1494 1494
 
1495
-				            // in case of error make sure the newest upload files are removed from the upload input
1496
-				            GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ] = null;
1497
-				        }
1495
+							// in case of error make sure the newest upload files are removed from the upload input
1496
+							GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ] = null;
1497
+						}
1498 1498
 
1499
-				    }
1499
+					}
1500 1500
 
1501 1501
 
1502
-				    break;
1502
+					break;
1503 1503
 
1504 1504
 			}
1505 1505
 
@@ -1510,47 +1510,47 @@  discard block
 block discarded – undo
1510 1510
 
1511 1511
 				switch ( $field_type ) {
1512 1512
 
1513
-				    // Captchas don't need to be re-entered.
1514
-				    case 'captcha':
1513
+					// Captchas don't need to be re-entered.
1514
+					case 'captcha':
1515 1515
 
1516
-				        // Post Image fields aren't editable, so we un-fail them.
1517
-				    case 'post_image':
1518
-				        $field->failed_validation = false;
1519
-				        unset( $field->validation_message );
1520
-				        break;
1516
+						// Post Image fields aren't editable, so we un-fail them.
1517
+					case 'post_image':
1518
+						$field->failed_validation = false;
1519
+						unset( $field->validation_message );
1520
+						break;
1521 1521
 
1522 1522
 				}
1523 1523
 
1524 1524
 				// You can't continue inside a switch, so we do it after.
1525 1525
 				if( empty( $field->failed_validation ) ) {
1526
-				    continue;
1526
+					continue;
1527 1527
 				}
1528 1528
 
1529 1529
 				// checks if the No Duplicates option is not validating entry against itself, since
1530 1530
 				// we're editing a stored entry, it would also assume it's a duplicate.
1531 1531
 				if( !empty( $field->noDuplicates ) ) {
1532 1532
 
1533
-				    $entry = $this->get_entry();
1533
+					$entry = $this->get_entry();
1534 1534
 
1535
-				    // If the value of the entry is the same as the stored value
1536
-				    // Then we can assume it's not a duplicate, it's the same.
1537
-				    if( !empty( $entry ) && $value == $entry[ $field->id ] ) {
1538
-				        //if value submitted was not changed, then don't validate
1539
-				        $field->failed_validation = false;
1535
+					// If the value of the entry is the same as the stored value
1536
+					// Then we can assume it's not a duplicate, it's the same.
1537
+					if( !empty( $entry ) && $value == $entry[ $field->id ] ) {
1538
+						//if value submitted was not changed, then don't validate
1539
+						$field->failed_validation = false;
1540 1540
 
1541
-				        unset( $field->validation_message );
1541
+						unset( $field->validation_message );
1542 1542
 
1543
-				        gravityview()->log->debug( 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', array( 'data' => $entry ) );
1543
+						gravityview()->log->debug( 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', array( 'data' => $entry ) );
1544 1544
 
1545
-				        continue;
1546
-				    }
1545
+						continue;
1546
+					}
1547 1547
 				}
1548 1548
 
1549 1549
 				// if here then probably we are facing the validation 'At least one field must be filled out'
1550 1550
 				if( GFFormDisplay::is_empty( $field, $this->form_id  ) && empty( $field->isRequired ) ) {
1551
-				    unset( $field->validation_message );
1552
-	                $field->validation_message = false;
1553
-				    continue;
1551
+					unset( $field->validation_message );
1552
+					$field->validation_message = false;
1553
+					continue;
1554 1554
 				}
1555 1555
 
1556 1556
 				$gv_valid = false;
@@ -1614,8 +1614,8 @@  discard block
 block discarded – undo
1614 1614
 		// Hide fields depending on admin settings
1615 1615
 		$fields = $this->filter_fields( $form['fields'], $edit_fields );
1616 1616
 
1617
-	    // If Edit Entry fields are configured, remove adminOnly field settings. Otherwise, don't.
1618
-	    $fields = $this->filter_admin_only_fields( $fields, $edit_fields, $form, $view_id );
1617
+		// If Edit Entry fields are configured, remove adminOnly field settings. Otherwise, don't.
1618
+		$fields = $this->filter_admin_only_fields( $fields, $edit_fields, $form, $view_id );
1619 1619
 
1620 1620
 		/**
1621 1621
 		 * @filter `gravityview/edit_entry/form_fields` Modify the fields displayed in Edit Entry form
@@ -1675,11 +1675,11 @@  discard block
 block discarded – undo
1675 1675
 		// The edit tab has been configured, so we loop through to configured settings
1676 1676
 		foreach ( $configured_fields as $configured_field ) {
1677 1677
 
1678
-	        /** @var GF_Field $field */
1679
-	        foreach ( $fields as $field ) {
1678
+			/** @var GF_Field $field */
1679
+			foreach ( $fields as $field ) {
1680 1680
 				if( intval( $configured_field['id'] ) === intval( $field->id ) && $this->user_can_edit_field( $configured_field, false ) ) {
1681
-				    $edit_fields[] = $this->merge_field_properties( $field, $configured_field );
1682
-				    break;
1681
+					$edit_fields[] = $this->merge_field_properties( $field, $configured_field );
1682
+					break;
1683 1683
 				}
1684 1684
 
1685 1685
 			}
@@ -1735,28 +1735,28 @@  discard block
 block discarded – undo
1735 1735
 	 */
1736 1736
 	private function filter_admin_only_fields( $fields = array(), $edit_fields = null, $form = array(), $view_id = 0 ) {
1737 1737
 
1738
-	    /**
1738
+		/**
1739 1739
 		 * @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
1740
-	     * If the Edit Entry tab is not configured, adminOnly fields will not be shown to non-administrators.
1741
-	     * If the Edit Entry tab *is* configured, adminOnly fields will be shown to non-administrators, using the configured GV permissions
1742
-	     * @since 1.9.1
1743
-	     * @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.
1744
-	     * @param array $form GF Form array
1745
-	     * @param int $view_id View ID
1746
-	     */
1747
-	    $use_gf_adminonly_setting = apply_filters( 'gravityview/edit_entry/use_gf_admin_only_setting', empty( $edit_fields ), $form, $view_id );
1748
-
1749
-	    if( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry['id'] ) ) {
1740
+		 * If the Edit Entry tab is not configured, adminOnly fields will not be shown to non-administrators.
1741
+		 * If the Edit Entry tab *is* configured, adminOnly fields will be shown to non-administrators, using the configured GV permissions
1742
+		 * @since 1.9.1
1743
+		 * @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.
1744
+		 * @param array $form GF Form array
1745
+		 * @param int $view_id View ID
1746
+		 */
1747
+		$use_gf_adminonly_setting = apply_filters( 'gravityview/edit_entry/use_gf_admin_only_setting', empty( $edit_fields ), $form, $view_id );
1748
+
1749
+		if( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry['id'] ) ) {
1750 1750
 			foreach( $fields as $k => $field ) {
1751 1751
 				if( $field->adminOnly ) {
1752
-				    unset( $fields[ $k ] );
1752
+					unset( $fields[ $k ] );
1753 1753
 				}
1754 1754
 			}
1755 1755
 			return array_values( $fields );
1756 1756
 		}
1757 1757
 
1758
-	    foreach( $fields as &$field ) {
1759
-		    $field->adminOnly = false;
1758
+		foreach( $fields as &$field ) {
1759
+			$field->adminOnly = false;
1760 1760
 		}
1761 1761
 
1762 1762
 		return $fields;
@@ -1776,13 +1776,13 @@  discard block
 block discarded – undo
1776 1776
 	 */
1777 1777
 	private function unselect_default_values( $form ) {
1778 1778
 
1779
-	    foreach ( $form['fields'] as &$field ) {
1779
+		foreach ( $form['fields'] as &$field ) {
1780 1780
 
1781 1781
 			if ( empty( $field->choices ) ) {
1782
-                continue;
1782
+				continue;
1783 1783
 			}
1784 1784
 
1785
-            foreach ( $field->choices as &$choice ) {
1785
+			foreach ( $field->choices as &$choice ) {
1786 1786
 				if ( \GV\Utils::get( $choice, 'isSelected' ) ) {
1787 1787
 					$choice['isSelected'] = false;
1788 1788
 				}
@@ -1819,36 +1819,36 @@  discard block
 block discarded – undo
1819 1819
 
1820 1820
 			if( 'checkbox' === $field->type ) {
1821 1821
 				foreach ( $field->get_entry_inputs() as $key => $input ) {
1822
-				    $input_id = $input['id'];
1823
-				    $choice = $field->choices[ $key ];
1824
-				    $value = \GV\Utils::get( $this->entry, $input_id );
1825
-				    $match = RGFormsModel::choice_value_match( $field, $choice, $value );
1826
-				    if( $match ) {
1827
-				        $field->choices[ $key ]['isSelected'] = true;
1828
-				    }
1822
+					$input_id = $input['id'];
1823
+					$choice = $field->choices[ $key ];
1824
+					$value = \GV\Utils::get( $this->entry, $input_id );
1825
+					$match = RGFormsModel::choice_value_match( $field, $choice, $value );
1826
+					if( $match ) {
1827
+						$field->choices[ $key ]['isSelected'] = true;
1828
+					}
1829 1829
 				}
1830 1830
 			} else {
1831 1831
 
1832 1832
 				// We need to run through each field to set the default values
1833 1833
 				foreach ( $this->entry as $field_id => $field_value ) {
1834 1834
 
1835
-				    if( floatval( $field_id ) === floatval( $field->id ) ) {
1835
+					if( floatval( $field_id ) === floatval( $field->id ) ) {
1836 1836
 
1837
-				        if( 'list' === $field->type ) {
1838
-				            $list_rows = maybe_unserialize( $field_value );
1837
+						if( 'list' === $field->type ) {
1838
+							$list_rows = maybe_unserialize( $field_value );
1839 1839
 
1840
-				            $list_field_value = array();
1841
-				            foreach ( (array) $list_rows as $row ) {
1842
-				                foreach ( (array) $row as $column ) {
1843
-				                    $list_field_value[] = $column;
1844
-				                }
1845
-				            }
1840
+							$list_field_value = array();
1841
+							foreach ( (array) $list_rows as $row ) {
1842
+								foreach ( (array) $row as $column ) {
1843
+									$list_field_value[] = $column;
1844
+								}
1845
+							}
1846 1846
 
1847
-				            $field->defaultValue = serialize( $list_field_value );
1848
-				        } else {
1849
-				            $field->defaultValue = $field_value;
1850
-				        }
1851
-				    }
1847
+							$field->defaultValue = serialize( $list_field_value );
1848
+						} else {
1849
+							$field->defaultValue = $field_value;
1850
+						}
1851
+					}
1852 1852
 				}
1853 1853
 			}
1854 1854
 		}
@@ -1905,7 +1905,7 @@  discard block
 block discarded – undo
1905 1905
 			return $has_conditional_logic;
1906 1906
 		}
1907 1907
 
1908
-	    /** @see GravityView_Edit_Entry_Render::filter_conditional_logic for filter documentation */
1908
+		/** @see GravityView_Edit_Entry_Render::filter_conditional_logic for filter documentation */
1909 1909
 		return apply_filters( 'gravityview/edit_entry/conditional_logic', $has_conditional_logic, $form );
1910 1910
 	}
1911 1911
 
@@ -1972,14 +1972,14 @@  discard block
 block discarded – undo
1972 1972
 
1973 1973
 		if( $echo && $error !== true ) {
1974 1974
 
1975
-	        $error = esc_html( $error );
1975
+			$error = esc_html( $error );
1976 1976
 
1977
-	        /**
1978
-	         * @since 1.9
1979
-	         */
1980
-	        if ( ! empty( $this->entry ) ) {
1981
-		        $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;" ) );
1982
-	        }
1977
+			/**
1978
+			 * @since 1.9
1979
+			 */
1980
+			if ( ! empty( $this->entry ) ) {
1981
+				$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;" ) );
1982
+			}
1983 1983
 
1984 1984
 			echo GVCommon::generate_notice( wpautop( $error ), 'gv-error error');
1985 1985
 		}
Please login to merge, or discard this patch.