Completed
Push — develop ( 8b20d3...ccc9af )
by Zack
06:46
created
includes/extensions/edit-entry/class-edit-entry.php 1 patch
Indentation   +157 added lines, -157 removed lines patch added patch discarded remove patch
@@ -18,83 +18,83 @@  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
 		$this->load_components( 'locking' );
44 44
 
45
-        $this->load_components( 'render' );
45
+		$this->load_components( 'render' );
46 46
 
47
-        // If GF User Registration Add-on exists
48
-        $this->load_components( 'user-registration' );
47
+		// If GF User Registration Add-on exists
48
+		$this->load_components( 'user-registration' );
49 49
 
50
-        $this->add_hooks();
50
+		$this->add_hooks();
51 51
 
52 52
 		// Process hooks for addons that may or may not be present
53 53
 		$this->addon_specific_hooks();
54 54
 	}
55 55
 
56 56
 
57
-    static function getInstance() {
57
+	static function getInstance() {
58 58
 
59
-        if( empty( self::$instance ) ) {
60
-            self::$instance = new GravityView_Edit_Entry;
61
-        }
59
+		if( empty( self::$instance ) ) {
60
+			self::$instance = new GravityView_Edit_Entry;
61
+		}
62 62
 
63
-        return self::$instance;
64
-    }
63
+		return self::$instance;
64
+	}
65 65
 
66 66
 
67
-    private function load_components( $component ) {
67
+	private function load_components( $component ) {
68 68
 
69
-        $dir = trailingslashit( self::$file );
69
+		$dir = trailingslashit( self::$file );
70 70
 
71
-        $filename  = $dir . 'class-edit-entry-' . $component . '.php';
72
-        $classname = 'GravityView_Edit_Entry_' . str_replace( ' ', '_', ucwords( str_replace( '-', ' ', $component ) ) );
71
+		$filename  = $dir . 'class-edit-entry-' . $component . '.php';
72
+		$classname = 'GravityView_Edit_Entry_' . str_replace( ' ', '_', ucwords( str_replace( '-', ' ', $component ) ) );
73 73
 
74
-        // Loads component and pass extension's instance so that component can
75
-        // talk each other.
76
-        require_once $filename;
77
-        $this->instances[ $component ] = new $classname( $this );
78
-        $this->instances[ $component ]->load();
74
+		// Loads component and pass extension's instance so that component can
75
+		// talk each other.
76
+		require_once $filename;
77
+		$this->instances[ $component ] = new $classname( $this );
78
+		$this->instances[ $component ]->load();
79 79
 
80
-    }
80
+	}
81 81
 
82
-    private function add_hooks() {
82
+	private function add_hooks() {
83 83
 
84
-        // Add front-end access to Gravity Forms delete file action
85
-        add_action( 'wp_ajax_nopriv_rg_delete_file', array( 'GFForms', 'delete_file') );
84
+		// Add front-end access to Gravity Forms delete file action
85
+		add_action( 'wp_ajax_nopriv_rg_delete_file', array( 'GFForms', 'delete_file') );
86 86
 
87
-        // Make sure this hook is run for non-admins
88
-        add_action( 'wp_ajax_rg_delete_file', array( 'GFForms', 'delete_file') );
87
+		// Make sure this hook is run for non-admins
88
+		add_action( 'wp_ajax_rg_delete_file', array( 'GFForms', 'delete_file') );
89 89
 
90
-        add_filter( 'gravityview_blacklist_field_types', array( $this, 'modify_field_blacklist' ), 10, 2 );
90
+		add_filter( 'gravityview_blacklist_field_types', array( $this, 'modify_field_blacklist' ), 10, 2 );
91 91
 
92
-        // add template path to check for field
93
-        add_filter( 'gravityview_template_paths', array( $this, 'add_template_path' ) );
92
+		// add template path to check for field
93
+		add_filter( 'gravityview_template_paths', array( $this, 'add_template_path' ) );
94 94
 
95 95
 		add_filter( 'gravityview/field/is_visible', array( $this, 'maybe_not_visible' ), 10, 3 );
96 96
 
97
-    }
97
+	}
98 98
 
