Completed
Push — develop ( 10f998...b0bd40 )
by Gennady
13:39
created
includes/extensions/edit-entry/class-edit-entry-user-registration.php 1 patch
Indentation   +259 added lines, -259 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
  */
12 12
 
13 13
 if ( ! defined( 'WPINC' ) ) {
14
-    die;
14
+	die;
15 15
 }
16 16
 
17 17
 /**
@@ -22,104 +22,104 @@  discard block
 block discarded – undo
22 22
 	/**
23 23
 	 * @var GravityView_Edit_Entry
24 24
 	 */
25
-    protected $loader;
25
+	protected $loader;
26 26
 
27
-    /**
28
-     * @var WP_User|null Temporary storage used by restore_user_details()
29
-     */
30
-    private $_user_before_update = null;
27
+	/**
28
+	 * @var WP_User|null Temporary storage used by restore_user_details()
29
+	 */
30
+	private $_user_before_update = null;
31 31
 
32
-    function __construct( GravityView_Edit_Entry $loader ) {
33
-        $this->loader = $loader;
34
-    }
32
+	function __construct( GravityView_Edit_Entry $loader ) {
33
+		$this->loader = $loader;
34
+	}
35 35
 
36 36
 	/**
37 37
 	 * @since 1.11
38 38
 	 */
39 39
 	public function load() {
40 40
 		add_action( 'wp', array( $this, 'add_hooks' ), 10 );
41
-    }
41
+	}
42 42
 
43 43
 	/**
44 44
 	 * Add hooks to trigger updating the user
45 45
 	 *
46 46
 	 * @since 1.18
47 47
 	 */
48
-    public function add_hooks() {
49
-
50
-	    /**
51
-	     * @filter `gravityview/edit_entry/user_registration/trigger_update` Choose whether to update user information via User Registration add-on when an entry is updated?
52
-	     * @since 1.11
53
-	     * @param boolean $boolean Whether to trigger update on user registration (default: true)
54
-	     */
55
-	    if( apply_filters( 'gravityview/edit_entry/user_registration/trigger_update', true ) ) {
56
-
57
-	    	add_action( 'gravityview/edit_entry/after_update' , array( $this, 'update_user' ), 10, 2 );
58
-
59
-		    // last resort in case the current user display name don't match any of the defaults
60
-		    add_action( 'gform_user_updated', array( $this, 'restore_display_name' ), 10, 4 );
61
-	    }
62
-    }
63
-
64
-    /**
65
-     * Update the WordPress user profile based on the GF User Registration create feed
66
-     *
67
-     * @since 1.11
68
-     *
69
-     * @param array $form Gravity Forms form array
70
-     * @param string $entry_id Gravity Forms entry ID
71
-     * @return void
72
-     */
73
-    public function update_user( $form = array(), $entry_id = 0 ) {
74
-
75
-        if( ! class_exists( 'GFAPI' ) || ! class_exists( 'GF_User_Registration' ) ) {
76
-	        gravityview()->log->error( 'GFAPI or User Registration class not found; not updating the user' );
77
-	        return;
78
-        } elseif( empty( $entry_id ) ) {
79
-        	gravityview()->log->error( 'Entry ID is empty [{entry_id}]; not updating the user', array( 'entry_id' => $entry_id ) );
80
-	        return;
81
-        }
82
-
83
-        /** @var GF_User_Registration $gf_user_registration */
84
-        $gf_user_registration = GF_User_Registration::get_instance();
85
-
86
-        $entry = GFAPI::get_entry( $entry_id );
87
-
88
-	    /**
89
-	     * @filter `gravityview/edit_entry/user_registration/entry` Modify entry details before updating the user via User Registration add-on
90
-	     * @since 1.11
91
-	     * @param array $entry Gravity Forms entry
92
-	     * @param array $form Gravity Forms form
93
-	     */
94
-        $entry = apply_filters( 'gravityview/edit_entry/user_registration/entry', $entry, $form );
95
-
96
-	    $config = $this->get_feed_configuration( $entry, $form );
97
-
98
-        // Make sure the feed is active
99
-	    if ( ! \GV\Utils::get( $config, 'is_active', false ) ) {
48
+	public function add_hooks() {
49
+
50
+		/**
51
+		 * @filter `gravityview/edit_entry/user_registration/trigger_update` Choose whether to update user information via User Registration add-on when an entry is updated?
52
+		 * @since 1.11
53
+		 * @param boolean $boolean Whether to trigger update on user registration (default: true)
54
+		 */
55
+		if( apply_filters( 'gravityview/edit_entry/user_registration/trigger_update', true ) ) {
56
+
57
+			add_action( 'gravityview/edit_entry/after_update' , array( $this, 'update_user' ), 10, 2 );
58
+
59
+			// last resort in case the current user display name don't match any of the defaults
60
+			add_action( 'gform_user_updated', array( $this, 'restore_display_name' ), 10, 4 );
61
+		}
62
+	}
63
+
64
+	/**
65
+	 * Update the WordPress user profile based on the GF User Registration create feed
66
+	 *
67
+	 * @since 1.11
68
+	 *
69
+	 * @param array $form Gravity Forms form array
70
+	 * @param string $entry_id Gravity Forms entry ID
71
+	 * @return void
72
+	 */
73
+	public function update_user( $form = array(), $entry_id = 0 ) {
74
+
75
+		if( ! class_exists( 'GFAPI' ) || ! class_exists( 'GF_User_Registration' ) ) {
76
+			gravityview()->log->error( 'GFAPI or User Registration class not found; not updating the user' );
100 77
 			return;
101
-	    }
78
+		} elseif( empty( $entry_id ) ) {
79
+			gravityview()->log->error( 'Entry ID is empty [{entry_id}]; not updating the user', array( 'entry_id' => $entry_id ) );
80
+			return;
81
+		}
82
+
83
+		/** @var GF_User_Registration $gf_user_registration */
84
+		$gf_user_registration = GF_User_Registration::get_instance();
85
+
86
+		$entry = GFAPI::get_entry( $entry_id );
102 87
 
103
-	    // If an Update feed, make sure the conditions are met.
104
-	    if ( \GV\Utils::get( $config, 'meta/feedType' ) === 'update' ) {
105
-	    	if( ! $gf_user_registration->is_feed_condition_met( $config, $form, $entry ) ) {
106
-			    return;
107
-		    }
108
-	    }
88
+		/**
89
+		 * @filter `gravityview/edit_entry/user_registration/entry` Modify entry details before updating the user via User Registration add-on
90
+		 * @since 1.11
91
+		 * @param array $entry Gravity Forms entry
92
+		 * @param array $form Gravity Forms form
93
+		 */
94
+		$entry = apply_filters( 'gravityview/edit_entry/user_registration/entry', $entry, $form );
95
+
96
+		$config = $this->get_feed_configuration( $entry, $form );
97
+
98
+		// Make sure the feed is active
99
+		if ( ! \GV\Utils::get( $config, 'is_active', false ) ) {
100
+			return;
101
+		}
109 102
 
110
-        // The priority is set to 3 so that default priority (10) will still override it
111
-        add_filter( 'send_password_change_email', '__return_false', 3 );
112
-        add_filter( 'send_email_change_email', '__return_false', 3 );
103
+		// If an Update feed, make sure the conditions are met.
104
+		if ( \GV\Utils::get( $config, 'meta/feedType' ) === 'update' ) {
105
+			if( ! $gf_user_registration->is_feed_condition_met( $config, $form, $entry ) ) {
106
+				return;
107
+			}
108
+		}
113 109
 
114
-        // Trigger the User Registration update user method
115
-        $gf_user_registration->update_user( $entry, $form, $config );
110
+		// The priority is set to 3 so that default priority (10) will still override it
111
+		add_filter( 'send_password_change_email', '__return_false', 3 );
112
+		add_filter( 'send_email_change_email', '__return_false', 3 );
116 113
 
117
-        remove_filter( 'send_password_change_email', '__return_false', 3 );
118
-        remove_filter( 'send_email_change_email', '__return_false', 3 );
114
+		// Trigger the User Registration update user method
115
+		$gf_user_registration->update_user( $entry, $form, $config );
119 116
 
120
-        // Prevent double-triggering by removing the hook
121
-	    remove_action( 'gravityview/edit_entry/after_update' , array( $this, 'update_user' ), 10 );
122
-    }
117
+		remove_filter( 'send_password_change_email', '__return_false', 3 );
118
+		remove_filter( 'send_email_change_email', '__return_false', 3 );
119
+
120
+		// Prevent double-triggering by removing the hook
121
+		remove_action( 'gravityview/edit_entry/after_update' , array( $this, 'update_user' ), 10 );
122
+	}
123 123
 
