WordPress.org

Make WordPress Core

Changeset 7238


Ignore:
Timestamp:
03/11/2008 04:37:44 PM (13 years ago)
Author:
ryan
Message:

Auto update fixes from DD32. see #5586

Location:
trunk/wp-admin
Files:
6 edited

Legend:

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

    r7155 r7238  
    272272            if ( '/' == substr($filename,-1,1) )
    273273                $this->rmdir($path.'/'.$filename,$recursive);
    274             @rmdir($entry);
     274            @rmdir($filename);
    275275        }
    276276        return @rmdir($path);
  • trunk/wp-admin/includes/class-wp-filesystem-ftpext.php

    r7164 r7238  
    133133    function get_contents($file,$type='',$resumepos=0){
    134134        if( empty($type) ){
    135             $extension = substr(strrchr($filename, "."), 1);
     135            $extension = substr(strrchr($file, "."), 1);
    136136            $type = isset($this->filetypes[ $extension ]) ? $this->filetypes[ $extension ] : FTP_ASCII;
    137137        }
     
    349349    function rmdir($path,$recursive=false){
    350350        if( ! $recursive )
    351             return @ftp_rmdir($this->link, $file);
     351            return @ftp_rmdir($this->link, $path);
    352352
    353353        //TODO: Recursive Directory delete, Have to delete files from the folder first.
  • trunk/wp-admin/includes/class-wp-filesystem-ftpsockets.php

    r7171 r7238  
    140140
    141141        if( empty($type) ){
    142             $extension = substr(strrchr($filename, "."), 1);
     142            $extension = substr(strrchr($file, "."), 1);
    143143            $type = isset($this->filetypes[ $extension ]) ? $this->filetypes[ $extension ] : FTP_AUTOASCII;
    144144        }
     
    377377    function rmdir($path,$recursive=false){
    378378        if( ! $recursive )
    379             return $this->ftp->rmdir($file);
     379            return $this->ftp->rmdir($path);
    380380
    381381        return $this->ftp->mdel($path);
  • trunk/wp-admin/includes/file.php

    r7172 r7238  
    232232    // Is the archive valid?
    233233    if ( false == ($archive_files = $archive->extract(PCLZIP_OPT_EXTRACT_AS_STRING)) )
    234         return new WP_Error('incompatible_archive', __('Incompatible archive'), $archive->error_string);
     234        return new WP_Error('incompatible_archive', __('Incompatible archive'), $archive->errorInfo(true));
    235235
    236236    if ( 0 == count($archive_files) )
     
    241241    $tmppath = '';
    242242    for ( $j = 0; $j < count($path) - 1; $j++ ) {
    243         $prevpath = $tmppath;
    244243        $tmppath .= $path[$j] . '/';
    245         if ( ! $fs->is_dir($tmppath) ) {
    246             //$fs->setDefaultPermissions( $fs->getchmod($tmppath) );
     244        if ( ! $fs->is_dir($tmppath) )
    247245            $fs->mkdir($tmppath, 0755);
    248         }
    249246    }
    250247
  • trunk/wp-admin/includes/update.php

    r7237 r7238  
    128128
    129129    echo "<tr><td colspan='5' class='plugin-update'>";
    130     printf( __('There is a new version of %1$s available. <a href="%2$s">Download version %3$s here</a> or <a href="%4$s">upgrade automatically</a>.'), $plugin_data['Name'], $r->url, $r->new_version, "update.php?action=upgrade-plugin&amp;plugin=$file" );
     130    printf( __('There is a new version of %1$s available. <a href="%2$s">Download version %3$s here</a> or <a href="%4$s">upgrade automatically</a>.'), $plugin_data['Name'], $r->url, $r->new_version, wp_nonce_url("update.php?action=upgrade-plugin&amp;plugin=$file", 'upgrade-plugin_' . $file) );
    131131    echo "</td></tr>";
    132132}
     
    168168    // Download the package
    169169    $package = $r->package;
    170     apply_filters('update_feedback', sprintf(__("Downloading update from %s"), $package));
     170    apply_filters('update_feedback', sprintf(__('Downloading update from %s'), $package));
    171171    $file = download_url($package);
    172172
     
    174174        return new WP_Error('download_failed', __('Download failed.'));
    175175
    176     $name = basename($plugin, '.php');
    177     $working_dir = $base . 'wp-content/upgrade/' . $name;
     176    $working_dir = $base . 'wp-content/upgrade/' . basename($plugin, '.php');
    178177
    179178    // Clean up working directory
    180     if ( is_dir($working_dir) )
     179    if ( $wp_filesystem->is_dir($working_dir) )
    181180        $wp_filesystem->delete($working_dir, true);
    182181
    183     apply_filters('update_feedback', __("Unpacking the update"));
     182    apply_filters('update_feedback', __('Unpacking the update'));
    184183    // Unzip package to working directory
    185184    $result = unzip_file($file, $working_dir);
     
    194193
    195194    // Remove the existing plugin.
    196     apply_filters('update_feedback', __("Removing the old version of the plugin"));
     195    apply_filters('update_feedback', __('Removing the old version of the plugin'));
    197196    $plugin_dir = dirname($base . PLUGINDIR . "/$plugin");
    198197    $plugin_dir = trailingslashit($plugin_dir);
     198   
    199199    // If plugin is in its own directory, recursively delete the directory.
    200     if( ! in_array( $plugin_dir, array('.', trailingslashit($base . PLUGINDIR) ) ) )
     200    if( strpos($plugin, '/') && $plugin_dir != $base . PLUGINDIR . '/' )
    201201        $deleted = $wp_filesystem->delete($plugin_dir, true);
    202202    else
    203203        $deleted = $wp_filesystem->delete($base . PLUGINDIR . "/$plugin");
     204
    204205    if ( !$deleted ) {
    205206        $wp_filesystem->delete($working_dir, true);
     
    207208    }
    208209
    209     apply_filters('update_feedback', __("Installing the latest version"));
     210    apply_filters('update_feedback', __('Installing the latest version'));
    210211    // Copy new version of plugin into place.
    211212    if ( !copy_dir($working_dir, $base . PLUGINDIR) ) {
    212         //$wp_filesystem->delete($working_dir, true);
     213        //$wp_filesystem->delete($working_dir, true); //TODO: Uncomment? This DOES mean that the new files are available in the upgrade folder if it fails.
    213214        return new WP_Error('install_failed', __('Installation failed'));
    214215    }
  • trunk/wp-admin/update.php

    r7206 r7238  
    66                wp_die('<p>'.__('You do not have sufficient permissions to update plugins for this blog.').'</p>');
    77
    8 function request_filesystem_credentials($form_post, $type = '') {
     8function request_filesystem_credentials($form_post, $type = '', $error = false) {
    99    if ( empty($type) )
    1010        $type = get_filesystem_method();
     
    1313        return array();
    1414
    15     if ( !empty($_POST['password']) && !empty($_POST['username']) && !empty($_POST['hostname']) ) {
     15    if ( ! $error && !empty($_POST['password']) && !empty($_POST['username']) && !empty($_POST['hostname']) ) {
    1616        $credentials = array('hostname' => $_POST['hostname'], 'username' => $_POST['username'],
    1717            'password' => $_POST['password'], 'ssl' => $_POST['ssl']);
     
    2727    if ( $credentials = get_option('ftp_credentials') )
    2828        extract($credentials, EXTR_OVERWRITE);
     29    if( $error ){
     30        echo '<div id="message" class="error"><p>' . __('<strong>Error:</strong> There was an error connecting to the server, Please verify the settings are correct.') . '</p></div>';
     31    }
    2932?>
    3033<form action="<?php echo $form_post ?>" method="post">
     
    4346<tr valign="top">
    4447<th scope="row"><?php _e('Password:') ?></th>
    45 <td><input name="password" type="text" id="password" value="<?php echo attribute_escape($password) ?>" size="40" /></td>
     48<td><input name="password" type="password" id="password" value="<?php echo attribute_escape($password) ?>" size="40" /></td>
    4649</tr>
    4750<tr valign="top">
     
    8184    global $wp_filesystem;
    8285
    83     $credentials = request_filesystem_credentials("update.php?action=upgrade-plugin&plugin=$plugin");
    84     if ( false === $credentials )
     86    $url = wp_nonce_url("update.php?action=upgrade-plugin&plugin=$plugin", "upgrade-plugin_$plugin");
     87    if ( false === ($credentials = request_filesystem_credentials($url)) )
    8588        return;
     89       
     90    if( ! WP_Filesystem($credentials) ){
     91        request_filesystem_credentials($url, '', true); //Failed to connect, Error and request again
     92        return;
     93    }
     94       
    8695    echo '<div class="wrap">';
    8796    echo '<h2>' . __('Upgrade Plugin') . '</h2>';
    88     WP_Filesystem($credentials);
    89     // TODO: look for auth and connect error codes and direct back to credentials form.
    9097    if ( $wp_filesystem->errors->get_error_code() ) {
    9198        foreach ( $wp_filesystem->errors->get_error_messages() as $message )
     
    109116
    110117    if ( 'upgrade-plugin' == $_GET['action'] ) {
    111         //check-admin_referer('upgrade-plugin_' . $plugin);
     118        check_admin_referer('upgrade-plugin_' . $plugin);
    112119        $title = __('Upgrade Plugin');
    113120        $parent_file = 'plugins.php';
     
    116123        include('admin-footer.php');
    117124    }
    118 
    119125}
    120126
Note: See TracChangeset for help on using the changeset viewer.