99 99
 	/**
100 100
 	 * Trigger hooks that are normally run in the admin for Addons, but need to be triggered manually because we're not in the admin
@@ -149,74 +149,74 @@  discard block
 block discarded – undo
149 149
 		return false;
150 150
 	}
151 151
 
152
-    /**
153
-     * Include this extension templates path
154
-     * @param array $file_paths List of template paths ordered
155
-     */
156
-    public function add_template_path( $file_paths ) {
157
-
158
-        // Index 100 is the default GravityView template path.
159
-        $file_paths[ 110 ] = self::$file;
160
-
161
-        return $file_paths;
162
-    }
163
-
164
-    /**
165
-     *
166
-     * Return a well formatted nonce key according to GravityView Edit Entry protocol
167
-     *
168
-     * @param $view_id int GravityView view id
169
-     * @param $form_id int Gravity Forms form id
170
-     * @param $entry_id int Gravity Forms entry id
171
-     * @return string
172
-     */
173
-    public static function get_nonce_key( $view_id, $form_id, $entry_id ) {
174
-        return sprintf( 'edit_%d_%d_%d', $view_id, $form_id, $entry_id );
175
-    }
176
-
177
-
178
-    /**
179
-     * The edit entry link creates a secure link with a nonce
180
-     *
181
-     * It also mimics the URL structure Gravity Forms expects to have so that
182
-     * it formats the display of the edit form like it does in the backend, like
183
-     * "You can edit this post from the post page" fields, for example.
184
-     *
185
-     * @param $entry array Gravity Forms entry object
186
-     * @param $view_id int GravityView view id
187
-     * @param $post_id int GravityView Post ID where View may be embedded {@since 1.9.2}
188
-     * @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/ }
189
-     * @return string
190
-     */
191
-    public static function get_edit_link( $entry, $view_id, $post_id = null, $field_values = '' ) {
192
-
193
-        $nonce_key = self::get_nonce_key( $view_id, $entry['form_id'], $entry['id']  );
194
-
195
-        $base = gv_entry_link( $entry, $post_id ? : $view_id  );
196
-
197
-        $url = add_query_arg( array(
198
-            'edit' => wp_create_nonce( $nonce_key )
199
-        ), $base );
200
-
201
-        if( $post_id ) {
202
-	        $url = add_query_arg( array( 'gvid' => $view_id ), $url );
203
-        }
204
-
205
-	    /**
206
-	     * Allow passing params to dynamically populate entry with values
207
-	     * @since 1.9.2
208
-	     */
209
-	    if( !empty( $field_values ) ) {
210
-
211
-		    if( is_array( $field_values ) ) {
212
-			    // If already an array, no parse_str() needed
213
-			    $params = $field_values;
214
-		    } else {
215
-			    parse_str( $field_values, $params );
216
-		    }
217
-
218
-		    $url = add_query_arg( $params, $url );
219
-	    }
152
+	/**
153
+	 * Include this extension templates path
154
+	 * @param array $file_paths List of template paths ordered
155
+	 */
156
+	public function add_template_path( $file_paths ) {
157
+
158
+		// Index 100 is the default GravityView template path.
159
+		$file_paths[ 110 ] = self::$file;
160
+
161
+		return $file_paths;
162
+	}
163
+
164
+	/**
165
+	 *
166
+	 * Return a well formatted nonce key according to GravityView Edit Entry protocol
167
+	 *
168
+	 * @param $view_id int GravityView view id
169
+	 * @param $form_id int Gravity Forms form id
170
+	 * @param $entry_id int Gravity Forms entry id
171
+	 * @return string
172
+	 */
173
+	public static function get_nonce_key( $view_id, $form_id, $entry_id ) {
174
+		return sprintf( 'edit_%d_%d_%d', $view_id, $form_id, $entry_id );
175
+	}
176
+
177
+
178
+	/**
179
+	 * The edit entry link creates a secure link with a nonce
180
+	 *
181
+	 * It also mimics the URL structure Gravity Forms expects to have so that
182
+	 * it formats the display of the edit form like it does in the backend, like
183
+	 * "You can edit this post from the post page" fields, for example.
184
+	 *
185
+	 * @param $entry array Gravity Forms entry object
186
+	 * @param $view_id int GravityView view id
187
+	 * @param $post_id int GravityView Post ID where View may be embedded {@since 1.9.2}
188
+	 * @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/ }
189
+	 * @return string
190
+	 */
191
+	public static function get_edit_link( $entry, $view_id, $post_id = null, $field_values = '' ) {
192
+
193
+		$nonce_key = self::get_nonce_key( $view_id, $entry['form_id'], $entry['id']  );
194
+
195
+		$base = gv_entry_link( $entry, $post_id ? : $view_id  );
196
+
197
+		$url = add_query_arg( array(
198
+			'edit' => wp_create_nonce( $nonce_key )
199
+		), $base );
200
+
201
+		if( $post_id ) {
202
+			$url = add_query_arg( array( 'gvid' => $view_id ), $url );
203
+		}
204
+
205
+		/**
206
+		 * Allow passing params to dynamically populate entry with values
207
+		 * @since 1.9.2
208
+		 */
209
+		if( !empty( $field_values ) ) {
210
+
211
+			if( is_array( $field_values ) ) {
212
+				// If already an array, no parse_str() needed
213
+				$params = $field_values;
214
+			} else {
215
+				parse_str( $field_values, $params );
216
+			}
217
+
218
+			$url = add_query_arg( $params, $url );
219
+		}
220 220
 
221 221
 		/**
222 222
 		 * @filter `gravityview/edit/link` Filter the edit URL link.
@@ -225,7 +225,7 @@  discard block
 block discarded – undo
225 225
 		 * @param \GV\View $view The View.
226 226
 		 */
227 227
 		return apply_filters( 'gravityview/edit/link', $url, $entry, \GV\View::by_id( $view_id  ) );
228
-    }
228
+	}
229 229
 