124 124
 	/**
125 125
 	 * Get the User Registration feed configuration for the entry & form
@@ -134,185 +134,185 @@  discard block
 block discarded – undo
134 134
 	 *
135 135
 	 * @return array
136 136
 	 */
137
-    public function get_feed_configuration( $entry, $form ) {
138
-
139
-	    /** @var GF_User_Registration $gf_user_registration */
140
-	    $gf_user_registration = GF_User_Registration::get_instance();
141
-
142
-	    $config = $gf_user_registration->get_single_submission_feed( $entry, $form );
143
-
144
-	    /**
145
-	     * @filter `gravityview/edit_entry/user_registration/preserve_role` Keep the current user role or override with the role defined in the Create feed
146
-	     * @since 1.15
147
-	     * @param[in,out] boolean $preserve_role Preserve current user role Default: true
148
-	     * @param[in] array $config Gravity Forms User Registration feed configuration for the form
149
-	     * @param[in] array $form Gravity Forms form array
150
-	     * @param[in] array $entry Gravity Forms entry being edited
151
-	     */
152
-	    $preserve_role = apply_filters( 'gravityview/edit_entry/user_registration/preserve_role', true, $config, $form, $entry );
153
-
154
-	    if( $preserve_role ) {
155
-		    $config['meta']['role'] = 'gfur_preserve_role';
156
-	    }
157
-
158
-	    $displayname = $this->match_current_display_name( $entry['created_by'] );
159
-
160
-	    /**
161
-	     * Make sure the current display name is not changed with the update user method.
162
-	     * @since 1.15
163
-	     */
164
-	    $config['meta']['displayname'] = $displayname ? $displayname : $config['meta']['displayname'];
165
-
166
-	    /**
167
-	     * @filter `gravityview/edit_entry/user_registration/config` Modify the User Registration Addon feed configuration
168
-	     * @since 1.14
169
-	     * @param[in,out] array $config Gravity Forms User Registration feed configuration for the form
170
-	     * @param[in] array $form Gravity Forms form array
171
-	     * @param[in] array $entry Gravity Forms entry being edited
172
-	     */
173
-	    $config = apply_filters( 'gravityview/edit_entry/user_registration/config', $config, $form, $entry );
174
-
175
-	    return $config;
176
-    }
177
-
178
-    /**
179
-     * Calculate the user display name format
180
-     *
181
-     * @since 1.15
182
-     * @since 1.20 Returns false if user not found at $user_id
183
-     *
184
-     * @param int $user_id WP User ID
185
-     * @return false|string Display name format as used inside Gravity Forms User Registration. Returns false if user not found.
186
-     */
187
-    public function match_current_display_name( $user_id ) {
188
-
189
-        $user = get_userdata( $user_id );
190
-
191
-        if( ! $user ) {
192
-        	return false;
193
-        }
194
-
195
-        $names = $this->generate_display_names( $user );
196
-
197
-        $format = array_search( $user->display_name, $names, true );
198
-
199
-        /**
200
-         * In case we can't find the current display name format, trigger last resort method at the 'gform_user_updated' hook
201
-         * @see restore_display_name
202
-         */
203
-        if( false === $format ) {
204
-            $this->_user_before_update = $user;
205
-        }
206
-
207
-        return $format;
208
-    }
209
-
210
-    /**
211
-     * Generate an array of all the user display names possibilities
212
-     *
213
-     * @since 1.15
214
-     *
215
-     * @param object $profileuser WP_User object
216
-     * @return array List all the possible display names for a certain User object
217
-     */
218
-    public function generate_display_names( $profileuser ) {
219
-
220
-        $public_display = array();
221
-        $public_display['nickname']  = $profileuser->nickname;
222
-        $public_display['username']  = $profileuser->user_login;
223
-
224
-        if ( !empty($profileuser->first_name) ) {
225
-	        $public_display['firstname'] = $profileuser->first_name;
226
-        }
227
-
228
-        if ( !empty($profileuser->last_name) ) {
229
-	        $public_display['lastname'] = $profileuser->last_name;
230
-        }
231
-
232
-        if ( !empty($profileuser->first_name) && !empty($profileuser->last_name) ) {
233
-            $public_display['firstlast'] = $profileuser->first_name . ' ' . $profileuser->last_name;
234
-            $public_display['lastfirst'] = $profileuser->last_name . ' ' . $profileuser->first_name;
235
-        }
236
-
237
-        $public_display = array_map( 'trim', $public_display );
238
-        $public_display = array_unique( $public_display );
239
-
240
-        return $public_display;
241
-    }
242
-
243
-
244
-    /**
245
-     * Restore the Display Name and roles of a user after being updated by Gravity Forms User Registration Addon
246
-     *
247
-     * @see GFUser::update_user()
248
-     * @param int $user_id WP User ID that was updated by Gravity Forms User Registration Addon
249
-     * @param array $config Gravity Forms User Registration Addon form feed configuration
250
-     * @param array $entry The Gravity Forms entry that was just updated
251
-     * @param string $password User password
252
-     * @return int|false|WP_Error|null True: User updated; False: $user_id not a valid User ID; WP_Error: User update error; Null: Method didn't process
253
-     */
254
-    public function restore_display_name( $user_id = 0, $config = array(), $entry = array(), $password = '' ) {
255
-
256
-        /**
257
-         * @filter `gravityview/edit_entry/restore_display_name` Whether display names should be restored to before updating an entry.
258
-         * Otherwise, display names will be reset to the format specified in Gravity Forms User Registration "Update" feed
259
-         * @since 1.14.4
260
-         * @param boolean $restore_display_name Restore Display Name? Default: true
261
-         */
262
-        $restore_display_name = apply_filters( 'gravityview/edit_entry/restore_display_name', true );
263
-
264
-        $is_update_feed = ( $config && \GV\Utils::get( $config, 'meta/feed_type' ) === 'update' );
265
-
266
-        /**
267
-         * Don't restore display name:
268
-         *   - either disabled,
269
-         *   - or it is an Update feed (we only care about Create feed)
270
-         *   - or we don't need as we found the correct format before updating user.
271
-         * @since 1.14.4
272
-         */
273
-        if( ! $restore_display_name || $is_update_feed || is_null( $this->_user_before_update ) ) {
274
-            return null;
275
-        }
276
-
277
-        $user_after_update = get_userdata( $user_id );
278
-
279
-        // User not found
280
-	    if ( ! $user_after_update ) {
281
-	    	gravityview()->log->error( 'User not found at $user_id #{user_id}', array( 'user_id' => $user_id ) );
282
-		    return false;
283
-	    }
284
-
285
-        $restored_user = $user_after_update;
286
-
287
-	    // Restore previous display_name
288
-        $restored_user->display_name = $this->_user_before_update->display_name;
289
-
290
-	    // Don't have WP update the password.
291
-	    unset( $restored_user->data->user_pass, $restored_user->user_pass );
292
-
293
-        /**
294
-         * Modify the user data after updated by Gravity Forms User Registration but before restored by GravityView
295
-         * @since 1.14
296
-         * @param WP_User $restored_user The user with restored details about to be updated by wp_update_user()
297
-         * @param WP_User $user_before_update The user before being updated by Gravity Forms User Registration
298
-         * @param WP_User $user_after_update The user after being updated by Gravity Forms User Registration
299
-         * @param array   $entry The Gravity Forms entry that was just updated
300
-         */
301
-        $restored_user = apply_filters( 'gravityview/edit_entry/user_registration/restored_user', $restored_user, $this->_user_before_update, $user_after_update, $entry );
302
-
303
-        $updated = wp_update_user( $restored_user );
304
-
305
-        if( is_wp_error( $updated ) ) {
306
-            gravityview()->log->error( 'There was an error updating user #{user_id} details', array( 'user_id' => $user_id, 'data' => $updated ) );
307
-        } else {
308
-            gravityview()->log->debug( 'User #{user_id} details restored', array( 'user_id' => $user_id ) );
309
-        }
310
-
311
-        $this->_user_before_update = null;
312
-
313
-        unset( $restored_user, $user_after_update );
314
-
315
-        return $updated;
316
-    }
137
+	public function get_feed_configuration( $entry, $form ) {
138
+
139
+		/** @var GF_User_Registration $gf_user_registration */
140
+		$gf_user_registration = GF_User_Registration::get_instance();
141
+
142
+		$config = $gf_user_registration->get_single_submission_feed( $entry, $form );
143
+
144
+		/**
145
+		 * @filter `gravityview/edit_entry/user_registration/preserve_role` Keep the current user role or override with the role defined in the Create feed
146
+		 * @since 1.15
147
+		 * @param[in,out] boolean $preserve_role Preserve current user role Default: true
148
+		 * @param[in] array $config Gravity Forms User Registration feed configuration for the form
149
+		 * @param[in] array $form Gravity Forms form array
150
+		 * @param[in] array $entry Gravity Forms entry being edited
151
+		 */
152
+		$preserve_role = apply_filters( 'gravityview/edit_entry/user_registration/preserve_role', true, $config, $form, $entry );
153
+
154
+		if( $preserve_role ) {
155
+			$config['meta']['role'] = 'gfur_preserve_role';
156
+		}
157
+
158
+		$displayname = $this->match_current_display_name( $entry['created_by'] );
159
+
160
+		/**
161
+		 * Make sure the current display name is not changed with the update user method.
162
+		 * @since 1.15
163
+		 */
164
+		$config['meta']['displayname'] = $displayname ? $displayname : $config['meta']['displayname'];
165
+
166
+		/**
167
+		 * @filter `gravityview/edit_entry/user_registration/config` Modify the User Registration Addon feed configuration
168
+		 * @since 1.14
169
+		 * @param[in,out] array $config Gravity Forms User Registration feed configuration for the form
170
+		 * @param[in] array $form Gravity Forms form array
171
+		 * @param[in] array $entry Gravity Forms entry being edited
172
+		 */
173
+		$config = apply_filters( 'gravityview/edit_entry/user_registration/config', $config, $form, $entry );
174
+
175
+		return $config;
176
+	}
177
+
178
+	/**
179
+	 * Calculate the user display name format
180
+	 *
181
+	 * @since 1.15
182
+	 * @since 1.20 Returns false if user not found at $user_id
183
+	 *
184
+	 * @param int $user_id WP User ID
185
+	 * @return false|string Display name format as used inside Gravity Forms User Registration. Returns false if user not found.
186
+	 */
187
+	public function match_current_display_name( $user_id ) {
188
+
189
+		$user = get_userdata( $user_id );
190
+
191
+		if( ! $user ) {
192
+			return false;
193
+		}
194
+
195
+		$names = $this->generate_display_names( $user );
196
+
197
+		$format = array_search( $user->display_name, $names, true );
198
+
199
+		/**
200
+		 * In case we can't find the current display name format, trigger last resort method at the 'gform_user_updated' hook
201
+		 * @see restore_display_name
202
+		 */
203
+		if( false === $format ) {
204
+			$this->_user_before_update = $user;
205
+		}
206
+
207
+		return $format;
208
+	}
209
+
210
+	/**
211
+	 * Generate an array of all the user display names possibilities
212
+	 *
213
+	 * @since 1.15
214
+	 *
215
+	 * @param object $profileuser WP_User object
216
+	 * @return array List all the possible display names for a certain User object
217
+	 */
218
+	public function generate_display_names( $profileuser ) {
219
+
220
+		$public_display = array();
221
+		$public_display['nickname']  = $profileuser->nickname;
222
+		$public_display['username']  = $profileuser->user_login;
223
+
224
+		if ( !empty($profileuser->first_name) ) {
225
+			$public_display['firstname'] = $profileuser->first_name;
226
+		}
227
+
228
+		if ( !empty($profileuser->last_name) ) {
229
+			$public_display['lastname'] = $profileuser->last_name;
230
+		}
231
+
232
+		if ( !empty($profileuser->first_name) && !empty($profileuser->last_name) ) {
233
+			$public_display['firstlast'] = $profileuser->first_name . ' ' . $profileuser->last_name;
234
+			$public_display['lastfirst'] = $profileuser->last_name . ' ' . $profileuser->first_name;
235
+		}
236
+
237
+		$public_display = array_map( 'trim', $public_display );
238
+		$public_display = array_unique( $public_display );
239
+
240
+		return $public_display;
241
+	}
242
+
243
+
244
+	/**
245
+	 * Restore the Display Name and roles of a user after being updated by Gravity Forms User Registration Addon
246
+	 *
247
+	 * @see GFUser::update_user()
248
+	 * @param int $user_id WP User ID that was updated by Gravity Forms User Registration Addon
249
+	 * @param array $config Gravity Forms User Registration Addon form feed configuration
250
+	 * @param array $entry The Gravity Forms entry that was just updated
251
+	 * @param string $password User password
252
+	 * @return int|false|WP_Error|null True: User updated; False: $user_id not a valid User ID; WP_Error: User update error; Null: Method didn't process
253
+	 */
254
+	public function restore_display_name( $user_id = 0, $config = array(), $entry = array(), $password = '' ) {
255
+
256
+		/**
257
+		 * @filter `gravityview/edit_entry/restore_display_name` Whether display names should be restored to before updating an entry.
258
+		 * Otherwise, display names will be reset to the format specified in Gravity Forms User Registration "Update" feed
259
+		 * @since 1.14.4
260
+		 * @param boolean $restore_display_name Restore Display Name? Default: true
261
+		 */
262
+		$restore_display_name = apply_filters( 'gravityview/edit_entry/restore_display_name', true );
263
+
264
+		$is_update_feed = ( $config && \GV\Utils::get( $config, 'meta/feed_type' ) === 'update' );
265
+
266
+		/**
267
+		 * Don't restore display name:
268
+		 *   - either disabled,
269
+		 *   - or it is an Update feed (we only care about Create feed)
270
+		 *   - or we don't need as we found the correct format before updating user.
271
+		 * @since 1.14.4
272
+		 */
273
+		if( ! $restore_display_name || $is_update_feed || is_null( $this->_user_before_update ) ) {
274
+			return null;
275
+		}
276
+
277
+		$user_after_update = get_userdata( $user_id );
278
+
279
+		// User not found
280
+		if ( ! $user_after_update ) {
281
+			gravityview()->log->error( 'User not found at $user_id #{user_id}', array( 'user_id' => $user_id ) );
282
+			return false;
283
+		}
284
+
285
+		$restored_user = $user_after_update;
286
+
287
+		// Restore previous display_name
288
+		$restored_user->display_name = $this->_user_before_update->display_name;
289
+
290
+		// Don't have WP update the password.
291
+		unset( $restored_user->data->user_pass, $restored_user->user_pass );
292
+
293
+		/**
294
+		 * Modify the user data after updated by Gravity Forms User Registration but before restored by GravityView
295
+		 * @since 1.14
296
+		 * @param WP_User $restored_user The user with restored details about to be updated by wp_update_user()
297
+		 * @param WP_User $user_before_update The user before being updated by Gravity Forms User Registration
298
+		 * @param WP_User $user_after_update The user after being updated by Gravity Forms User Registration
299
+		 * @param array   $entry The Gravity Forms entry that was just updated
300
+		 */
301
+		$restored_user = apply_filters( 'gravityview/edit_entry/user_registration/restored_user', $restored_user, $this->_user_before_update, $user_after_update, $entry );
302
+
303
+		$updated = wp_update_user( $restored_user );
304
+
305
+		if( is_wp_error( $updated ) ) {
306
+			gravityview()->log->error( 'There was an error updating user #{user_id} details', array( 'user_id' => $user_id, 'data' => $updated ) );
307
+		} else {
308
+			gravityview()->log->debug( 'User #{user_id} details restored', array( 'user_id' => $user_id ) );
309
+		}
310
+
311
+		$this->_user_before_update = null;
312
+
313
+		unset( $restored_user, $user_after_update );
314
+
315
+		return $updated;
316
+	}
317 317
 
