@@ -12,8 +12,8 @@ discard block |
||
| 12 | 12 | * @ version 4.0 |
| 13 | 13 | * |
| 14 | 14 | */ |
| 15 | -require_once( EE_HELPERS . 'EEH_Base.helper.php' ); |
|
| 16 | -require_once( EE_INTERFACES . 'EEI_Interfaces.php' ); |
|
| 15 | +require_once(EE_HELPERS.'EEH_Base.helper.php'); |
|
| 16 | +require_once(EE_INTERFACES.'EEI_Interfaces.php'); |
|
| 17 | 17 | /** |
| 18 | 18 | * |
| 19 | 19 | * Class EEH_File |
@@ -42,30 +42,30 @@ discard block |
||
| 42 | 42 | * @throws EE_Error |
| 43 | 43 | * @return WP_Filesystem_Base |
| 44 | 44 | */ |
| 45 | - private static function _get_wp_filesystem( $filepath = null) { |
|
| 46 | - if( apply_filters( |
|
| 45 | + private static function _get_wp_filesystem($filepath = null) { |
|
| 46 | + if (apply_filters( |
|
| 47 | 47 | 'FHEE__EEH_File___get_wp_filesystem__allow_using_filesystem_direct', |
| 48 | - $filepath && EEH_File::is_in_uploads_folder( $filepath ), |
|
| 49 | - $filepath ) ) { |
|
| 50 | - if( ! EEH_File::$_wp_filesystem_direct instanceof WP_Filesystem_Direct ) { |
|
| 51 | - require_once(ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php'); |
|
| 48 | + $filepath && EEH_File::is_in_uploads_folder($filepath), |
|
| 49 | + $filepath )) { |
|
| 50 | + if ( ! EEH_File::$_wp_filesystem_direct instanceof WP_Filesystem_Direct) { |
|
| 51 | + require_once(ABSPATH.'wp-admin/includes/class-wp-filesystem-base.php'); |
|
| 52 | 52 | $method = 'direct'; |
| 53 | - $wp_filesystem_direct_file = apply_filters( 'filesystem_method_file', ABSPATH . 'wp-admin/includes/class-wp-filesystem-' . $method . '.php', $method ); |
|
| 53 | + $wp_filesystem_direct_file = apply_filters('filesystem_method_file', ABSPATH.'wp-admin/includes/class-wp-filesystem-'.$method.'.php', $method); |
|
| 54 | 54 | //check constants defined, just like in wp-admin/includes/file.php's WP_Filesystem() |
| 55 | - if ( ! defined('FS_CHMOD_DIR') ) { |
|
| 56 | - define('FS_CHMOD_DIR', ( fileperms( ABSPATH ) & 0777 | 0755 ) ); |
|
| 55 | + if ( ! defined('FS_CHMOD_DIR')) { |
|
| 56 | + define('FS_CHMOD_DIR', (fileperms(ABSPATH) & 0777 | 0755)); |
|
| 57 | 57 | } |
| 58 | - if ( ! defined('FS_CHMOD_FILE') ) { |
|
| 59 | - define('FS_CHMOD_FILE', ( fileperms( ABSPATH . 'index.php' ) & 0777 | 0644 ) ); |
|
| 58 | + if ( ! defined('FS_CHMOD_FILE')) { |
|
| 59 | + define('FS_CHMOD_FILE', (fileperms(ABSPATH.'index.php') & 0777 | 0644)); |
|
| 60 | 60 | } |
| 61 | - require_once( $wp_filesystem_direct_file ); |
|
| 62 | - EEH_File::$_wp_filesystem_direct = new WP_Filesystem_Direct( array() ); |
|
| 61 | + require_once($wp_filesystem_direct_file); |
|
| 62 | + EEH_File::$_wp_filesystem_direct = new WP_Filesystem_Direct(array()); |
|
| 63 | 63 | } |
| 64 | 64 | return EEH_File::$_wp_filesystem_direct; |
| 65 | 65 | } |
| 66 | 66 | global $wp_filesystem; |
| 67 | 67 | // no filesystem setup ??? |
| 68 | - if ( ! $wp_filesystem instanceof WP_Filesystem_Base ) { |
|
| 68 | + if ( ! $wp_filesystem instanceof WP_Filesystem_Base) { |
|
| 69 | 69 | // if some eager beaver's just trying to get in there too early... |
| 70 | 70 | // let them do it, because we are one of those eager beavers! :P |
| 71 | 71 | /** |
@@ -78,34 +78,34 @@ discard block |
||
| 78 | 78 | * and there may be troubles if the WP files are owned by a different user |
| 79 | 79 | * than the server user. But both of these issues should exist in 4.4 and earlier too |
| 80 | 80 | */ |
| 81 | - if ( FALSE && ! did_action( 'wp_loaded' )) { |
|
| 81 | + if (FALSE && ! did_action('wp_loaded')) { |
|
| 82 | 82 | $msg = __('An attempt to access and/or write to a file on the server could not be completed due to a lack of sufficient credentials.', 'event_espresso'); |
| 83 | - if ( WP_DEBUG ) { |
|
| 84 | - $msg .= '<br />' . __('The WP Filesystem can not be accessed until after the "wp_loaded" hook has run, so it\'s best not to attempt access until the "admin_init" hookpoint.', 'event_espresso'); |
|
| 83 | + if (WP_DEBUG) { |
|
| 84 | + $msg .= '<br />'.__('The WP Filesystem can not be accessed until after the "wp_loaded" hook has run, so it\'s best not to attempt access until the "admin_init" hookpoint.', 'event_espresso'); |
|
| 85 | 85 | } |
| 86 | - throw new EE_Error( $msg ); |
|
| 86 | + throw new EE_Error($msg); |
|
| 87 | 87 | } else { |
| 88 | 88 | // should be loaded if we are past the wp_loaded hook... |
| 89 | - if ( ! function_exists( 'WP_Filesystem' )) { |
|
| 90 | - require_once( ABSPATH . 'wp-admin/includes/file.php' ); |
|
| 91 | - require_once( ABSPATH . 'wp-admin/includes/template.php' ); |
|
| 89 | + if ( ! function_exists('WP_Filesystem')) { |
|
| 90 | + require_once(ABSPATH.'wp-admin/includes/file.php'); |
|
| 91 | + require_once(ABSPATH.'wp-admin/includes/template.php'); |
|
| 92 | 92 | } |
| 93 | 93 | // turn on output buffering so that we can capture the credentials form |
| 94 | 94 | ob_start(); |
| 95 | - $credentials = request_filesystem_credentials( '' ); |
|
| 95 | + $credentials = request_filesystem_credentials(''); |
|
| 96 | 96 | // store credentials form for the time being |
| 97 | 97 | EEH_File::$_credentials_form = ob_get_clean(); |
| 98 | 98 | // basically check for direct or previously configured access |
| 99 | - if ( ! WP_Filesystem( $credentials ) ) { |
|
| 99 | + if ( ! WP_Filesystem($credentials)) { |
|
| 100 | 100 | // if credentials do NOT exist |
| 101 | - if ( $credentials === FALSE ) { |
|
| 102 | - add_action( 'admin_notices', array( 'EEH_File', 'display_request_filesystem_credentials_form' ), 999 ); |
|
| 103 | - throw new EE_Error( __('An attempt to access and/or write to a file on the server could not be completed due to a lack of sufficient credentials.', 'event_espresso')); |
|
| 104 | - } elseif( is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) { |
|
| 105 | - add_action( 'admin_notices', array( 'EEH_File', 'display_request_filesystem_credentials_form' ), 999 ); |
|
| 101 | + if ($credentials === FALSE) { |
|
| 102 | + add_action('admin_notices', array('EEH_File', 'display_request_filesystem_credentials_form'), 999); |
|
| 103 | + throw new EE_Error(__('An attempt to access and/or write to a file on the server could not be completed due to a lack of sufficient credentials.', 'event_espresso')); |
|
| 104 | + } elseif (is_wp_error($wp_filesystem->errors) && $wp_filesystem->errors->get_error_code()) { |
|
| 105 | + add_action('admin_notices', array('EEH_File', 'display_request_filesystem_credentials_form'), 999); |
|
| 106 | 106 | throw new EE_Error( |
| 107 | 107 | sprintf( |
| 108 | - __( 'WP Filesystem Error: $1%s', 'event_espresso' ), |
|
| 108 | + __('WP Filesystem Error: $1%s', 'event_espresso'), |
|
| 109 | 109 | $wp_filesystem->errors->get_error_message() ) ); |
| 110 | 110 | } |
| 111 | 111 | } |
@@ -118,8 +118,8 @@ discard block |
||
| 118 | 118 | * display_request_filesystem_credentials_form |
| 119 | 119 | */ |
| 120 | 120 | public static function display_request_filesystem_credentials_form() { |
| 121 | - if ( ! empty( EEH_File::$_credentials_form )) { |
|
| 122 | - echo '<div class="updated espresso-notices-attention"><p>' . EEH_File::$_credentials_form . '</p></div>'; |
|
| 121 | + if ( ! empty(EEH_File::$_credentials_form)) { |
|
| 122 | + echo '<div class="updated espresso-notices-attention"><p>'.EEH_File::$_credentials_form.'</p></div>'; |
|
| 123 | 123 | } |
| 124 | 124 | } |
| 125 | 125 | |
@@ -137,29 +137,29 @@ discard block |
||
| 137 | 137 | * @throws EE_Error |
| 138 | 138 | * @return bool |
| 139 | 139 | */ |
| 140 | - public static function verify_filepath_and_permissions( $full_file_path = '', $file_name = '', $file_ext = '', $type_of_file = '' ) { |
|
| 140 | + public static function verify_filepath_and_permissions($full_file_path = '', $file_name = '', $file_ext = '', $type_of_file = '') { |
|
| 141 | 141 | // load WP_Filesystem and set file permissions |
| 142 | - $wp_filesystem = EEH_File::_get_wp_filesystem( $full_file_path ); |
|
| 143 | - $full_file_path = EEH_File::standardise_directory_separators( $full_file_path ); |
|
| 144 | - if ( ! $wp_filesystem->is_readable( EEH_File::convert_local_filepath_to_remote_filepath( $full_file_path ) )) { |
|
| 145 | - $file_name = ! empty( $type_of_file ) ? $file_name . ' ' . $type_of_file : $file_name; |
|
| 146 | - $file_name .= ! empty( $file_ext ) ? ' file' : ' folder'; |
|
| 142 | + $wp_filesystem = EEH_File::_get_wp_filesystem($full_file_path); |
|
| 143 | + $full_file_path = EEH_File::standardise_directory_separators($full_file_path); |
|
| 144 | + if ( ! $wp_filesystem->is_readable(EEH_File::convert_local_filepath_to_remote_filepath($full_file_path))) { |
|
| 145 | + $file_name = ! empty($type_of_file) ? $file_name.' '.$type_of_file : $file_name; |
|
| 146 | + $file_name .= ! empty($file_ext) ? ' file' : ' folder'; |
|
| 147 | 147 | $msg = sprintf( |
| 148 | - __( 'The requested %1$s could not be found or is not readable, possibly due to an incorrect filepath, or incorrect file permissions.%2$s', 'event_espresso' ), |
|
| 148 | + __('The requested %1$s could not be found or is not readable, possibly due to an incorrect filepath, or incorrect file permissions.%2$s', 'event_espresso'), |
|
| 149 | 149 | $file_name, |
| 150 | 150 | '<br />' |
| 151 | 151 | ); |
| 152 | - if ( EEH_File::exists( $full_file_path )) { |
|
| 153 | - $msg .= EEH_File::_permissions_error_for_unreadable_filepath( $full_file_path, $type_of_file ); |
|
| 152 | + if (EEH_File::exists($full_file_path)) { |
|
| 153 | + $msg .= EEH_File::_permissions_error_for_unreadable_filepath($full_file_path, $type_of_file); |
|
| 154 | 154 | } else { |
| 155 | 155 | // no file permissions means the file was not found |
| 156 | 156 | $msg .= sprintf( |
| 157 | - __( 'Please ensure the following path is correct: "%s".', 'event_espresso' ), |
|
| 157 | + __('Please ensure the following path is correct: "%s".', 'event_espresso'), |
|
| 158 | 158 | $full_file_path |
| 159 | 159 | ); |
| 160 | 160 | } |
| 161 | - if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { |
|
| 162 | - throw new EE_Error( $msg . '||' . $msg ); |
|
| 161 | + if (defined('WP_DEBUG') && WP_DEBUG) { |
|
| 162 | + throw new EE_Error($msg.'||'.$msg); |
|
| 163 | 163 | } |
| 164 | 164 | return FALSE; |
| 165 | 165 | } |
@@ -176,24 +176,24 @@ discard block |
||
| 176 | 176 | * @param string $type_of_file - general type of file (ie: "module"), this is only used to improve error messages |
| 177 | 177 | * @return string |
| 178 | 178 | */ |
| 179 | - private static function _permissions_error_for_unreadable_filepath( $full_file_path = '', $type_of_file = '' ){ |
|
| 179 | + private static function _permissions_error_for_unreadable_filepath($full_file_path = '', $type_of_file = '') { |
|
| 180 | 180 | // load WP_Filesystem and set file permissions |
| 181 | - $wp_filesystem = EEH_File::_get_wp_filesystem( $full_file_path ); |
|
| 181 | + $wp_filesystem = EEH_File::_get_wp_filesystem($full_file_path); |
|
| 182 | 182 | // check file permissions |
| 183 | - $perms = $wp_filesystem->getchmod( EEH_File::convert_local_filepath_to_remote_filepath( $full_file_path ) ); |
|
| 184 | - if ( $perms ) { |
|
| 183 | + $perms = $wp_filesystem->getchmod(EEH_File::convert_local_filepath_to_remote_filepath($full_file_path)); |
|
| 184 | + if ($perms) { |
|
| 185 | 185 | // file permissions exist, but way be set incorrectly |
| 186 | - $type_of_file = ! empty( $type_of_file ) ? $type_of_file . ' ' : ''; |
|
| 187 | - $type_of_file .= ! empty( $type_of_file ) ? 'file' : 'folder'; |
|
| 186 | + $type_of_file = ! empty($type_of_file) ? $type_of_file.' ' : ''; |
|
| 187 | + $type_of_file .= ! empty($type_of_file) ? 'file' : 'folder'; |
|
| 188 | 188 | return sprintf( |
| 189 | - __( 'File permissions for the requested %1$s are currently set at "%2$s". The recommended permissions are 644 for files and 755 for folders.', 'event_espresso' ), |
|
| 189 | + __('File permissions for the requested %1$s are currently set at "%2$s". The recommended permissions are 644 for files and 755 for folders.', 'event_espresso'), |
|
| 190 | 190 | $type_of_file, |
| 191 | 191 | $perms |
| 192 | 192 | ); |
| 193 | 193 | } else { |
| 194 | 194 | // file exists but file permissions could not be read ?!?! |
| 195 | 195 | return sprintf( |
| 196 | - __( 'Please ensure that the server and/or PHP configuration allows the current process to access the following file: "%s".', 'event_espresso' ), |
|
| 196 | + __('Please ensure that the server and/or PHP configuration allows the current process to access the following file: "%s".', 'event_espresso'), |
|
| 197 | 197 | $full_file_path |
| 198 | 198 | ); |
| 199 | 199 | } |
@@ -211,35 +211,35 @@ discard block |
||
| 211 | 211 | * can't write to it |
| 212 | 212 | * @return bool false if folder isn't writable; true if it exists and is writeable, |
| 213 | 213 | */ |
| 214 | - public static function ensure_folder_exists_and_is_writable( $folder = '' ){ |
|
| 215 | - if ( empty( $folder )) { |
|
| 214 | + public static function ensure_folder_exists_and_is_writable($folder = '') { |
|
| 215 | + if (empty($folder)) { |
|
| 216 | 216 | return false; |
| 217 | 217 | } |
| 218 | 218 | // remove ending DS |
| 219 | - $folder = EEH_File::standardise_directory_separators( rtrim( $folder, '/\\' )); |
|
| 220 | - $parent_folder = EEH_File::get_parent_folder( $folder ); |
|
| 219 | + $folder = EEH_File::standardise_directory_separators(rtrim($folder, '/\\')); |
|
| 220 | + $parent_folder = EEH_File::get_parent_folder($folder); |
|
| 221 | 221 | // add DS to folder |
| 222 | - $folder = EEH_File::end_with_directory_separator( $folder ); |
|
| 223 | - $wp_filesystem = EEH_File::_get_wp_filesystem( $folder ); |
|
| 224 | - if ( ! $wp_filesystem->is_dir( EEH_File::convert_local_filepath_to_remote_filepath( $folder ) ) ) { |
|
| 222 | + $folder = EEH_File::end_with_directory_separator($folder); |
|
| 223 | + $wp_filesystem = EEH_File::_get_wp_filesystem($folder); |
|
| 224 | + if ( ! $wp_filesystem->is_dir(EEH_File::convert_local_filepath_to_remote_filepath($folder))) { |
|
| 225 | 225 | //ok so it doesn't exist. Does its parent? Can we write to it? |
| 226 | - if( ! EEH_File::ensure_folder_exists_and_is_writable( $parent_folder ) ) { |
|
| 226 | + if ( ! EEH_File::ensure_folder_exists_and_is_writable($parent_folder)) { |
|
| 227 | 227 | return false; |
| 228 | 228 | } |
| 229 | - if ( ! EEH_File::verify_is_writable( $parent_folder, 'folder' )) { |
|
| 229 | + if ( ! EEH_File::verify_is_writable($parent_folder, 'folder')) { |
|
| 230 | 230 | return false; |
| 231 | 231 | } else { |
| 232 | - if ( ! $wp_filesystem->mkdir( EEH_File::convert_local_filepath_to_remote_filepath( $folder ) ) ) { |
|
| 233 | - if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { |
|
| 234 | - $msg = sprintf( __( '"%s" could not be created.', 'event_espresso' ), $folder ); |
|
| 235 | - $msg .= EEH_File::_permissions_error_for_unreadable_filepath( $folder ); |
|
| 236 | - throw new EE_Error( $msg ); |
|
| 232 | + if ( ! $wp_filesystem->mkdir(EEH_File::convert_local_filepath_to_remote_filepath($folder))) { |
|
| 233 | + if (defined('WP_DEBUG') && WP_DEBUG) { |
|
| 234 | + $msg = sprintf(__('"%s" could not be created.', 'event_espresso'), $folder); |
|
| 235 | + $msg .= EEH_File::_permissions_error_for_unreadable_filepath($folder); |
|
| 236 | + throw new EE_Error($msg); |
|
| 237 | 237 | } |
| 238 | 238 | return false; |
| 239 | 239 | } |
| 240 | - EEH_File::add_index_file( $folder ); |
|
| 240 | + EEH_File::add_index_file($folder); |
|
| 241 | 241 | } |
| 242 | - } elseif ( ! EEH_File::verify_is_writable( $folder, 'folder' )) { |
|
| 242 | + } elseif ( ! EEH_File::verify_is_writable($folder, 'folder')) { |
|
| 243 | 243 | return false; |
| 244 | 244 | } |
| 245 | 245 | return true; |
@@ -254,15 +254,15 @@ discard block |
||
| 254 | 254 | * @throws EE_Error |
| 255 | 255 | * @return bool |
| 256 | 256 | */ |
| 257 | - public static function verify_is_writable( $full_path = '', $file_or_folder = 'folder' ){ |
|
| 257 | + public static function verify_is_writable($full_path = '', $file_or_folder = 'folder') { |
|
| 258 | 258 | // load WP_Filesystem and set file permissions |
| 259 | - $wp_filesystem = EEH_File::_get_wp_filesystem( $full_path ); |
|
| 260 | - $full_path = EEH_File::standardise_directory_separators( $full_path ); |
|
| 261 | - if ( ! $wp_filesystem->is_writable( EEH_File::convert_local_filepath_to_remote_filepath( $full_path ) ) ) { |
|
| 262 | - if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { |
|
| 263 | - $msg = sprintf( __( 'The "%1$s" %2$s is not writable.', 'event_espresso' ), $full_path, $file_or_folder ); |
|
| 264 | - $msg .= EEH_File::_permissions_error_for_unreadable_filepath( $full_path ); |
|
| 265 | - throw new EE_Error( $msg ); |
|
| 259 | + $wp_filesystem = EEH_File::_get_wp_filesystem($full_path); |
|
| 260 | + $full_path = EEH_File::standardise_directory_separators($full_path); |
|
| 261 | + if ( ! $wp_filesystem->is_writable(EEH_File::convert_local_filepath_to_remote_filepath($full_path))) { |
|
| 262 | + if (defined('WP_DEBUG') && WP_DEBUG) { |
|
| 263 | + $msg = sprintf(__('The "%1$s" %2$s is not writable.', 'event_espresso'), $full_path, $file_or_folder); |
|
| 264 | + $msg .= EEH_File::_permissions_error_for_unreadable_filepath($full_path); |
|
| 265 | + throw new EE_Error($msg); |
|
| 266 | 266 | } |
| 267 | 267 | return FALSE; |
| 268 | 268 | } |
@@ -279,25 +279,25 @@ discard block |
||
| 279 | 279 | * @throws EE_Error |
| 280 | 280 | * @return bool |
| 281 | 281 | */ |
| 282 | - public static function ensure_file_exists_and_is_writable( $full_file_path = '' ) { |
|
| 282 | + public static function ensure_file_exists_and_is_writable($full_file_path = '') { |
|
| 283 | 283 | // load WP_Filesystem and set file permissions |
| 284 | - $wp_filesystem = EEH_File::_get_wp_filesystem( $full_file_path ); |
|
| 285 | - $full_file_path = EEH_File::standardise_directory_separators( $full_file_path ); |
|
| 286 | - $parent_folder = EEH_File::get_parent_folder( $full_file_path ); |
|
| 287 | - if ( ! EEH_File::exists( $full_file_path )) { |
|
| 288 | - if( ! EEH_File::ensure_folder_exists_and_is_writable( $parent_folder ) ) { |
|
| 284 | + $wp_filesystem = EEH_File::_get_wp_filesystem($full_file_path); |
|
| 285 | + $full_file_path = EEH_File::standardise_directory_separators($full_file_path); |
|
| 286 | + $parent_folder = EEH_File::get_parent_folder($full_file_path); |
|
| 287 | + if ( ! EEH_File::exists($full_file_path)) { |
|
| 288 | + if ( ! EEH_File::ensure_folder_exists_and_is_writable($parent_folder)) { |
|
| 289 | 289 | return false; |
| 290 | 290 | } |
| 291 | - if ( ! $wp_filesystem->touch( EEH_File::convert_local_filepath_to_remote_filepath( $full_file_path ) ) ) { |
|
| 292 | - if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { |
|
| 293 | - $msg = sprintf( __( 'The "%s" file could not be created.', 'event_espresso' ), $full_file_path ); |
|
| 294 | - $msg .= EEH_File::_permissions_error_for_unreadable_filepath( $full_file_path ); |
|
| 295 | - throw new EE_Error( $msg ); |
|
| 291 | + if ( ! $wp_filesystem->touch(EEH_File::convert_local_filepath_to_remote_filepath($full_file_path))) { |
|
| 292 | + if (defined('WP_DEBUG') && WP_DEBUG) { |
|
| 293 | + $msg = sprintf(__('The "%s" file could not be created.', 'event_espresso'), $full_file_path); |
|
| 294 | + $msg .= EEH_File::_permissions_error_for_unreadable_filepath($full_file_path); |
|
| 295 | + throw new EE_Error($msg); |
|
| 296 | 296 | } |
| 297 | 297 | return false; |
| 298 | 298 | } |
| 299 | 299 | } |
| 300 | - if ( ! EEH_File::verify_is_writable( $full_file_path, 'file' )) { |
|
| 300 | + if ( ! EEH_File::verify_is_writable($full_file_path, 'file')) { |
|
| 301 | 301 | return false; |
| 302 | 302 | } |
| 303 | 303 | return true; |
@@ -309,15 +309,15 @@ discard block |
||
| 309 | 309 | * @param string $file_or_folder_path |
| 310 | 310 | * @return string parent folder, ENDING with a directory separator |
| 311 | 311 | */ |
| 312 | - public static function get_parent_folder( $file_or_folder_path ) { |
|
| 312 | + public static function get_parent_folder($file_or_folder_path) { |
|
| 313 | 313 | //find the last DS, ignoring a DS on the very end |
| 314 | 314 | //eg if given "/var/something/somewhere/", we want to get "somewhere"'s |
| 315 | 315 | //parent folder, "/var/something/" |
| 316 | - $ds = strrpos( $file_or_folder_path, DS, -2 ); |
|
| 317 | - return substr( $file_or_folder_path, 0, $ds + 1 ); |
|
| 316 | + $ds = strrpos($file_or_folder_path, DS, -2); |
|
| 317 | + return substr($file_or_folder_path, 0, $ds + 1); |
|
| 318 | 318 | } |
| 319 | 319 | |
| 320 | - public static function ensure_folder_exists_recursively( $folder ) { |
|
| 320 | + public static function ensure_folder_exists_recursively($folder) { |
|
| 321 | 321 | |
| 322 | 322 | } |
| 323 | 323 | |
@@ -328,12 +328,12 @@ discard block |
||
| 328 | 328 | * @param string $full_file_path |
| 329 | 329 | * @return string |
| 330 | 330 | */ |
| 331 | - public static function get_file_contents( $full_file_path = '' ){ |
|
| 332 | - $full_file_path = EEH_File::standardise_directory_separators( $full_file_path ); |
|
| 333 | - if ( EEH_File::verify_filepath_and_permissions( $full_file_path, EEH_File::get_filename_from_filepath( $full_file_path ) , EEH_File::get_file_extension( $full_file_path ))) { |
|
| 331 | + public static function get_file_contents($full_file_path = '') { |
|
| 332 | + $full_file_path = EEH_File::standardise_directory_separators($full_file_path); |
|
| 333 | + if (EEH_File::verify_filepath_and_permissions($full_file_path, EEH_File::get_filename_from_filepath($full_file_path), EEH_File::get_file_extension($full_file_path))) { |
|
| 334 | 334 | // load WP_Filesystem and set file permissions |
| 335 | - $wp_filesystem = EEH_File::_get_wp_filesystem( $full_file_path ); |
|
| 336 | - return $wp_filesystem->get_contents(EEH_File::convert_local_filepath_to_remote_filepath( $full_file_path ) ); |
|
| 335 | + $wp_filesystem = EEH_File::_get_wp_filesystem($full_file_path); |
|
| 336 | + return $wp_filesystem->get_contents(EEH_File::convert_local_filepath_to_remote_filepath($full_file_path)); |
|
| 337 | 337 | } |
| 338 | 338 | return ''; |
| 339 | 339 | } |
@@ -348,26 +348,26 @@ discard block |
||
| 348 | 348 | * @throws EE_Error |
| 349 | 349 | * @return bool |
| 350 | 350 | */ |
| 351 | - public static function write_to_file( $full_file_path = '', $file_contents = '', $file_type = '' ){ |
|
| 352 | - $full_file_path = EEH_File::standardise_directory_separators( $full_file_path ); |
|
| 353 | - $file_type = ! empty( $file_type ) ? rtrim( $file_type, ' ' ) . ' ' : ''; |
|
| 354 | - $folder = EEH_File::remove_filename_from_filepath( $full_file_path ); |
|
| 355 | - if ( ! EEH_File::verify_is_writable( $folder, 'folder' )) { |
|
| 356 | - if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { |
|
| 357 | - $msg = sprintf( __( 'The %1$sfile located at "%2$s" is not writable.', 'event_espresso' ), $file_type, $full_file_path ); |
|
| 358 | - $msg .= EEH_File::_permissions_error_for_unreadable_filepath( $full_file_path ); |
|
| 359 | - throw new EE_Error( $msg ); |
|
| 351 | + public static function write_to_file($full_file_path = '', $file_contents = '', $file_type = '') { |
|
| 352 | + $full_file_path = EEH_File::standardise_directory_separators($full_file_path); |
|
| 353 | + $file_type = ! empty($file_type) ? rtrim($file_type, ' ').' ' : ''; |
|
| 354 | + $folder = EEH_File::remove_filename_from_filepath($full_file_path); |
|
| 355 | + if ( ! EEH_File::verify_is_writable($folder, 'folder')) { |
|
| 356 | + if (defined('WP_DEBUG') && WP_DEBUG) { |
|
| 357 | + $msg = sprintf(__('The %1$sfile located at "%2$s" is not writable.', 'event_espresso'), $file_type, $full_file_path); |
|
| 358 | + $msg .= EEH_File::_permissions_error_for_unreadable_filepath($full_file_path); |
|
| 359 | + throw new EE_Error($msg); |
|
| 360 | 360 | } |
| 361 | 361 | return FALSE; |
| 362 | 362 | } |
| 363 | 363 | // load WP_Filesystem and set file permissions |
| 364 | - $wp_filesystem = EEH_File::_get_wp_filesystem( $full_file_path ); |
|
| 364 | + $wp_filesystem = EEH_File::_get_wp_filesystem($full_file_path); |
|
| 365 | 365 | // write the file |
| 366 | - if ( ! $wp_filesystem->put_contents(EEH_File::convert_local_filepath_to_remote_filepath( $full_file_path ), $file_contents )) { |
|
| 367 | - if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { |
|
| 368 | - $msg = sprintf( __( 'The %1$sfile located at "%2$s" could not be written to.', 'event_espresso' ), $file_type, $full_file_path ); |
|
| 369 | - $msg .= EEH_File::_permissions_error_for_unreadable_filepath( $full_file_path, 'f' ); |
|
| 370 | - throw new EE_Error( $msg ); |
|
| 366 | + if ( ! $wp_filesystem->put_contents(EEH_File::convert_local_filepath_to_remote_filepath($full_file_path), $file_contents)) { |
|
| 367 | + if (defined('WP_DEBUG') && WP_DEBUG) { |
|
| 368 | + $msg = sprintf(__('The %1$sfile located at "%2$s" could not be written to.', 'event_espresso'), $file_type, $full_file_path); |
|
| 369 | + $msg .= EEH_File::_permissions_error_for_unreadable_filepath($full_file_path, 'f'); |
|
| 370 | + throw new EE_Error($msg); |
|
| 371 | 371 | } |
| 372 | 372 | return FALSE; |
| 373 | 373 | } |
@@ -382,9 +382,9 @@ discard block |
||
| 382 | 382 | * @param boolean|string $type 'd' for directory, 'f' for file |
| 383 | 383 | * @return boolean |
| 384 | 384 | */ |
| 385 | - public static function delete( $filepath, $recursive = false, $type = false ) { |
|
| 385 | + public static function delete($filepath, $recursive = false, $type = false) { |
|
| 386 | 386 | $wp_filesystem = EEH_File::_get_wp_filesystem(); |
| 387 | - return $wp_filesystem->delete( $filepath, $recursive, $type ) ? TRUE : FALSE; |
|
| 387 | + return $wp_filesystem->delete($filepath, $recursive, $type) ? TRUE : FALSE; |
|
| 388 | 388 | } |
| 389 | 389 | |
| 390 | 390 | |
@@ -396,9 +396,9 @@ discard block |
||
| 396 | 396 | * @param string $full_file_path |
| 397 | 397 | * @return bool |
| 398 | 398 | */ |
| 399 | - public static function exists( $full_file_path = '' ) { |
|
| 400 | - $wp_filesystem = EEH_File::_get_wp_filesystem( $full_file_path ); |
|
| 401 | - return $wp_filesystem->exists( EEH_File::convert_local_filepath_to_remote_filepath( $full_file_path ) ) ? TRUE : FALSE; |
|
| 399 | + public static function exists($full_file_path = '') { |
|
| 400 | + $wp_filesystem = EEH_File::_get_wp_filesystem($full_file_path); |
|
| 401 | + return $wp_filesystem->exists(EEH_File::convert_local_filepath_to_remote_filepath($full_file_path)) ? TRUE : FALSE; |
|
| 402 | 402 | } |
| 403 | 403 | |
| 404 | 404 | |
@@ -410,9 +410,9 @@ discard block |
||
| 410 | 410 | * @param string $full_file_path |
| 411 | 411 | * @return bool |
| 412 | 412 | */ |
| 413 | - public static function is_readable( $full_file_path = '' ) { |
|
| 414 | - $wp_filesystem = EEH_File::_get_wp_filesystem( $full_file_path ); |
|
| 415 | - if( $wp_filesystem->is_readable( EEH_File::convert_local_filepath_to_remote_filepath( $full_file_path ) ) ) { |
|
| 413 | + public static function is_readable($full_file_path = '') { |
|
| 414 | + $wp_filesystem = EEH_File::_get_wp_filesystem($full_file_path); |
|
| 415 | + if ($wp_filesystem->is_readable(EEH_File::convert_local_filepath_to_remote_filepath($full_file_path))) { |
|
| 416 | 416 | return true; |
| 417 | 417 | } else { |
| 418 | 418 | return false; |
@@ -428,8 +428,8 @@ discard block |
||
| 428 | 428 | * @param string $full_file_path |
| 429 | 429 | * @return string |
| 430 | 430 | */ |
| 431 | - public static function remove_filename_from_filepath( $full_file_path = '' ) { |
|
| 432 | - return pathinfo( $full_file_path, PATHINFO_DIRNAME ); |
|
| 431 | + public static function remove_filename_from_filepath($full_file_path = '') { |
|
| 432 | + return pathinfo($full_file_path, PATHINFO_DIRNAME); |
|
| 433 | 433 | } |
| 434 | 434 | |
| 435 | 435 | |
@@ -439,8 +439,8 @@ discard block |
||
| 439 | 439 | * @param string $full_file_path |
| 440 | 440 | * @return string |
| 441 | 441 | */ |
| 442 | - public static function get_filename_from_filepath( $full_file_path = '' ) { |
|
| 443 | - return pathinfo( $full_file_path, PATHINFO_BASENAME ); |
|
| 442 | + public static function get_filename_from_filepath($full_file_path = '') { |
|
| 443 | + return pathinfo($full_file_path, PATHINFO_BASENAME); |
|
| 444 | 444 | } |
| 445 | 445 | |
| 446 | 446 | |
@@ -450,8 +450,8 @@ discard block |
||
| 450 | 450 | * @param string $full_file_path |
| 451 | 451 | * @return string |
| 452 | 452 | */ |
| 453 | - public static function get_file_extension( $full_file_path = '' ) { |
|
| 454 | - return pathinfo( $full_file_path, PATHINFO_EXTENSION ); |
|
| 453 | + public static function get_file_extension($full_file_path = '') { |
|
| 454 | + return pathinfo($full_file_path, PATHINFO_EXTENSION); |
|
| 455 | 455 | } |
| 456 | 456 | |
| 457 | 457 | |
@@ -461,10 +461,10 @@ discard block |
||
| 461 | 461 | * @param string $folder |
| 462 | 462 | * @return bool |
| 463 | 463 | */ |
| 464 | - public static function add_htaccess_deny_from_all( $folder = '' ) { |
|
| 465 | - $folder = EEH_File::standardise_and_end_with_directory_separator( $folder ); |
|
| 466 | - if ( ! EEH_File::exists( $folder . '.htaccess' ) ) { |
|
| 467 | - if ( ! EEH_File::write_to_file( $folder . '.htaccess', 'deny from all', '.htaccess' )) { |
|
| 464 | + public static function add_htaccess_deny_from_all($folder = '') { |
|
| 465 | + $folder = EEH_File::standardise_and_end_with_directory_separator($folder); |
|
| 466 | + if ( ! EEH_File::exists($folder.'.htaccess')) { |
|
| 467 | + if ( ! EEH_File::write_to_file($folder.'.htaccess', 'deny from all', '.htaccess')) { |
|
| 468 | 468 | return FALSE; |
| 469 | 469 | } |
| 470 | 470 | } |
@@ -477,10 +477,10 @@ discard block |
||
| 477 | 477 | * @param string $folder |
| 478 | 478 | * @return boolean |
| 479 | 479 | */ |
| 480 | - public static function add_index_file( $folder ) { |
|
| 481 | - $folder = EEH_File::standardise_and_end_with_directory_separator( $folder ); |
|
| 482 | - if ( ! EEH_File::exists( $folder . 'index.php' ) ) { |
|
| 483 | - if ( ! EEH_File::write_to_file( $folder . 'index.php', 'You are not permitted to read from this folder', '.php' )) { |
|
| 480 | + public static function add_index_file($folder) { |
|
| 481 | + $folder = EEH_File::standardise_and_end_with_directory_separator($folder); |
|
| 482 | + if ( ! EEH_File::exists($folder.'index.php')) { |
|
| 483 | + if ( ! EEH_File::write_to_file($folder.'index.php', 'You are not permitted to read from this folder', '.php')) { |
|
| 484 | 484 | return false; |
| 485 | 485 | } |
| 486 | 486 | } |
@@ -495,11 +495,11 @@ discard block |
||
| 495 | 495 | * @param string $file_path |
| 496 | 496 | * @return string |
| 497 | 497 | */ |
| 498 | - public static function get_classname_from_filepath_with_standard_filename( $file_path ){ |
|
| 498 | + public static function get_classname_from_filepath_with_standard_filename($file_path) { |
|
| 499 | 499 | //extract file from path |
| 500 | - $filename = basename( $file_path ); |
|
| 500 | + $filename = basename($file_path); |
|
| 501 | 501 | //now remove the first period and everything after |
| 502 | - $pos_of_first_period = strpos( $filename,'.' ); |
|
| 502 | + $pos_of_first_period = strpos($filename, '.'); |
|
| 503 | 503 | return substr($filename, 0, $pos_of_first_period); |
| 504 | 504 | } |
| 505 | 505 | |
@@ -511,8 +511,8 @@ discard block |
||
| 511 | 511 | * @param string $file_path |
| 512 | 512 | * @return string |
| 513 | 513 | */ |
| 514 | - public static function standardise_directory_separators( $file_path ){ |
|
| 515 | - return str_replace( array( '\\', '/' ), DS, $file_path ); |
|
| 514 | + public static function standardise_directory_separators($file_path) { |
|
| 515 | + return str_replace(array('\\', '/'), DS, $file_path); |
|
| 516 | 516 | } |
| 517 | 517 | |
| 518 | 518 | |
@@ -523,8 +523,8 @@ discard block |
||
| 523 | 523 | * @param string $file_path |
| 524 | 524 | * @return string |
| 525 | 525 | */ |
| 526 | - public static function end_with_directory_separator( $file_path ){ |
|
| 527 | - return rtrim( $file_path, '/\\' ) . DS; |
|
| 526 | + public static function end_with_directory_separator($file_path) { |
|
| 527 | + return rtrim($file_path, '/\\').DS; |
|
| 528 | 528 | } |
| 529 | 529 | |
| 530 | 530 | |
@@ -534,8 +534,8 @@ discard block |
||
| 534 | 534 | * @param $file_path |
| 535 | 535 | * @return string |
| 536 | 536 | */ |
| 537 | - public static function standardise_and_end_with_directory_separator( $file_path ){ |
|
| 538 | - return self::end_with_directory_separator( self::standardise_directory_separators( $file_path )); |
|
| 537 | + public static function standardise_and_end_with_directory_separator($file_path) { |
|
| 538 | + return self::end_with_directory_separator(self::standardise_directory_separators($file_path)); |
|
| 539 | 539 | } |
| 540 | 540 | |
| 541 | 541 | |
@@ -552,21 +552,21 @@ discard block |
||
| 552 | 552 | * if $index_numerically == FALSE (Default) keys are what the class names SHOULD be; |
| 553 | 553 | * and values are their filepaths |
| 554 | 554 | */ |
| 555 | - public static function get_contents_of_folders( $folder_paths = array(), $index_numerically = FALSE ){ |
|
| 555 | + public static function get_contents_of_folders($folder_paths = array(), $index_numerically = FALSE) { |
|
| 556 | 556 | $class_to_folder_path = array(); |
| 557 | - foreach( $folder_paths as $folder_path ){ |
|
| 558 | - $folder_path = self::standardise_and_end_with_directory_separator( $folder_path ); |
|
| 557 | + foreach ($folder_paths as $folder_path) { |
|
| 558 | + $folder_path = self::standardise_and_end_with_directory_separator($folder_path); |
|
| 559 | 559 | // load WP_Filesystem and set file permissions |
| 560 | - $files_in_folder = glob( $folder_path . '*' ); |
|
| 560 | + $files_in_folder = glob($folder_path.'*'); |
|
| 561 | 561 | $class_to_folder_path = array(); |
| 562 | - if ( $files_in_folder ) { |
|
| 563 | - foreach( $files_in_folder as $file_path ){ |
|
| 562 | + if ($files_in_folder) { |
|
| 563 | + foreach ($files_in_folder as $file_path) { |
|
| 564 | 564 | //only add files, not folders |
| 565 | - if ( ! is_dir( $file_path )) { |
|
| 566 | - if ( $index_numerically ) { |
|
| 565 | + if ( ! is_dir($file_path)) { |
|
| 566 | + if ($index_numerically) { |
|
| 567 | 567 | $class_to_folder_path[] = $file_path; |
| 568 | 568 | } else { |
| 569 | - $classname = self::get_classname_from_filepath_with_standard_filename( $file_path ); |
|
| 569 | + $classname = self::get_classname_from_filepath_with_standard_filename($file_path); |
|
| 570 | 570 | $class_to_folder_path[$classname] = $file_path; |
| 571 | 571 | } |
| 572 | 572 | } |
@@ -586,39 +586,39 @@ discard block |
||
| 586 | 586 | * @return boolean success |
| 587 | 587 | * @throws EE_Error |
| 588 | 588 | */ |
| 589 | - public static function copy( $source_file, $destination_file, $overwrite = FALSE ){ |
|
| 590 | - $full_source_path = EEH_File::standardise_directory_separators( $source_file ); |
|
| 591 | - if( ! EEH_File::exists( $full_source_path ) ){ |
|
| 592 | - if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { |
|
| 593 | - $msg = sprintf( __( 'The file located at "%2$s" is not readable or doesn\'t exist.', 'event_espresso' ), $full_source_path ); |
|
| 594 | - $msg .= EEH_File::_permissions_error_for_unreadable_filepath( $full_source_path ); |
|
| 595 | - throw new EE_Error( $msg ); |
|
| 589 | + public static function copy($source_file, $destination_file, $overwrite = FALSE) { |
|
| 590 | + $full_source_path = EEH_File::standardise_directory_separators($source_file); |
|
| 591 | + if ( ! EEH_File::exists($full_source_path)) { |
|
| 592 | + if (defined('WP_DEBUG') && WP_DEBUG) { |
|
| 593 | + $msg = sprintf(__('The file located at "%2$s" is not readable or doesn\'t exist.', 'event_espresso'), $full_source_path); |
|
| 594 | + $msg .= EEH_File::_permissions_error_for_unreadable_filepath($full_source_path); |
|
| 595 | + throw new EE_Error($msg); |
|
| 596 | 596 | } |
| 597 | 597 | return FALSE; |
| 598 | 598 | } |
| 599 | 599 | |
| 600 | - $full_dest_path = EEH_File::standardise_directory_separators( $destination_file ); |
|
| 601 | - $folder = EEH_File::remove_filename_from_filepath( $full_dest_path ); |
|
| 602 | - if ( ! EEH_File::verify_is_writable( $folder, 'folder' )) { |
|
| 603 | - if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { |
|
| 604 | - $msg = sprintf( __( 'The file located at "%2$s" is not writable.', 'event_espresso' ), $full_dest_path ); |
|
| 605 | - $msg .= EEH_File::_permissions_error_for_unreadable_filepath( $full_dest_path ); |
|
| 606 | - throw new EE_Error( $msg ); |
|
| 600 | + $full_dest_path = EEH_File::standardise_directory_separators($destination_file); |
|
| 601 | + $folder = EEH_File::remove_filename_from_filepath($full_dest_path); |
|
| 602 | + if ( ! EEH_File::verify_is_writable($folder, 'folder')) { |
|
| 603 | + if (defined('WP_DEBUG') && WP_DEBUG) { |
|
| 604 | + $msg = sprintf(__('The file located at "%2$s" is not writable.', 'event_espresso'), $full_dest_path); |
|
| 605 | + $msg .= EEH_File::_permissions_error_for_unreadable_filepath($full_dest_path); |
|
| 606 | + throw new EE_Error($msg); |
|
| 607 | 607 | } |
| 608 | 608 | return FALSE; |
| 609 | 609 | } |
| 610 | 610 | |
| 611 | 611 | // load WP_Filesystem and set file permissions |
| 612 | - $wp_filesystem = EEH_File::_get_wp_filesystem( $destination_file ); |
|
| 612 | + $wp_filesystem = EEH_File::_get_wp_filesystem($destination_file); |
|
| 613 | 613 | // write the file |
| 614 | 614 | if ( ! $wp_filesystem->copy( |
| 615 | - EEH_File::convert_local_filepath_to_remote_filepath( $full_source_path ), |
|
| 616 | - EEH_File::convert_local_filepath_to_remote_filepath( $full_dest_path ), |
|
| 615 | + EEH_File::convert_local_filepath_to_remote_filepath($full_source_path), |
|
| 616 | + EEH_File::convert_local_filepath_to_remote_filepath($full_dest_path), |
|
| 617 | 617 | $overwrite )) { |
| 618 | - if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { |
|
| 619 | - $msg = sprintf( __( 'Attempted writing to file %1$s, but could not, probably because of permissions issues', 'event_espresso' ), $full_source_path ); |
|
| 620 | - $msg .= EEH_File::_permissions_error_for_unreadable_filepath( $full_source_path, 'f' ); |
|
| 621 | - throw new EE_Error( $msg ); |
|
| 618 | + if (defined('WP_DEBUG') && WP_DEBUG) { |
|
| 619 | + $msg = sprintf(__('Attempted writing to file %1$s, but could not, probably because of permissions issues', 'event_espresso'), $full_source_path); |
|
| 620 | + $msg .= EEH_File::_permissions_error_for_unreadable_filepath($full_source_path, 'f'); |
|
| 621 | + throw new EE_Error($msg); |
|
| 622 | 622 | } |
| 623 | 623 | return FALSE; |
| 624 | 624 | } |
@@ -630,9 +630,9 @@ discard block |
||
| 630 | 630 | * @param string $filepath |
| 631 | 631 | * @return boolean |
| 632 | 632 | */ |
| 633 | - public static function is_in_uploads_folder( $filepath ) { |
|
| 633 | + public static function is_in_uploads_folder($filepath) { |
|
| 634 | 634 | $uploads = wp_upload_dir(); |
| 635 | - return strpos( $filepath, $uploads[ 'basedir' ] ) === 0 ? true : false; |
|
| 635 | + return strpos($filepath, $uploads['basedir']) === 0 ? true : false; |
|
| 636 | 636 | } |
| 637 | 637 | |
| 638 | 638 | /** |
@@ -646,9 +646,9 @@ discard block |
||
| 646 | 646 | * @return string the remote filepath (eg the filepath the filesystem method, eg |
| 647 | 647 | * ftp or ssh, will use to access the folder |
| 648 | 648 | */ |
| 649 | - public static function convert_local_filepath_to_remote_filepath( $local_filepath ) { |
|
| 650 | - $wp_filesystem = EEH_File::_get_wp_filesystem( $local_filepath ); |
|
| 651 | - return str_replace( WP_CONTENT_DIR . DS, $wp_filesystem->wp_content_dir(), $local_filepath ); |
|
| 649 | + public static function convert_local_filepath_to_remote_filepath($local_filepath) { |
|
| 650 | + $wp_filesystem = EEH_File::_get_wp_filesystem($local_filepath); |
|
| 651 | + return str_replace(WP_CONTENT_DIR.DS, $wp_filesystem->wp_content_dir(), $local_filepath); |
|
| 652 | 652 | } |
| 653 | 653 | } |
| 654 | 654 | // End of file EEH_File.helper.php |