230 230
 	/**
231 231
 	 * Edit mode doesn't allow certain field types.
@@ -280,19 +280,19 @@  discard block
 block discarded – undo
280 280
 	}
281 281
 
282 282
 
283
-    /**
284
-     * checks if user has permissions to edit a specific entry
285
-     *
286
-     * Needs to be used combined with GravityView_Edit_Entry::user_can_edit_entry for maximum security!!
287
-     *
288
-     * @param  array $entry Gravity Forms entry array
289
-     * @param \GV\View|int $view ID of the view you want to check visibility against {@since 1.9.2}. Required since 2.0
290
-     * @return bool
291
-     */
292
-    public static function check_user_cap_edit_entry( $entry, $view = 0 ) {
283
+	/**
284
+	 * checks if user has permissions to edit a specific entry
285
+	 *
286
+	 * Needs to be used combined with GravityView_Edit_Entry::user_can_edit_entry for maximum security!!
287
+	 *
288
+	 * @param  array $entry Gravity Forms entry array
289
+	 * @param \GV\View|int $view ID of the view you want to check visibility against {@since 1.9.2}. Required since 2.0
290
+	 * @return bool
291
+	 */
292
+	public static function check_user_cap_edit_entry( $entry, $view = 0 ) {
293 293
 
294
-        // No permission by default
295
-        $user_can_edit = false;
294
+		// No permission by default
295
+		$user_can_edit = false;
296 296
 
297 297
 		// get user_edit setting
298 298
 		if ( empty( $view ) ) {
@@ -310,60 +310,60 @@  discard block
 block discarded – undo
310 310
 			$user_edit = GVCommon::get_template_setting( $view_id, 'user_edit' );
311 311
 		}
312 312
 
313
-        // If they can edit any entries (as defined in Gravity Forms)
314
-        // Or if they can edit other people's entries
315
-        // Then we're good.
316
-        if( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ), $entry['id'] ) ) {
313
+		// If they can edit any entries (as defined in Gravity Forms)
314
+		// Or if they can edit other people's entries
315
+		// Then we're good.
316
+		if( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ), $entry['id'] ) ) {
317 317
 
318
-            gravityview()->log->debug( 'User has ability to edit all entries.' );
318
+			gravityview()->log->debug( 'User has ability to edit all entries.' );
319 319
 
320
-            $user_can_edit = true;
320
+			$user_can_edit = true;
321 321
 
322
-        } else if( !isset( $entry['created_by'] ) ) {
322
+		} else if( !isset( $entry['created_by'] ) ) {
323 323
 
324
-            gravityview()->log->error( 'Entry `created_by` doesn\'t exist.');
324
+			gravityview()->log->error( 'Entry `created_by` doesn\'t exist.');
325 325
 
326
-            $user_can_edit = false;
326
+			$user_can_edit = false;
327 327
 
328
-        } else {
328
+		} else {
329 329
 
330
-            $current_user = wp_get_current_user();
330
+			$current_user = wp_get_current_user();
331 331
 
332
-            // User edit is disabled
333
-            if( empty( $user_edit ) ) {
332
+			// User edit is disabled
333
+			if( empty( $user_edit ) ) {
334 334
 
335
-                gravityview()->log->debug( 'User Edit is disabled. Returning false.' );
335
+				gravityview()->log->debug( 'User Edit is disabled. Returning false.' );
336 336
 
337
-                $user_can_edit = false;
338
-            }
337
+				$user_can_edit = false;
338
+			}
339 339
 
340
-            // User edit is enabled and the logged-in user is the same as the user who created the entry. We're good.
341
-            else if( is_user_logged_in() && intval( $current_user->ID ) === intval( $entry['created_by'] ) ) {
340
+			// User edit is enabled and the logged-in user is the same as the user who created the entry. We're good.
341
+			else if( is_user_logged_in() && intval( $current_user->ID ) === intval( $entry['created_by'] ) ) {
342 342
 
343
-                gravityview()->log->debug( 'User {user_id} created the entry.', array( 'user_id', $current_user->ID ) );
343
+				gravityview()->log->debug( 'User {user_id} created the entry.', array( 'user_id', $current_user->ID ) );
344 344
 
345
-                $user_can_edit = true;
345
+				$user_can_edit = true;
346 346
 
347
-            } else if( ! is_user_logged_in() ) {
347
+			} else if( ! is_user_logged_in() ) {
348 348
 
349
-                gravityview()->log->debug( 'No user defined; edit entry requires logged in user' );
349
+				gravityview()->log->debug( 'No user defined; edit entry requires logged in user' );
350 350
 
351
-	            $user_can_edit = false; // Here just for clarity
352
-            }
351
+				$user_can_edit = false; // Here just for clarity
352
+			}
353 353
 
354
-        }
354
+		}
355 355
 