318 318
 } //end class
Please login to merge, or discard this patch.
includes/class-gravityview-merge-tags.php 1 patch
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -52,14 +52,14 @@  discard block
 block discarded – undo
52 52
 		// matching regex => the value is the method to call to replace the value.
53 53
 		$gv_modifiers = array(
54 54
 			'maxwords:(\d+)' => 'modifier_maxwords', /** @see modifier_maxwords */
55
-		    'timestamp' => 'modifier_timestamp', /** @see modifier_timestamp */
55
+			'timestamp' => 'modifier_timestamp', /** @see modifier_timestamp */
56 56
 			'explode' => 'modifier_explode', /** @see modifier_explode */
57 57
 
58 58
 			/** @see modifier_strings */
59 59
 			'urlencode' => 'modifier_strings',
60 60
 			'wpautop' => 'modifier_strings',
61
-		    'esc_html' => 'modifier_strings',
62
-		    'sanitize_html_class' => 'modifier_strings',
61
+			'esc_html' => 'modifier_strings',
62
+			'sanitize_html_class' => 'modifier_strings',
63 63
 			'sanitize_title' => 'modifier_strings',
64 64
 			'strtolower' => 'modifier_strings',
65 65
 			'strtoupper' => 'modifier_strings',
@@ -457,7 +457,7 @@  discard block
 block discarded – undo
457 457
 
458 458
 		$atts = array(
459 459
 			'format' => self::get_format_from_modifiers( $exploded, false ),
460
-		    'human' => in_array( 'human', $exploded ), // {date_created:human}
460
+			'human' => in_array( 'human', $exploded ), // {date_created:human}
461 461
 			'diff' => in_array( 'diff', $exploded ), // {date_created:diff}
462 462
 			'raw' => in_array( 'raw', $exploded ), // {date_created:raw}
463 463
 			'timestamp' => in_array( 'timestamp', $exploded ), // {date_created:timestamp}
Please login to merge, or discard this patch.
includes/fields/class-gravityview-field-custom.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -109,7 +109,7 @@
 block discarded – undo
109 109
 				$field_data = array(
110 110
 					'label' => \GV\Utils::get( $edit_field, 'custom_label' ),
111 111
 					'customLabel' => \GV\Utils::get( $edit_field, 'custom_label' ),
112
-				    'content' => \GV\Utils::get( $edit_field, 'content' ),
112
+					'content' => \GV\Utils::get( $edit_field, 'content' ),
113 113
 				);
114 114
 
115 115
 				// Replace merge tags in the content
Please login to merge, or discard this patch.
includes/fields/class-gravityview-field-is-starred.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -35,7 +35,7 @@  discard block
 block discarded – undo
35 35
 	}
36 36
 
37 37
 	private function add_hooks() {
38
-	    /** @see \GV\Field::get_value_filters */
38
+		/** @see \GV\Field::get_value_filters */
39 39
 		add_filter( "gravityview/field/{$this->name}/output", array( $this, 'get_content' ), 4, 2 );
40 40
 		add_action( 'gravityview/template/after', array( $this, 'print_script'), 10, 1 );
41 41
 		add_filter( 'gravityview_entry_default_fields', array( $this, 'add_default_field' ), 10, 3 );
@@ -76,7 +76,7 @@  discard block
 block discarded – undo
76 76
 	public function get_content( $output, $template ) {
77 77
 		$entry = $template->entry;
78 78
 
79
-	    $star_url = GFCommon::get_base_url() .'/images/star' . intval( $entry['is_starred'] ) .'.png';
79
+		$star_url = GFCommon::get_base_url() .'/images/star' . intval( $entry['is_starred'] ) .'.png';
80 80
 
81 81
 		$entry_id = '';
82 82
 
@@ -94,11 +94,11 @@  discard block
 block discarded – undo
94 94
 
95 95
 	/**
96 96
 	 * Add JS to the bottom of the View if there is a star field and user has `gravityview_edit_entries` cap
97
-     *
97
+	 *
98 98
 	 * @param \GV\Template_Context $context The template context
99
-     * @since 2.0
100
-     *
101
-     * @return void
99
+	 * @since 2.0
100
+	 *
101
+	 * @return void
102 102
 	 */
103 103
 	public function print_script( $context ) {
104 104
 
@@ -107,7 +107,7 @@  discard block
 block discarded – undo
107 107
 		}
108 108
 
109 109
 		if ( ! GravityView_Roles_Capabilities::has_cap( 'gravityview_edit_entries' ) ) {
110
-            return;
110
+			return;
111 111
 		}
112 112
 
113 113
 		?>
Please login to merge, or discard this patch.
includes/class-template.php 1 patch
Indentation   +24 added lines, -24 removed lines patch added patch discarded remove patch
@@ -328,34 +328,34 @@  discard block
 block discarded – undo
328 328
 	}
329 329
 
330 330
 	/**
331
-     * Get the fields for a specific context
332
-     *
333
-     * @since 1.19.2
334
-     *
331
+	 * Get the fields for a specific context
332
+	 *
333
+	 * @since 1.19.2
334
+	 *
335 335
 	 * @param string $context [Optional] "directory", "single", or "edit"
336 336
 	 *
337 337
 	 * @return array Array of GravityView field layout configurations
338 338
 	 */
339 339
 	public function getContextFields( $context = '' ) {
340 340
 
341
-	    if( '' === $context ) {
342
-	        $context = $this->getContext();
343
-        }
341
+		if( '' === $context ) {
342
+			$context = $this->getContext();
343
+		}
344 344
 
345 345
 		$fields = $this->getFields();
346 346
 
347
-        foreach ( (array) $fields as $key => $context_fields ) {
347
+		foreach ( (array) $fields as $key => $context_fields ) {
348 348
 
349
-            // Formatted as `{context}_{template id}-{zone name}`, so we want just the $context to match against
350
-            $matches = explode( '_', $key );
349
+			// Formatted as `{context}_{template id}-{zone name}`, so we want just the $context to match against
350
+			$matches = explode( '_', $key );
351 351
 
352
-            if( isset( $matches[0] ) && $matches[0] === $context ) {
353
-                return $context_fields;
354
-            }
355
-        }
352
+			if( isset( $matches[0] ) && $matches[0] === $context ) {
353
+				return $context_fields;
354
+			}
355
+		}
356 356
 
357 357
 		return array();
358
-    }
358
+	}
359 359
 
360 360
 	/**
361 361
 	 * @param array $fields
@@ -448,10 +448,10 @@  discard block
 block discarded – undo
448 448
 	 */
449 449
 	public function getPaging() {
450 450
 
451
-	    $default_params = array(
452
-            'offset' => 0,
453
-            'page_size' => 20,
454
-        );
451
+		$default_params = array(
452
+			'offset' => 0,
453
+			'page_size' => 20,
454
+		);
455 455
 
456 456
 		return wp_parse_args( $this->paging, $default_params );
457 457
 	}
@@ -508,10 +508,10 @@  discard block
 block discarded – undo
508 508
 	public function getSorting() {
509 509
 
510 510
 		$defaults_params = array(
511
-            'sort_field' => 'date_created',
512
-            'sort_direction' => 'ASC',
513
-            'is_numeric' => false,
514
-        );
511
+			'sort_field' => 'date_created',
512
+			'sort_direction' => 'ASC',
513
+			'is_numeric' => false,
514
+		);
515 515
 
516 516
 		return wp_parse_args( $this->sorting, $defaults_params );
517 517
 	}
