Make WordPress Core


Ignore:
Timestamp:
09/13/2008 06:06:20 PM (16 years ago)
Author:
ryan
Message:

ssh2 fs fixes from ShaneF and DD32. see #7690

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/file.php

    r8865 r8880  
    387387        return new WP_Error('empty_archive', __('Empty archive'));
    388388
    389     $path = explode('/', $to);
     389    $path = explode('/', untrailingslashit($to));
    390390    for ( $i = count($path); $i > 0; $i-- ) { //>0 = first element is empty allways for paths starting with '/'
    391391        $tmppath = implode('/', array_slice($path, 0, $i) );
     
    402402    $to = trailingslashit($to);
    403403    foreach ($archive_files as $file) {
    404         $path = explode('/', $file['filename']);
    405         for ( $i = count($path) - 1; $i >= 0; $i-- ) { //>=0 as the first element contains data, count()-1, as we do not want the file component
     404        $path = $file['folder'] ? $file['filename'] : dirname($file['filename']);
     405        $path = explode('/', $path);
     406        for ( $i = count($path); $i >= 0; $i-- ) { //>=0 as the first element contains data
     407            if ( empty($path[$i]) )
     408                continue;
    406409            $tmppath = $to . implode('/', array_slice($path, 0, $i) );
    407410            if ( $fs->is_dir($tmppath) ) {//Found the highest folder that exists, Create from here
    408411                for ( $i = $i + 1; $i <= count($path); $i++ ) { //< count() no file component please.
    409412                    $tmppath = $to . implode('/', array_slice($path, 0, $i) );
    410                     if ( ! $fs->mkdir($tmppath, 0755) )
     413                    if ( ! $fs->is_dir($tmppath) && ! $fs->mkdir($tmppath, 0755) )
    411414                        return new WP_Error('mkdir_failed', __('Could not create directory'), $tmppath);
    412415                }
     
    504507        return true;
    505508
    506     if( ! $credentials = get_option('ftp_credentials') )
    507         $credentials = array();
     509    $credentials = get_option('ftp_credentials', array());
    508510    // If defined, set it to that, Else, If POST'd, set it to that, If not, Set it to whatever it previously was(saved details in option)
    509511    $credentials['hostname'] = defined('FTP_HOST') ? FTP_HOST : (!empty($_POST['hostname']) ? $_POST['hostname'] : $credentials['hostname']);
     
    522524    else if ( defined('FTP_SSL') || (isset($_POST['connection_type']) && 'ftps' == $_POST['connection_type']) )
    523525        $credentials['connection_type'] = 'ftps';
    524     else
     526    else if ( !isset($credentials['connection_type']) || (isset($_POST['connection_type']) && 'ftp' == $_POST['connection_type']) )
    525527        $credentials['connection_type'] = 'ftp';
    526528
     
    548550jQuery(function($){
    549551    jQuery("#ssh").click(function () {
    550         jQuery("#ssh_keys").show();     
     552        jQuery("#ssh_keys").show();
    551553    });
    552     jQuery("#ftp").click(function () {
    553         jQuery("#ssh_keys").hide();     
     554    jQuery("#ftp, #ftps").click(function () {
     555        jQuery("#ssh_keys").hide();
    554556    });
    555     jQuery("#ftps").click(function () {
    556         jQuery("#ssh_keys").hide();     
    557     });
    558     jQuery(document).ready(function(){
    559         if ( jQuery("#ssh:checked").length )
    560         {
    561             jQuery("#ssh_keys").show();
    562         }
    563     });
    564557});
    565558-->
     
    567560<form action="<?php echo $form_post ?>" method="post">
    568561<div class="wrap">
    569 <h2><?php _e('FTP Connection Information') ?></h2>
    570 <p><?php _e('To perform the requested action, FTP connection information is required.') ?></p>
     562<h2><?php _e('Connection Information') ?></h2>
     563<p><?php _e('To perform the requested action, connection information is required.') ?></p>
    571564<table class="form-table">
    572565<tr valign="top">
     
    582575<td><input name="password" type="password" id="password" value=""<?php if( defined('FTP_PASS') ) echo ' disabled="disabled"' ?> size="40" /><?php if( defined('FTP_PASS') && !empty($password) ) echo '<em>'.__('(Password not shown)').'</em>'; ?></td>
    583576</tr>
    584 <tr id="ssh_keys" valign="top" style="display:none">
     577<tr id="ssh_keys" valign="top" style="<?php if ( 'ssh' != $connection_type ) echo 'display:none' ?>">
    585578<th scope="row"><label id="keys" for="keys"><?php _e('Authentication Keys') ?></label></th>
    586579<td><label for="public_key"><?php _e('Public Key:') ?></label ><input name="public_key" type="text" id="public_key" value=""<?php if( defined('FTP_PUBKEY') ) echo ' disabled="disabled"' ?> size="40" /> <label for="private_key"><?php _e('Private Key:') ?></label> <input name="private_key" type="text" id="private_key" value=""<?php if( defined('FTP_PRIKEY') ) echo ' disabled="disabled"' ?> size="40" /><br/><div><?php _e('Enter the location on the server where the keys are located. If a passphrase is needed, enter that in the password field above.') ?></div></td>
     
    590583<td>
    591584<fieldset><legend class="hidden"><?php _e('Connection Type') ?> </legend>
    592 <p><label><input id="ftp" name="connection_type"  type="radio" value="ftp" <?php checked('ftp', $connection_type); ?>   /> <?php _e('FTP') ?></label><br />
    593 <label><input id="ftps" name="connection_type" type="radio" value="ftps" <?php checked('ftps', $connection_type); ?> /> <?php _e('FTPS (SSL)') ?></label><br />
    594 <?php if ( extension_loaded('ssh2') ) { ?><label><input id="ssh" name="connection_type" type="radio" value="ssh" <?php checked('ssh', $connection_type); ?> /> <?php _e('SSH') ?></label><?php } ?></p>
     585<p><label><input id="ftp" name="connection_type"  type="radio" value="ftp" <?php checked('ftp', $connection_type); if ( defined('FTP_SSL') || defined('FTP_SSH') ) echo ' disabled="disabled"'; ?>/> <?php _e('FTP') ?></label><br />
     586<label><input id="ftps" name="connection_type" type="radio" value="ftps" <?php checked('ftps', $connection_type); if ( defined('FTP_SSH') || defined('FTP_SSH') ) echo ' disabled="disabled"';  ?>/> <?php _e('FTPS (SSL)') ?></label><br />
     587<?php if ( extension_loaded('ssh2') ) { ?><label><input id="ssh" name="connection_type" type="radio" value="ssh" <?php checked('ssh', $connection_type);  if ( defined('FTP_SSL') || defined('FTP_SSH') ) echo ' disabled="disabled"'; ?>/> <?php _e('SSH') ?></label><?php } ?></p>
    595588</fieldset>
    596589</td>
Note: See TracChangeset for help on using the changeset viewer.