WordPress.org

Make WordPress Core

Ticket #10889: 10889.2.diff

File 10889.2.diff, 4.2 KB (added by dd32, 4 years ago)
  • wp-admin/includes/class-wp-filesystem-direct.php

     
    5454        /** 
    5555         * Write a string to a file 
    5656         * 
    57          * @param $file string Path to the file where to write the data. 
     57         * @param $file string Remote path to the file where to write the data. 
    5858         * @param $contents string The data to write. 
    5959         * @param $mode int (optional) The file permissions as octal number, usually 0644. 
    60          * @param $type string (optional) Specifies additional type of access you require to the file. 
     60         * @param $type string (optional) Specifies additional type of access you require to the file. Only used by the FTP transports. 
    6161         * @return bool False upon failure. 
    6262         */ 
    63         function put_contents($file, $contents, $mode = false, $type = '') { 
     63        function put_contents($file, $contents, $mode = false, $type = null) { 
    6464                if ( ! ($fp = @fopen($file, 'w' . $type)) ) 
    6565                        return false; 
    6666                @fwrite($fp, $contents); 
  • wp-admin/includes/class-wp-filesystem-ftpext.php

     
    111111        function get_contents_array($file) { 
    112112                return explode("\n", $this->get_contents($file)); 
    113113        } 
    114         function put_contents($file, $contents, $type = '' ) { 
     114         
     115        function put_contents($file, $contents, $mode = false, $type = null ) { 
    115116                if ( empty($type) ) 
    116117                        $type = $this->is_binary($contents) ? FTP_BINARY : FTP_ASCII; 
    117118 
     
    125126                $ret = @ftp_fput($this->link, $file, $temp, $type); 
    126127 
    127128                fclose($temp); 
     129 
     130                $this->chmod($file, $mode); 
     131 
    128132                return $ret; 
    129133        } 
    130134        function cwd() { 
  • wp-admin/includes/class-wp-filesystem-ftpsockets.php

     
    115115                return explode("\n", $this->get_contents($file) ); 
    116116        } 
    117117 
    118         function put_contents($file, $contents, $type = '' ) { 
     118        function put_contents($file, $contents, $mode = false, $type = null ) { 
    119119                if ( empty($type) ) 
    120120                        $type = $this->is_binary($contents) ? FTP_BINARY : FTP_ASCII; 
    121121 
    122122                $this->ftp->SetType($type); 
    123123 
    124124                $temp = wp_tempnam( $file ); 
    125                 if ( ! $temphandle = fopen($temp, 'w+') ) { 
     125                if ( ! $temphandle = @fopen($temp, 'w+') ) { 
    126126                        unlink($temp); 
    127127                        return false; 
    128128                } 
     
    134134 
    135135                fclose($temphandle); 
    136136                unlink($temp); 
     137 
     138                $this->chmod($file, $mode); 
     139 
    137140                return $ret; 
    138141        } 
    139142 
  • wp-admin/includes/class-wp-filesystem-ssh2.php

     
    160160                return file('ssh2.sftp://' . $this->sftp_link . '/' . $file); 
    161161        } 
    162162 
    163         function put_contents($file, $contents, $type = '' ) { 
     163        function put_contents($file, $contents, $mode = false, $type = null ) { 
    164164                $file = ltrim($file, '/'); 
    165                 return false !== file_put_contents('ssh2.sftp://' . $this->sftp_link . '/' . $file, $contents); 
     165                $ret = file_put_contents('ssh2.sftp://' . $this->sftp_link . '/' . $file, $contents); 
     166                 
     167                $this->chmod($file, $mode); 
     168                 
     169                return false !== $ret; 
    166170        } 
    167171 
    168172        function cwd() { 
  • wp-admin/includes/file.php

     
    546546 
    547547                // We've made sure the folders are there, so let's extract the file now: 
    548548                if ( ! $file['folder'] ) { 
    549                         if ( !$fs->put_contents( $to . $file['filename'], $file['content']) ) 
     549                        if ( !$fs->put_contents( $to . $file['filename'], $file['content'], FS_CHMOD_FILE) ) 
    550550                                return new WP_Error('copy_failed', __('Could not copy file'), $to . $file['filename']); 
    551                         $fs->chmod($to . $file['filename'], FS_CHMOD_FILE); 
    552551                } 
    553552        } 
    554553        return true;