@@ -837,7 +837,7 @@  discard block
 block discarded – undo
837 837
 	 */
838 838
 	public function render_widget_hooks( $view_id_or_context ) {
839 839
 
840
-	    /**
840
+		/**
841 841
 		 * @deprecated Numeric argument is deprecated. Pass a \GV\Template_Context instead.
842 842
 		 */
843 843
 		if ( is_numeric( $view_id_or_context ) ) {
Please login to merge, or discard this patch.
includes/extensions/entry-notes/class-gravityview-field-notes.php 1 patch
Indentation   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -175,10 +175,10 @@  discard block
 block discarded – undo
175 175
 
176 176
 		if( 'gv_note_add' === $_POST['action'] ) {
177 177
 
178
-            if( ! GVCommon::has_cap( 'gravityview_add_entry_notes' ) ) {
179
-                do_action( 'gravityview_log_error', __METHOD__ . ': The user isnt allowed to add entry notes.' );
180
-                return;
181
-            }
178
+			if( ! GVCommon::has_cap( 'gravityview_add_entry_notes' ) ) {
179
+				do_action( 'gravityview_log_error', __METHOD__ . ': The user isnt allowed to add entry notes.' );
180
+				return;
181
+			}
182 182
 
183 183
 			$post = wp_unslash( $_POST );
184 184
 
@@ -278,7 +278,7 @@  discard block
 block discarded – undo
278 278
 	 *
279 279
 	 * Verify permissions. Check expected $_POST. Parse args, then send to process_delete_notes
280 280
 	 *
281
-  	 * @since 1.17
281
+	 * @since 1.17
282 282
 	 *
283 283
 	 * @see process_delete_notes
284 284
 	 *
@@ -431,7 +431,7 @@  discard block
 block discarded – undo
431 431
 			'subject-label' => __( 'Subject', 'gravityview' ),
432 432
 			'subject' => __( 'Email subject', 'gravityview' ),
433 433
 			'default-email-subject' => __( 'New entry note', 'gravityview' ),
434
-            'email-footer' => __( 'This note was sent from {url}', 'gravityview' ),
434
+			'email-footer' => __( 'This note was sent from {url}', 'gravityview' ),
435 435
 			'also-email' => __( 'Also email this note to', 'gravityview' ),
436 436
 			'error-add-note' => __( 'There was an error adding the note.', 'gravityview' ),
437 437
 			'error-invalid' => __( 'The request was invalid. Refresh the page and try again.', 'gravityview' ),
@@ -501,11 +501,11 @@  discard block
 block discarded – undo
501 501
 
502 502
 		if ( $context instanceof \GV\Template_Context ) {
503 503
 
504
-		    ob_start();
505
-		    $context->template->get_template_part( 'note', 'detail', true );
506
-            $note_detail_html = ob_get_clean();
504
+			ob_start();
505
+			$context->template->get_template_part( 'note', 'detail', true );
506
+			$note_detail_html = ob_get_clean();
507 507
 
508
-            ob_start();
508
+			ob_start();
509 509
 			$context->template->get_template_part( 'note', $note_row_template, true );
510 510
 			$note_row = ob_get_clean();
511 511
 		} else {
@@ -761,7 +761,7 @@  discard block
 block discarded – undo
761 761
 				'gv-note-to-custom' => '',
762 762
 				'gv-note-subject' => '',
763 763
 				'gv-note-content' => '',
764
-                'current-url' => '',
764
+				'current-url' => '',
765 765
 			);
766 766
 
767 767
 			$current_user  = wp_get_current_user();
@@ -813,9 +813,9 @@  discard block
 block discarded – undo
813 813
 			$message .= $this->get_email_footer( $email_footer, $is_html, $email_data );
814 814
 
815 815
 			/**
816
-             * @filter `gravityview/field/notes/wpautop_email` Should the message content have paragraphs added automatically, if using HTML message format
816
+			 * @filter `gravityview/field/notes/wpautop_email` Should the message content have paragraphs added automatically, if using HTML message format
817 817
 			 * @since 1.18
818
-             * @param bool $wpautop_email True: Apply wpautop() to the email message if using; False: Leave as entered (Default: true)
818
+			 * @param bool $wpautop_email True: Apply wpautop() to the email message if using; False: Leave as entered (Default: true)
819 819
 			 */
820 820
 			$wpautop_email = apply_filters( 'gravityview/field/notes/wpautop_email', true );
821 821
 
@@ -835,12 +835,12 @@  discard block
 block discarded – undo
835 835
 	}
836 836
 
837 837
 	/**
838
-     * Get the footer for Entry Note emails
839
-     *
840
-     * `{url}` is replaced by the URL of the page where the note form was embedded
841
-     *
842
-     * @since 1.18
843
-     * @see GravityView_Field_Notes::strings The default value of $message_footer is set here, with the key 'email-footer'
838
+	 * Get the footer for Entry Note emails
839
+	 *
840
+	 * `{url}` is replaced by the URL of the page where the note form was embedded
841
+	 *
842
+	 * @since 1.18
843
+	 * @see GravityView_Field_Notes::strings The default value of $message_footer is set here, with the key 'email-footer'
844 844
 	 *
845 845
 	 * @param string $email_footer The message footer value
846 846
 	 * @param bool $is_html True: Email is being sent as HTML; False: sent as text
@@ -849,10 +849,10 @@  discard block
 block discarded – undo
849 849
 	 */
850 850
 	private function get_email_footer( $email_footer = '', $is_html = true, $email_data = array() ) {
851 851
 
852
-	    $output = '';
852
+		$output = '';
853 853
 
854 854
 		if( ! empty( $email_footer ) ) {
855
-		    $url = \GV\Utils::get( $email_data, 'current-url' );
855
+			$url = \GV\Utils::get( $email_data, 'current-url' );
856 856
 			$url = html_entity_decode( $url );
857 857
 			$url = site_url( $url );
858 858
 
Please login to merge, or discard this patch.
future/includes/class-gv-template-view-list.php 1 patch
Indentation   +20 added lines, -20 removed lines patch added patch discarded remove patch
@@ -151,11 +151,11 @@  discard block
 block discarded – undo
151 151
 		do_action( 'gravityview/template/list/body/before', $context );
152 152
 
153 153
 		/**
154
-		* @action `gravityview_list_body_before` Inside the `tbody`, before any rows are rendered. Can be used to insert additional rows.
155
-		* @deprecated Use `gravityview/template/list/body/before`
156
-		* @since 1.0.7
157
-		* @param \GravityView_View $gravityview_view Current GravityView_View object.
158
-		*/
154
+		 * @action `gravityview_list_body_before` Inside the `tbody`, before any rows are rendered. Can be used to insert additional rows.
155
+		 * @deprecated Use `gravityview/template/list/body/before`
156
+		 * @since 1.0.7
157
+		 * @param \GravityView_View $gravityview_view Current GravityView_View object.
158
+		 */
159 159
 		do_action( 'gravityview_list_body_before', \GravityView_View::getInstance() /** ugh! */ );
160 160
 	}
161 161
 
@@ -177,11 +177,11 @@  discard block
 block discarded – undo
177 177
 		do_action( 'gravityview/template/list/body/after', $context );
178 178
 
179 179
 		/**
180
-		* @action `gravityview_list_body_after` Inside the `tbody`, after any rows are rendered. Can be used to insert additional rows.
181
-		* @deprecated Use `gravityview/template/list/body/after`
182
-		* @since 1.0.7
183
-		* @param \GravityView_View $gravityview_view Current GravityView_View object.
184
-		*/
180
+		 * @action `gravityview_list_body_after` Inside the `tbody`, after any rows are rendered. Can be used to insert additional rows.
181
+		 * @deprecated Use `gravityview/template/list/body/after`
182
+		 * @since 1.0.7
183
+		 * @param \GravityView_View $gravityview_view Current GravityView_View object.
184
+		 */
185 185
 		do_action( 'gravityview_list_body_after', \GravityView_View::getInstance() /** ugh! */ );
186 186
 	}
187 187
 
@@ -212,11 +212,11 @@  discard block
 block discarded – undo
212 212
 		$zone = str_replace( '/', '_', $zone );
213 213
 
214 214
 		/**
215
-		* @action `gravityview_list_entry_$zone_before` Inside the `entry`, before any rows are rendered. Can be used to insert additional rows.
216
-		* @deprecated Use `gravityview/template/list/entry/$zone/before`
217
-		* @since 1.0.7
218
-		* @param \GravityView_View $gravityview_view Current GravityView_View object.
219
-		*/
215
+		 * @action `gravityview_list_entry_$zone_before` Inside the `entry`, before any rows are rendered. Can be used to insert additional rows.
216
+		 * @deprecated Use `gravityview/template/list/entry/$zone/before`
217
+		 * @since 1.0.7
218
+		 * @param \GravityView_View $gravityview_view Current GravityView_View object.
219
+		 */
220 220
 		do_action( sprintf( 'gravityview_list_entry%sbefore', $zone ), $entry->as_entry(), \GravityView_View::getInstance() /** ugh! */ );
221 221
 	}
222 222
 
@@ -247,11 +247,11 @@  discard block
 block discarded – undo
247 247
 		$zone = str_replace( '/', '_', $zone );
248 248
 
249 249
 		/**
250
-		* @action `gravityview_list_entry_$zone_after` Inside the `entry`, after any rows are rendered. Can be used to insert additional rows.
251
-		* @deprecated Use `gravityview/template/list/entry/after`
252
-		* @since 1.0.7
253
-		* @param \GravityView_View $gravityview_view Current GravityView_View object.
254
-		*/
250
+		 * @action `gravityview_list_entry_$zone_after` Inside the `entry`, after any rows are rendered. Can be used to insert additional rows.
251
+		 * @deprecated Use `gravityview/template/list/entry/after`
252
+		 * @since 1.0.7
253
+		 * @param \GravityView_View $gravityview_view Current GravityView_View object.
254
+		 */
255 255
 		do_action( sprintf( 'gravityview_list_entry%safter', $zone ), $entry->as_entry(), \GravityView_View::getInstance() /** ugh! */ );
256 256
 	}
