Wordpress 3.5
[autoinstalls/wordpress.git] / wp-admin / includes / class-wp-filesystem-ftpsockets.php
index efd19d1f6fc2e13dfe0ea78e36553fd7a26f2585..1c931e19281c5a600c63e294d9b0cf524f3f9da7 100644 (file)
@@ -19,7 +19,7 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
        var $errors = null;
        var $options = array();
 
-       function WP_Filesystem_ftpsockets($opt = '') {
+       function __construct($opt = '') {
                $this->method = 'ftpsockets';
                $this->errors = new WP_Error();
 
@@ -193,7 +193,7 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                return $dir[$file]['group'];
        }
 
-       function copy($source, $destination, $overwrite = false ) {
+       function copy($source, $destination, $overwrite = false, $mode = false) {
                if ( ! $overwrite && $this->exists($destination) )
                        return false;
 
@@ -201,17 +201,17 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                if ( false === $content )
                        return false;
 
-               return $this->put_contents($destination, $content);
+               return $this->put_contents($destination, $content, $mode);
        }
 
        function move($source, $destination, $overwrite = false ) {
                return $this->ftp->rename($source, $destination);
        }
 
-       function delete($file, $recursive = false ) {
+       function delete($file, $recursive = false, $type = false) {
                if ( empty($file) )
                        return false;
-               if ( $this->is_file($file) )
+               if ( 'f' == $type || $this->is_file($file) )
                        return $this->ftp->delete($file);
                if ( !$recursive )
                        return $this->ftp->rmdir($file);
@@ -267,6 +267,10 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
        }
 
        function mkdir($path, $chmod = false, $chown = false, $chgrp = false ) {
+               $path = untrailingslashit($path);
+               if ( empty($path) )
+                       return false;
+
                if ( ! $this->ftp->mkdir($path) )
                        return false;
                if ( ! $chmod )
@@ -314,6 +318,10 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                                        $struc['files'] = array();
                        }
 
+                       // Replace symlinks formatted as "source -> target" with just the source name
+                       if ( $struc['islink'] )
+                               $struc['name'] = preg_replace( '/(\s*->\s*.*)$/', '', $struc['name'] );
+
                        $ret[ $struc['name'] ] = $struc;
                }
                return $ret;
@@ -323,5 +331,3 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                $this->ftp->quit();
        }
 }
-
-?>