Make WordPress Core

Changeset 8018


Ignore:
Timestamp:
05/30/2008 04:14:05 PM (17 years ago)
Author:
ryan
Message:

WP_Filesystem updates from DD32. See #7059

Location:
trunk/wp-admin/includes
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/class-wp-filesystem-direct.php

    r8009 r8018  
    55    var $errors = array();
    66    function WP_Filesystem_Direct($arg) {
     7        $this->method = 'direct';
    78        $this->errors = new WP_Error();
    89        $this->permission = umask();
     
    2021        return @file($file);
    2122    }
    22     function put_contents($file,$contents,$mode=false,$type='') {
    23         if ( ! ($fp = @fopen($file,'w' . $type)) )
    24             return false;
    25         @fwrite($fp,$contents);
     23    function put_contents($file, $contents, $mode = false, $type = '') {
     24        if ( ! ($fp = @fopen($file, 'w' . $type)) )
     25            return false;
     26        @fwrite($fp, $contents);
    2627        @fclose($fp);
    2728        $this->chmod($file,$mode);
     
    3435        return @chdir($dir);
    3536    }
    36     function chgrp($file,$group,$recursive=false) {
     37    function chgrp($file, $group, $recursive = false) {
    3738        if( ! $this->exists($file) )
    3839            return false;
     
    4950        return true;
    5051    }
    51     function chmod($file,$mode=false,$recursive=false) {
     52    function chmod($file, $mode = false, $recursive = false) {
    5253        if( ! $mode )
    5354            $mode = $this->permission;
  • trunk/wp-admin/includes/class-wp-filesystem-ftpsockets.php

    r8009 r8018  
    11<?php
    2 class WP_Filesystem_ftpsockets{
     2class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
    33    var $ftp = false;
    44    var $timeout = 5;
     
    8787    }
    8888
    89     function get_contents($file,$type='',$resumepos=0){
     89    function get_contents($file, $type = '', $resumepos = 0){
    9090        if( ! $this->exists($file) )
    9191            return false;
    9292
    9393        if( empty($type) ){
    94             $extension = substr(strrchr($file, "."), 1);
     94            $extension = substr(strrchr($file, '.'), 1);
    9595            $type = isset($this->filetypes[ $extension ]) ? $this->filetypes[ $extension ] : FTP_AUTOASCII;
    9696        }
    9797        $this->ftp->SetType($type);
    98         $temp = tmpfile();
    99         if ( ! $temp )
    100             return false;
    101         if ( ! $this->ftp->fget($temp, $file) ) {
    102             fclose($temp);
     98        $temp = wp_tempnam( $file );
     99        if ( ! $temphandle = fopen($temp, 'w+') )
     100            return false;
     101        if ( ! $this->ftp->fget($temphandle, $file) ) {
     102            fclose($temphandle);
     103            unlink($temp);
    103104            return ''; //Blank document, File does exist, Its just blank.
    104105        }
    105         fseek($temp, 0); //Skip back to the start of the file being written to
     106        fseek($temphandle, 0); //Skip back to the start of the file being written to
    106107        $contents = '';
    107         while ( !feof($temp) )
    108             $contents .= fread($temp, 8192);
    109         fclose($temp);
     108        while ( ! feof($temphandle) )
     109            $contents .= fread($temphandle, 8192);
     110        fclose($temphandle);
     111        unlink($temp);
    110112        return $contents;
    111113    }
    112114
    113115    function get_contents_array($file){
    114         return explode("\n",$this->get_contents($file));
    115     }
    116 
    117     function put_contents($file,$contents,$type=''){
     116        return explode("\n", $this->get_contents($file) );
     117    }
     118
     119    function put_contents($file, $contents, $type = '' ) {
    118120        if( empty($type) ){
    119             $extension = substr(strrchr($file, "."), 1);
    120             $type = isset($this->filetypes[ $extension ]) ? $this->filetypes[ $extension ] : FTP_ASCII;
     121            $extension = substr(strrchr($file, '.'), 1);
     122            $type = isset($this->filetypes[ $extension ]) ? $this->filetypes[ $extension ] : FTP_AUTOASCII;
    121123        }
    122124        $this->ftp->SetType($type);
    123125
    124         $temp = tmpfile();
    125         if ( ! $temp )
    126             return false;
    127         fwrite($temp,$contents);
    128         fseek($temp, 0); //Skip back to the start of the file being written to
    129         $ret = $this->ftp->fput($file, $temp);
    130         fclose($temp);
     126        $temp = wp_tempnam( $file );
     127        if ( ! $temphandle = fopen($temp, 'w+') ){
     128            unlink($temp);     
     129            return false;
     130        }
     131        fwrite($temphandle, $contents);
     132        fseek($temphandle, 0); //Skip back to the start of the file being written to
     133        $ret = $this->ftp->fput($file, $temphandle);
     134        fclose($temphandle);
     135        unlink($temp);
    131136        return $ret;
    132137    }
    133138
    134     function cwd(){
     139    function cwd() {
    135140        $cwd = $this->ftp->pwd();
    136141        if( $cwd )
     
    139144    }
    140145
    141     function chdir($file){
     146    function chdir($file) {
    142147        return $this->ftp->chdir($file);
    143148    }
    144149   
    145     function chgrp($file,$group,$recursive=false){
    146         return false;
    147     }
    148 
    149     function chmod($file,$mode=false,$recursive=false){
     150    function chgrp($file, $group, $recursive = false ) {
     151        return false;
     152    }
     153
     154    function chmod($file, $mode = false, $recursive = false ){
    150155        if( ! $mode )
    151156            $mode = $this->permission;
     
    154159        //if( ! $this->exists($file) )
    155160        //  return false;
    156         if( ! $recursive || ! $this->is_dir($file) ){
     161        if( ! $recursive || ! $this->is_dir($file) ) {
    157162            return $this->ftp->chmod($file,$mode);
    158163        }
     
    160165        $filelist = $this->dirlist($file);
    161166        foreach($filelist as $filename){
    162             $this->chmod($file.'/'.$filename,$mode,$recursive);
    163         }
    164         return true;
    165     }
    166 
    167     function chown($file,$owner,$recursive=false){
    168         return false;
    169     }
    170 
    171     function owner($file){
     167            $this->chmod($file . '/' . $filename, $mode, $recursive);
     168        }
     169        return true;
     170    }
     171
     172    function chown($file, $owner, $recursive = false ) {
     173        return false;
     174    }
     175
     176    function owner($file) {
    172177        $dir = $this->dirlist($file);
    173178        return $dir[$file]['owner'];
    174179    }
    175180
    176     function getchmod($file){
     181    function getchmod($file) {
    177182        $dir = $this->dirlist($file);
    178183        return $dir[$file]['permsn'];
    179184    }
    180185
    181     function gethchmod($file){
    182         //From the PHP.net page for ...?
    183         $perms = $this->getchmod($file);
    184         if (($perms & 0xC000) == 0xC000) {
    185             // Socket
    186             $info = 's';
    187         } elseif (($perms & 0xA000) == 0xA000) {
    188             // Symbolic Link
    189             $info = 'l';
    190         } elseif (($perms & 0x8000) == 0x8000) {
    191             // Regular
    192             $info = '-';
    193         } elseif (($perms & 0x6000) == 0x6000) {
    194             // Block special
    195             $info = 'b';
    196         } elseif (($perms & 0x4000) == 0x4000) {
    197             // Directory
    198             $info = 'd';
    199         } elseif (($perms & 0x2000) == 0x2000) {
    200             // Character special
    201             $info = 'c';
    202         } elseif (($perms & 0x1000) == 0x1000) {
    203             // FIFO pipe
    204             $info = 'p';
    205         } else {
    206             // Unknown
    207             $info = 'u';
    208         }
    209 
    210         // Owner
    211         $info .= (($perms & 0x0100) ? 'r' : '-');
    212         $info .= (($perms & 0x0080) ? 'w' : '-');
    213         $info .= (($perms & 0x0040) ?
    214                     (($perms & 0x0800) ? 's' : 'x' ) :
    215                     (($perms & 0x0800) ? 'S' : '-'));
    216 
    217         // Group
    218         $info .= (($perms & 0x0020) ? 'r' : '-');
    219         $info .= (($perms & 0x0010) ? 'w' : '-');
    220         $info .= (($perms & 0x0008) ?
    221                     (($perms & 0x0400) ? 's' : 'x' ) :
    222                     (($perms & 0x0400) ? 'S' : '-'));
    223 
    224         // World
    225         $info .= (($perms & 0x0004) ? 'r' : '-');
    226         $info .= (($perms & 0x0002) ? 'w' : '-');
    227         $info .= (($perms & 0x0001) ?
    228                     (($perms & 0x0200) ? 't' : 'x' ) :
    229                     (($perms & 0x0200) ? 'T' : '-'));
    230         return $info;
    231     }
    232 
    233     function getnumchmodfromh($mode) {
    234         $realmode = "";
    235         $legal =  array("","w","r","x","-");
    236         $attarray = preg_split("//",$mode);
    237         for($i=0;$i<count($attarray);$i++){
    238            if($key = array_search($attarray[$i],$legal)){
    239                $realmode .= $legal[$key];
    240            }
    241         }
    242         $mode = str_pad($realmode,9,'-');
    243         $trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
    244         $mode = strtr($mode,$trans);
    245         $newmode = '';
    246         $newmode .= $mode[0]+$mode[1]+$mode[2];
    247         $newmode .= $mode[3]+$mode[4]+$mode[5];
    248         $newmode .= $mode[6]+$mode[7]+$mode[8];
    249         return $newmode;
    250     }
    251 
    252     function group($file){
     186    function group($file) {
    253187        $dir = $this->dirlist($file);
    254188        return $dir[$file]['group'];
    255189    }
    256190
    257     function copy($source,$destination,$overwrite=false){
     191    function copy($source, $destination, $overwrite = false ) {
    258192        if( ! $overwrite && $this->exists($destination) )
    259193            return false;
Note: See TracChangeset for help on using the changeset viewer.