257 257
 }
Please login to merge, or discard this patch.
includes/extensions/edit-entry/class-edit-entry.php 1 patch
Indentation   +166 added lines, -166 removed lines patch added patch discarded remove patch
@@ -18,80 +18,80 @@  discard block
 block discarded – undo
18 18
 
19 19
 class GravityView_Edit_Entry {
20 20
 
21
-    /**
22
-     * @var string
23
-     */
21
+	/**
22
+	 * @var string
23
+	 */
24 24
 	static $file;
25 25
 
26 26
 	static $instance;
27 27
 
28
-    /**
29
-     * Component instances.
30
-     * @var array
31
-     */
32
-    public $instances = array();
28
+	/**
29
+	 * Component instances.
30
+	 * @var array
31
+	 */
32
+	public $instances = array();
33 33
 
34 34
 
35 35
 	function __construct() {
36 36
 
37
-        self::$file = plugin_dir_path( __FILE__ );
37
+		self::$file = plugin_dir_path( __FILE__ );
38 38
 
39
-        if( is_admin() ) {
40
-            $this->load_components( 'admin' );
41
-        }
39
+		if( is_admin() ) {
40
+			$this->load_components( 'admin' );
41
+		}
42 42
 
43 43
 
44
-        $this->load_components( 'render' );
44
+		$this->load_components( 'render' );
45 45
 
46
-        // If GF User Registration Add-on exists
47
-        $this->load_components( 'user-registration' );
46
+		// If GF User Registration Add-on exists
47
+		$this->load_components( 'user-registration' );
48 48
 
49
-        $this->add_hooks();
49
+		$this->add_hooks();
50 50
 
51 51
 		// Process hooks for addons that may or may not be present
52 52
 		$this->addon_specific_hooks();
53 53
 	}
54 54
 
55 55
 
56
-    static function getInstance() {
56
+	static function getInstance() {
57 57
 
58
-        if( empty( self::$instance ) ) {
59
-            self::$instance = new GravityView_Edit_Entry;
60
-        }
58
+		if( empty( self::$instance ) ) {
59
+			self::$instance = new GravityView_Edit_Entry;
60
+		}
61 61
 
62
-        return self::$instance;
63
-    }
62
+		return self::$instance;
63
+	}
64 64
 
65 65
 
66
-    private function load_components( $component ) {
66
+	private function load_components( $component ) {
67 67
 
68
-        $dir = trailingslashit( self::$file );
68
+		$dir = trailingslashit( self::$file );
69 69
 
70
-        $filename  = $dir . 'class-edit-entry-' . $component . '.php';
71
-        $classname = 'GravityView_Edit_Entry_' . str_replace( ' ', '_', ucwords( str_replace( '-', ' ', $component ) ) );
70
+		$filename  = $dir . 'class-edit-entry-' . $component . '.php';
71
+		$classname = 'GravityView_Edit_Entry_' . str_replace( ' ', '_', ucwords( str_replace( '-', ' ', $component ) ) );
72 72
 
73
-        // Loads component and pass extension's instance so that component can
74
-        // talk each other.
75
-        require_once $filename;
76
-        $this->instances[ $component ] = new $classname( $this );
77
-        $this->instances[ $component ]->load();
73
+		// Loads component and pass extension's instance so that component can
74
+		// talk each other.
75
+		require_once $filename;
76
+		$this->instances[ $component ] = new $classname( $this );
77
+		$this->instances[ $component ]->load();
78 78
 
79
-    }
79
+	}
80 80
 
81
-    private function add_hooks() {
81
+	private function add_hooks() {
82 82
 
83
-        // Add front-end access to Gravity Forms delete file action
84
-        add_action( 'wp_ajax_nopriv_rg_delete_file', array( 'GFForms', 'delete_file') );
83
+		// Add front-end access to Gravity Forms delete file action
84
+		add_action( 'wp_ajax_nopriv_rg_delete_file', array( 'GFForms', 'delete_file') );
85 85
 
86
-        // Make sure this hook is run for non-admins
87
-        add_action( 'wp_ajax_rg_delete_file', array( 'GFForms', 'delete_file') );
86
+		// Make sure this hook is run for non-admins
87
+		add_action( 'wp_ajax_rg_delete_file', array( 'GFForms', 'delete_file') );
88 88
 
89
-        add_filter( 'gravityview_blacklist_field_types', array( $this, 'modify_field_blacklist' ), 10, 2 );
89
+		add_filter( 'gravityview_blacklist_field_types', array( $this, 'modify_field_blacklist' ), 10, 2 );
90 90
 
91
-        // add template path to check for field
92
-        add_filter( 'gravityview_template_paths', array( $this, 'add_template_path' ) );
91
+		// add template path to check for field
92
+		add_filter( 'gravityview_template_paths', array( $this, 'add_template_path' ) );
93 93
 
94
-    }
94
+	}
95 95
 
96 96
 	/**
97 97
 	 * Trigger hooks that are normally run in the admin for Addons, but need to be triggered manually because we're not in the admin
@@ -105,77 +105,77 @@  discard block
 block discarded – undo
105 105
 
106 106
 	}
107 107
 
108
-    /**
109
-     * Include this extension templates path
110
-     * @param array $file_paths List of template paths ordered
111
-     */
112
-    public function add_template_path( $file_paths ) {
113
-
114
-        // Index 100 is the default GravityView template path.
115
-        $file_paths[ 110 ] = self::$file;
116
-
117
-        return $file_paths;
118
-    }
119
-
120
-    /**
121
-     *
122
-     * Return a well formatted nonce key according to GravityView Edit Entry protocol
123
-     *
124
-     * @param $view_id int GravityView view id
125
-     * @param $form_id int Gravity Forms form id
126
-     * @param $entry_id int Gravity Forms entry id
127
-     * @return string
128
-     */
129
-    public static function get_nonce_key( $view_id, $form_id, $entry_id ) {
130
-        return sprintf( 'edit_%d_%d_%d', $view_id, $form_id, $entry_id );
131
-    }
132
-
133
-
134
-    /**
135
-     * The edit entry link creates a secure link with a nonce
136
-     *
137
-     * It also mimics the URL structure Gravity Forms expects to have so that
138
-     * it formats the display of the edit form like it does in the backend, like
139
-     * "You can edit this post from the post page" fields, for example.
140
-     *
141
-     * @param $entry array Gravity Forms entry object
142
-     * @param $view_id int GravityView view id
143
-     * @param $post_id int GravityView Post ID where View may be embedded {@since 1.9.2}
144
-     * @param string|array $field_values Parameters to pass in to the Edit Entry form to prefill data. Uses the same format as Gravity Forms "Allow field to be populated dynamically" {@since 1.9.2} {@see https://www.gravityhelp.com/documentation/article/allow-field-to-be-populated-dynamically/ }
145
-     * @return string
146
-     */
147
-    public static function get_edit_link( $entry, $view_id, $post_id = null, $field_values = '' ) {
148
-
149
-        $nonce_key = self::get_nonce_key( $view_id, $entry['form_id'], $entry['id']  );
150
-
151
-        $base = gv_entry_link( $entry, $post_id ? : $view_id  );
152
-
153
-        $url = add_query_arg( array(
154
-            'edit' => wp_create_nonce( $nonce_key )
155
-        ), $base );
156
-
157
-        if( $post_id ) {
158
-	        $url = add_query_arg( array( 'gvid' => $view_id ), $url );
159
-        }
160
-
161
-	    /**
162
-	     * Allow passing params to dynamically populate entry with values
163
-	     * @since 1.9.2
164
-	     */
165
-	    if( !empty( $field_values ) ) {
166
-
167
-		    if( is_array( $field_values ) ) {
168
-			    // If already an array, no parse_str() needed
169
-			    $params = $field_values;
170
-		    } else {
171
-			    parse_str( $field_values, $params );
172
-		    }
173
-
174
-		    $url = add_query_arg( $params, $url );
175
-	    }
176
-
177
-        return $url;
178
-    }
108
+	/**
109
+	 * Include this extension templates path
110
+	 * @param array $file_paths List of template paths ordered
111
+	 */
112
+	public function add_template_path( $file_paths ) {
113
+
114
+		// Index 100 is the default GravityView template path.
115
+		$file_paths[ 110 ] = self::$file;
116
+
117
+		return $file_paths;
118
+	}
119
+
120
+	/**
121
+	 *
122
+	 * Return a well formatted nonce key according to GravityView Edit Entry protocol
123
+	 *
124
+	 * @param $view_id int GravityView view id
125
+	 * @param $form_id int Gravity Forms form id
126
+	 * @param $entry_id int Gravity Forms entry id
127
+	 * @return string
128
+	 */
129
+	public static function get_nonce_key( $view_id, $form_id, $entry_id ) {
130
+		return sprintf( 'edit_%d_%d_%d', $view_id, $form_id, $entry_id );
131
+	}
132
+
133
+
134
+	/**
135
+	 * The edit entry link creates a secure link with a nonce
136
+	 *
137
+	 * It also mimics the URL structure Gravity Forms expects to have so that
138
+	 * it formats the display of the edit form like it does in the backend, like
139
+	 * "You can edit this post from the post page" fields, for example.
140
+	 *
141
+	 * @param $entry array Gravity Forms entry object
142
+	 * @param $view_id int GravityView view id
143
+	 * @param $post_id int GravityView Post ID where View may be embedded {@since 1.9.2}
144
+	 * @param string|array $field_values Parameters to pass in to the Edit Entry form to prefill data. Uses the same format as Gravity Forms "Allow field to be populated dynamically" {@since 1.9.2} {@see https://www.gravityhelp.com/documentation/article/allow-field-to-be-populated-dynamically/ }
145
+	 * @return string
146
+	 */
147
+	public static function get_edit_link( $entry, $view_id, $post_id = null, $field_values = '' ) {
148
+
149
+		$nonce_key = self::get_nonce_key( $view_id, $entry['form_id'], $entry['id']  );
150
+
151
+		$base = gv_entry_link( $entry, $post_id ? : $view_id  );
152
+
153
+		$url = add_query_arg( array(
154
+			'edit' => wp_create_nonce( $nonce_key )
155
+		), $base );
156
+
157
+		if( $post_id ) {
158
+			$url = add_query_arg( array( 'gvid' => $view_id ), $url );
159
+		}
160
+
161
+		/**
162
+		 * Allow passing params to dynamically populate entry with values
163
+		 * @since 1.9.2
164
+		 */
165
+		if( !empty( $field_values ) ) {
166
+
167
+			if( is_array( $field_values ) ) {
168
+				// If already an array, no parse_str() needed
169
+				$params = $field_values;
170
+			} else {
171
+				parse_str( $field_values, $params );
172
+			}
173
+
174
+			$url = add_query_arg( $params, $url );
175
+		}
176
+
177
+		return $url;
178
+	}
179 179
 
180 180
 	/**
181 181
 	 * Edit mode doesn't allow certain field types.
@@ -229,82 +229,82 @@  discard block
 block discarded – undo
229 229
 	}
230 230
 
231 231
 
232
-    /**
233
-     * checks if user has permissions to edit a specific entry
234
-     *
235
-     * Needs to be used combined with GravityView_Edit_Entry::user_can_edit_entry for maximum security!!
236
-     *
237
-     * @param  array $entry Gravity Forms entry array
238
-     * @param int $view_id ID of the view you want to check visibility against {@since 1.9.2}. Required since 2.0
239
-     * @return bool
240
-     */
241
-    public static function check_user_cap_edit_entry( $entry, $view_id = 0 ) {
232
+	/**
233
+	 * checks if user has permissions to edit a specific entry
234
+	 *
235
+	 * Needs to be used combined with GravityView_Edit_Entry::user_can_edit_entry for maximum security!!
236
+	 *
237
+	 * @param  array $entry Gravity Forms entry array
238
+	 * @param int $view_id ID of the view you want to check visibility against {@since 1.9.2}. Required since 2.0
239
+	 * @return bool
240
+	 */
241
+	public static function check_user_cap_edit_entry( $entry, $view_id = 0 ) {
242 242
 
243
-        // No permission by default
244
-        $user_can_edit = false;
243
+		// No permission by default
244
+		$user_can_edit = false;
245 245
 
246
-        // If they can edit any entries (as defined in Gravity Forms)
247
-        // Or if they can edit other people's entries
248
-        // Then we're good.
249
-        if( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ), $entry['id'] ) ) {
246
+		// If they can edit any entries (as defined in Gravity Forms)
247
+		// Or if they can edit other people's entries
248
+		// Then we're good.
249
+		if( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ), $entry['id'] ) ) {
250 250
 
251
-            gravityview()->log->debug( 'User has ability to edit all entries.' );
251
+			gravityview()->log->debug( 'User has ability to edit all entries.' );
252 252
 
253
-            $user_can_edit = true;
253
+			$user_can_edit = true;
254 254
 
255
-        } else if( !isset( $entry['created_by'] ) ) {
255
+		} else if( !isset( $entry['created_by'] ) ) {
256 256
 
257
-            gravityview()->log->error( 'Entry `created_by` doesn\'t exist.');
257
+			gravityview()->log->error( 'Entry `created_by` doesn\'t exist.');
258 258
 
259
-            $user_can_edit = false;
259
+			$user_can_edit = false;
260 260
 
261
-        } else {
261
+		} else {
262 262
 
263
-            // get user_edit setting
264
-            if( empty( $view_id ) || $view_id == GravityView_View::getInstance()->getViewId() ) {
265
-                // if View ID not specified or is the current view
263
+			// get user_edit setting
264
+			if( empty( $view_id ) || $view_id == GravityView_View::getInstance()->getViewId() ) {
265
+				// if View ID not specified or is the current view
266 266
 				// @deprecated path
267
-                $user_edit = GravityView_View::getInstance()->getAtts('user_edit');
268
-            } else {
269
-                // in case is specified and not the current view
270
-                $user_edit = GVCommon::get_template_setting( $view_id, 'user_edit' );
271
-            }
267
+				$user_edit = GravityView_View::getInstance()->getAtts('user_edit');
268
+			} else {
269
+				// in case is specified and not the current view
270
+				$user_edit = GVCommon::get_template_setting( $view_id, 'user_edit' );
271
+			}
272 272
 
273
-            $current_user = wp_get_current_user();
273
+			$current_user = wp_get_current_user();
274 274
 
275
-            // User edit is disabled
276
-            if( empty( $user_edit ) ) {
275
+			// User edit is disabled
276
+			if( empty( $user_edit ) ) {
277 277
 
278
-                gravityview()->log->debug( 'User Edit is disabled. Returning false.' );
278
+				gravityview()->log->debug( 'User Edit is disabled. Returning false.' );
279 279
 
280
-                $user_can_edit = false;
281
-            }
280
+				$user_can_edit = false;
281
+			}
282 282
 
283
-            // User edit is enabled and the logged-in user is the same as the user who created the entry. We're good.
284
-            else if( is_user_logged_in() && intval( $current_user->ID ) === intval( $entry['created_by'] ) ) {
283
+			// User edit is enabled and the logged-in user is the same as the user who created the entry. We're good.
284
+			else if( is_user_logged_in() && intval( $current_user->ID ) === intval( $entry['created_by'] ) ) {
285 285
 
286
-                gravityview()->log->debug( 'User {user_id} created the entry.', array( 'user_id', $current_user->ID ) );
286
+				gravityview()->log->debug( 'User {user_id} created the entry.', array( 'user_id', $current_user->ID ) );
287 287
 
288
-                $user_can_edit = true;
288
+				$user_can_edit = true;
289 289
 
290
-            } else if( ! is_user_logged_in() ) {
290
+			} else if( ! is_user_logged_in() ) {
291 291
 
292
-                gravityview()->log->debug( 'No user defined; edit entry requires logged in user' );
293
-            }
292
+				gravityview()->log->debug( 'No user defined; edit entry requires logged in user' );
293
+			}
294 294
 
295
-        }
295
+		}
296 296
 
