WordPress.org

Make WordPress Core

Changeset 7783


Ignore:
Timestamp:
04/23/08 00:51:45 (7 years ago)
Author:
ryan
Message:

Direct file system manip fixes, should fix .svn upgrade problem. Hat tip: DD32.

File:
1 edited

Legend:

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

    r7415 r7783  
    2727    } 
    2828    function put_contents($file,$contents,$mode=false,$type=''){ 
    29         $fp=@fopen($file,'w'.$type); 
    30         if (!$fp) 
     29        if ( ! ($fp = @fopen($file,'w'.$type)) ) 
    3130            return false; 
    3231        @fwrite($fp,$contents); 
     
    3736    function cwd(){ 
    3837        return @getcwd(); 
     38    } 
     39    function chdir($dir){ 
     40        return @chdir($dir); 
    3941    } 
    4042    function chgrp($file,$group,$recursive=false){ 
     
    4648            return @chgrp($file,$group); 
    4749        //Is a directory, and we want recursive 
     50        $file = trailingshashit($file); 
    4851        $filelist = $this->dirlist($file); 
    49         foreach($filelist as $filename){ 
    50             $this->chgrp($file.'/'.$filename,$group,$recursive); 
    51         } 
     52        foreach($filelist as $filename) 
     53            $this->chgrp($file . $filename, $group, $recursive); 
     54 
    5255        return true; 
    5356    } 
     
    6265            return @chmod($file,$mode); 
    6366        //Is a directory, and we want recursive 
     67        $file = trailingshashit($file); 
    6468        $filelist = $this->dirlist($file); 
    65         foreach($filelist as $filename){ 
    66             $this->chmod($file.'/'.$filename,$mode,$recursive); 
    67         } 
     69        foreach($filelist as $filename) 
     70            $this->chmod($file . $filename, $mode, $recursive); 
     71 
    6872        return true; 
    6973    } 
     
    8387    } 
    8488    function owner($file){ 
    85         $owneruid=@fileowner($file); 
     89        $owneruid = @fileowner($file); 
    8690        if( ! $owneruid ) 
    8791            return false; 
    8892        if( !function_exists('posix_getpwuid') ) 
    8993            return $owneruid; 
    90         $ownerarray=posix_getpwuid($owneruid); 
     94        $ownerarray = posix_getpwuid($owneruid); 
    9195        return $ownerarray['name']; 
    9296    } 
     
    164168    } 
    165169    function group($file){ 
    166         $gid=@filegroup($file); 
     170        $gid = @filegroup($file); 
    167171        if( ! $gid ) 
    168172            return false; 
    169173        if( !function_exists('posix_getgrgid') ) 
    170174            return $gid; 
    171         $grouparray=posix_getgrgid($gid); 
     175        $grouparray = posix_getgrgid($gid); 
    172176        return $grouparray['name']; 
    173177    } 
     
    180184 
    181185    function move($source,$destination,$overwrite=false){ 
    182         //Possible to use rename() 
     186        //Possible to use rename()? 
    183187        if( $this->copy($source,$destination,$overwrite) && $this->exists($destination) ){ 
    184188            $this->delete($source); 
     
    189193    } 
    190194 
    191     function delete($file,$recursive=false){ 
     195    function delete($file, $recursive=false){ 
    192196        $file = str_replace('\\','/',$file); //for win32, occasional problems deleteing files otherwise 
    193197 
    194198        if( $this->is_file($file) ) 
    195199            return @unlink($file); 
    196  
    197200        if( !$recursive && $this->is_dir($file) ) 
    198201            return @rmdir($file); 
    199202 
    200         $filelist = $this->dirlist($file); 
    201         if( ! $filelist ) 
    202             return true; //No files exist, Say we've deleted them 
     203        //At this point its a folder, and we're in recursive mode 
     204        $file = trailingslashit($file); 
     205        $filelist = $this->dirlist($file, true); 
    203206 
    204207        $retval = true; 
    205         foreach($filelist as $filename=>$fileinfo){ 
    206             if( ! $this->delete($file.'/'.$filename,$recursive) ) 
    207                 $retval = false; 
    208         } 
     208        if( is_array($filelist) ) //false if no files, So check first. 
     209            foreach($filelist as $filename=>$fileinfo) 
     210                if( ! $this->delete($file . $filename, $recursive) ) 
     211                    $retval = false; 
     212 
    209213        if( ! @rmdir($file) ) 
    210214            return false; 
     
    225229 
    226230    function is_readable($file){ 
    227             return @is_readable($file); 
     231        return @is_readable($file); 
    228232    } 
    229233 
     
    243247    } 
    244248 
    245     function touch($file,$time=0,$atime=0){ 
    246         if($time==0) 
     249    function touch($file, $time = 0, $atime = 0){ 
     250        if($time == 0) 
    247251            $time = time(); 
    248         if($atime==0) 
     252        if($atime == 0) 
    249253            $atime = time(); 
    250254        return @touch($file,$time,$atime); 
    251255    } 
    252256 
    253     function mkdir($path,$chmod=false,$chown=false,$chgrp=false){ 
     257    function mkdir($path, $chmod = false, $chown = false, $chgrp = false){ 
    254258        if( ! $chmod) 
    255259            $chmod = $this->permission; 
     
    265269 
    266270    function rmdir($path,$recursive=false){ 
     271        //Currently unused and untested, Use delete() instead. 
    267272        if( ! $recursive ) 
    268273            return @rmdir($path); 
     
    293298            $struc['name']      = $entry; 
    294299 
     300            if( '.' == $struc['name'] || '..' == $struc['name'] ) 
     301                continue; //Do not care about these folders. 
    295302            if( '.' == $struc['name'][0] && !$incdot) 
    296303                continue; 
     
    308315            $struc['time']      = date('h:i:s',$struc['lastmodunix']); 
    309316            $struc['type']      = $this->is_dir($path.'/'.$entry) ? 'd' : 'f'; 
     317 
    310318            if ('d' == $struc['type'] ){ 
    311                 $struc['files'] = array(); 
    312  
    313                 if( $incdot ){ 
    314                     //We're including the doted starts 
    315                     if( '.' != $struc['name'] && '..' != $struc['name'] ){ //Ok, It isnt a special folder 
    316                         if ($recursive) 
    317                             $struc['files'] = $this->dirlist($path.'/'.$struc['name'],$incdot,$recursive); 
    318                     } 
    319                 } else { //No dots 
    320                     if ($recursive) 
    321                         $struc['files'] = $this->dirlist($path.'/'.$struc['name'],$incdot,$recursive); 
    322                 } 
     319                if( $recursive ) 
     320                    $struc['files'] = $this->dirlist($path.'/'.$struc['name'], $incdot, $recursive); 
     321                else 
     322                    $struc['files'] = array(); 
    323323            } 
    324             //File 
    325             $ret[$struc['name']] = $struc; 
     324 
     325            $ret[ $struc['name'] ] = $struc; 
    326326        } 
    327327        $dir->close(); 
Note: See TracChangeset for help on using the changeset viewer.