356
-        /**
357
-         * @filter `gravityview/edit_entry/user_can_edit_entry` Modify whether user can edit an entry.
358
-         * @since 1.15 Added `$entry` and `$view_id` parameters
359
-         * @param[in,out] boolean $user_can_edit Can the current user edit the current entry? (Default: false)
360
-         * @param[in] array $entry Gravity Forms entry array {@since 1.15}
361
-         * @param[in] int $view_id ID of the view you want to check visibility against {@since 1.15}
362
-         */
363
-        $user_can_edit = apply_filters( 'gravityview/edit_entry/user_can_edit_entry', $user_can_edit, $entry, $view_id );
356
+		/**
357
+		 * @filter `gravityview/edit_entry/user_can_edit_entry` Modify whether user can edit an entry.
358
+		 * @since 1.15 Added `$entry` and `$view_id` parameters
359
+		 * @param[in,out] boolean $user_can_edit Can the current user edit the current entry? (Default: false)
360
+		 * @param[in] array $entry Gravity Forms entry array {@since 1.15}
361
+		 * @param[in] int $view_id ID of the view you want to check visibility against {@since 1.15}
362
+		 */
363
+		$user_can_edit = apply_filters( 'gravityview/edit_entry/user_can_edit_entry', $user_can_edit, $entry, $view_id );
364 364
 
365
-        return (bool) $user_can_edit;
366
-    }
365
+		return (bool) $user_can_edit;
366
+	}
367 367
 
368 368
 
369 369
 
Please login to merge, or discard this patch.