297
-        /**
298
-         * @filter `gravityview/edit_entry/user_can_edit_entry` Modify whether user can edit an entry.
299
-         * @since 1.15 Added `$entry` and `$view_id` parameters
300
-         * @param[in,out] boolean $user_can_edit Can the current user edit the current entry? (Default: false)
301
-         * @param[in] array $entry Gravity Forms entry array {@since 1.15}
302
-         * @param[in] int $view_id ID of the view you want to check visibility against {@since 1.15}
303
-         */
304
-        $user_can_edit = apply_filters( 'gravityview/edit_entry/user_can_edit_entry', $user_can_edit, $entry, $view_id );
297
+		/**
298
+		 * @filter `gravityview/edit_entry/user_can_edit_entry` Modify whether user can edit an entry.
299
+		 * @since 1.15 Added `$entry` and `$view_id` parameters
300
+		 * @param[in,out] boolean $user_can_edit Can the current user edit the current entry? (Default: false)
301
+		 * @param[in] array $entry Gravity Forms entry array {@since 1.15}
302
+		 * @param[in] int $view_id ID of the view you want to check visibility against {@since 1.15}
303
+		 */
304
+		$user_can_edit = apply_filters( 'gravityview/edit_entry/user_can_edit_entry', $user_can_edit, $entry, $view_id );
305 305
 
