Ticket #10913: 10913.diff
File 10913.diff, 6.6 KB (added by , 14 years ago) |
---|
-
wp-admin/includes/file.php
773 773 774 774 foreach ( (array) $dirlist as $filename => $fileinfo ) { 775 775 if ( 'f' == $fileinfo['type'] ) { 776 if ( ! $wp_filesystem->copy($from . $filename, $to . $filename, true ) ) {776 if ( ! $wp_filesystem->copy($from . $filename, $to . $filename, true, FS_CHMOD_FILE) ) { 777 777 // If copy failed, chmod file to 0644 and try again. 778 778 $wp_filesystem->chmod($to . $filename, 0644); 779 if ( ! $wp_filesystem->copy($from . $filename, $to . $filename, true ) )779 if ( ! $wp_filesystem->copy($from . $filename, $to . $filename, true, FS_CHMOD_FILE) ) 780 780 return new WP_Error('copy_failed', __('Could not copy file.'), $to . $filename); 781 781 } 782 782 $wp_filesystem->chmod($to . $filename, FS_CHMOD_FILE); -
wp-admin/includes/class-wp-filesystem-ftpsockets.php
193 193 return $dir[$file]['group']; 194 194 } 195 195 196 function copy($source, $destination, $overwrite = false 196 function copy($source, $destination, $overwrite = false, $mode = false) { 197 197 if ( ! $overwrite && $this->exists($destination) ) 198 198 return false; 199 199 … … 201 201 if ( false === $content ) 202 202 return false; 203 203 204 return $this->put_contents($destination, $content );204 return $this->put_contents($destination, $content, $mode); 205 205 } 206 206 207 207 function move($source, $destination, $overwrite = false ) { 208 208 return $this->ftp->rename($source, $destination); 209 209 } 210 210 211 function delete($file, $recursive = false 211 function delete($file, $recursive = false, $type = false) { 212 212 if ( empty($file) ) 213 213 return false; 214 if ( $this->is_file($file) )214 if ( 'f' == $type || $this->is_file($file) ) 215 215 return $this->ftp->delete($file); 216 216 if ( !$recursive ) 217 217 return $this->ftp->rmdir($file); -
wp-admin/includes/class-wp-filesystem-direct.php
193 193 return $grouparray['name']; 194 194 } 195 195 196 function copy($source, $destination, $overwrite = false ) {196 function copy($source, $destination, $overwrite = false, $mode = false) { 197 197 if ( ! $overwrite && $this->exists($destination) ) 198 198 return false; 199 199 … … 216 216 } 217 217 } 218 218 219 function delete($file, $recursive = false ) {219 function delete($file, $recursive = false, $type = false) { 220 220 if ( empty($file) ) //Some filesystems report this as /, which can cause non-expected recursive deletion of all files in the filesystem. 221 221 return false; 222 222 $file = str_replace('\\', '/', $file); //for win32, occasional problems deleteing files otherwise 223 223 224 if ( $this->is_file($file) )224 if ( 'f' == $type || $this->is_file($file) ) 225 225 return @unlink($file); 226 226 if ( ! $recursive && $this->is_dir($file) ) 227 227 return @rmdir($file); … … 233 233 $retval = true; 234 234 if ( is_array($filelist) ) //false if no files, So check first. 235 235 foreach ($filelist as $filename => $fileinfo) 236 if ( ! $this->delete($file . $filename, $recursive ) )236 if ( ! $this->delete($file . $filename, $recursive, $fileinfo['type']) ) 237 237 $retval = false; 238 238 239 239 if ( file_exists($file) && ! @rmdir($file) ) -
wp-admin/includes/class-wp-filesystem-ftpext.php
183 183 $dir = $this->dirlist($file); 184 184 return $dir[$file]['group']; 185 185 } 186 function copy($source, $destination, $overwrite = false 186 function copy($source, $destination, $overwrite = false, $mode = false) { 187 187 if ( ! $overwrite && $this->exists($destination) ) 188 188 return false; 189 189 $content = $this->get_contents($source); 190 190 if ( false === $content) 191 191 return false; 192 return $this->put_contents($destination, $content );192 return $this->put_contents($destination, $content, $mode); 193 193 } 194 194 function move($source, $destination, $overwrite = false) { 195 195 return ftp_rename($this->link, $source, $destination); 196 196 } 197 197 198 function delete($file, $recursive = false 198 function delete($file, $recursive = false, $type = false) { 199 199 if ( empty($file) ) 200 200 return false; 201 if ( $this->is_file($file) )201 if ( 'f' == $type || $this->is_file($file) ) 202 202 return @ftp_delete($this->link, $file); 203 203 if ( !$recursive ) 204 204 return @ftp_rmdir($this->link, $file); … … 206 206 $filelist = $this->dirlist( trailingslashit($file) ); 207 207 if ( !empty($filelist) ) 208 208 foreach ( $filelist as $delete_file ) 209 $this->delete( trailingslashit($file) . $delete_file['name'], $recursive );209 $this->delete( trailingslashit($file) . $delete_file['name'], $recursive, $delete_file['type'] ); 210 210 return @ftp_rmdir($this->link, $file); 211 211 } 212 212 -
wp-admin/includes/class-wp-filesystem-ssh2.php
238 238 return $grouparray['name']; 239 239 } 240 240 241 function copy($source, $destination, $overwrite = false 241 function copy($source, $destination, $overwrite = false, $mode = false) { 242 242 if ( ! $overwrite && $this->exists($destination) ) 243 243 return false; 244 244 $content = $this->get_contents($source); 245 245 if ( false === $content) 246 246 return false; 247 return $this->put_contents($destination, $content );247 return $this->put_contents($destination, $content, $mode); 248 248 } 249 249 250 250 function move($source, $destination, $overwrite = false) { 251 251 return @ssh2_sftp_rename($this->link, $source, $destination); 252 252 } 253 253 254 function delete($file, $recursive = false ) {255 if ( $this->is_file($file) )254 function delete($file, $recursive = false, $type = false) { 255 if ( 'f' == $type || $this->is_file($file) ) 256 256 return ssh2_sftp_unlink($this->sftp_link, $file); 257 257 if ( ! $recursive ) 258 258 return ssh2_sftp_rmdir($this->sftp_link, $file); 259 259 $filelist = $this->dirlist($file); 260 260 if ( is_array($filelist) ) { 261 261 foreach ( $filelist as $filename => $fileinfo) { 262 $this->delete($file . '/' . $filename, $recursive );262 $this->delete($file . '/' . $filename, $recursive, $fileinfo['type']); 263 263 } 264 264 } 265 265 return ssh2_sftp_rmdir($this->sftp_link, $file);