306
-        return (bool)$user_can_edit;
307
-    }
306
+		return (bool)$user_can_edit;
307
+	}
308 308
 
309 309
 
310 310
 
Please login to merge, or discard this patch.
includes/admin/metaboxes/views/view-configuration.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -26,11 +26,11 @@  discard block
 block discarded – undo
26 26
 
27 27
 			<?php
28 28
 
29
-                do_action('gravityview_render_widgets_active_areas', $curr_template, 'footer', $post->ID );
29
+				do_action('gravityview_render_widgets_active_areas', $curr_template, 'footer', $post->ID );
30 30
 
31
-    			do_action('gravityview_render_field_pickers', 'directory' );
31
+				do_action('gravityview_render_field_pickers', 'directory' );
32 32
 
33
-            ?>
33
+			?>
34 34
 
35 35
 			<?php // list of available widgets to be shown in the popup ?>
36 36
             <div id="directory-available-widgets" class="hide-if-js gv-tooltip">
@@ -55,13 +55,13 @@  discard block
 block discarded – undo
55 55
 
56 56
 			<div id="single-active-fields" class="gv-grid gv-grid-pad gv-grid-border">
57 57
 				<?php
58
-                if(!empty( $curr_template ) ) {
59
-				    do_action('gravityview_render_directory_active_areas', $curr_template, 'single', $post->ID, true );
60
-                }
61
-			    ?>
58
+				if(!empty( $curr_template ) ) {
59
+					do_action('gravityview_render_directory_active_areas', $curr_template, 'single', $post->ID, true );
60
+				}
61
+				?>
62 62
 			</div>
63 63
             <?php
64
-                do_action('gravityview_render_field_pickers', 'single' );
64
+				do_action('gravityview_render_field_pickers', 'single' );
65 65
 			?>
66 66
 		</div>
67 67
 
@@ -80,7 +80,7 @@  discard block
 block discarded – undo
80 80
 			</div>
81 81
 
82 82
 			<?php
83
-			    do_action('gravityview_render_field_pickers', 'edit' );
83
+				do_action('gravityview_render_field_pickers', 'edit' );
84 84
 			?>
85 85
 
86 86
 		</div>
Please login to merge, or discard this patch.