delete($folder, true);
echo '
';
_e('All files relating to the upgrade proceedure have been deleted.');
echo '
';
_e('The folder which holds the upgrade files was:');
echo $folder;
echo '
';
} elseif( isset($_POST['submit_proceed']) ){
//Lets do the upgrade (And then delete the old stuff)
$oldfile = PLUGINDIR . '/' . $_GET['upgrade']; //Full path to the plugin FILE, NOT PATH
$source = 'wp-content/wpupdate/' . $_POST['upgrade_source'];
$destination = PLUGINDIR . '/' . basename($source);
//First Deactivate the plugin.
$current = get_option('active_plugins');
array_splice($current, array_search( $_GET['upgrade'], $current), 1 ); // Array-fu!
update_option('active_plugins', $current);
//do_action('deactivate_' . trim( $_GET['plugin'] )); //Dont do the deactivate action.
do_action('update_' . trim( $_GET['upgrade'] ));
//Remove old files
//First, Remove the old directory if need be:
if( dirname($oldfile) !== dirname($destination . '/.') ){ // /. to make sure we get the foldername rather than the folder being treated as a file
//We need to remove the old files first.
$file = basename(str_replace(array(ABSPATH, PLUGINDIR),'',$oldfile));
$file = preg_replace("|^/+|",'',$file);//strip leading slashes
if( basename($file) == $file){
//File:
$messages[] = __('
Deleteing file: ') .
$file .
succeeded( $wp_filesystem->delete( ABSPATH . PLUGINDIR . '/' . $file) );
} else {
$messages[] = __('
Deleteing Folder: ') .
$file .
succeeded( $wp_filesystem->delete( ABSPATH . PLUGINDIR . '/' . $file, true) );
}
}
$diff = folder_diff(ABSPATH . $source, ABSPATH . $destination);
//Create folder structure
$path = explode('/',$destination);
$tmppath = ABSPATH . '/';
for( $j = 0; $j < count($path); $j++ ){
$tmppath .= $path[$j] . '/';
if( ! $wp_filesystem->is_dir($tmppath) )
$messages[] = __('
Creating folder: ') . $tmppath . succeeded( $wp_filesystem->mkdir($tmppath) );
}
foreach((array) $diff as $filename=>$fileInfo){
switch($fileInfo['status']) {
case 'deleted':
$messages[] = __('
Deleteing file: ') .
$filename .
succeeded( $wp_filesystem->delete( ABSPATH . $destination . '/' . $filename, true) );
break;
case 'changed':
$messages[] = __('
Deleteing file: ') .
$filename .
succeeded( $wp_filesystem->delete( ABSPATH . $destination . '/' . $filename, true) );
//No Break, We delete the file, then treat it as a new file.
case 'new':
$messages[] = __('
Installing file: ') .
$filename .
succeeded( $wp_filesystem->copy( ABSPATH . $source . '/' . $filename, ABSPATH . $destination . '/' . $filename) );
break;
default:
case 'same':
//Leave unchanged files alone.
break;
}
}
echo implode("
",$messages);
$folder = ABSPATH . 'wp-content/wpupdate/' . $_POST['upgrade_source'];
$wp_filesystem->delete($folder, true);
} else {
?>
errors) ){ ?>
installItemFromZip($filename, $fileinfo, 'wp-content/wpupdate/');
unlink($filename); //Once installed, Delete the zip
echo '
';
foreach($messages as $message){
echo $message.'
';
}
echo '
';
$plugins = wpupdate_get_plugins(ABSPATH . 'wp-content/wpupdate/');
if( 1 == count($plugins) ){
foreach($plugins as $pluginFile => $plugin){ //We want the first one from the array.
$newdata = $plugin;
$newdata['Folder'] = dirname($pluginFile);
break;
}
} else {
foreach($plugins as $pluginFile => $plugin){ //We want the first one from the array.
if( $plugin['Name'] != $installedInfo['Name'] )
continue;
$newdata = $plugin;
$newdata['Folder'] = dirname($pluginFile);
}
}
echo '
';
echo '
' . __('Source') . ': ' . $file . '
';
echo '
'.__('Title').': '.$newdata['Title'].'
';
echo '
'.__('Author').': '.$newdata['Author'].'
';
echo '
'.__('Version').': '.$newdata['Version'].'
';
echo '
' . $newdata['Description'] . '';
?>
$fileInfo){
switch($fileInfo['status']) {
case 'new':
echo "
$fileName (".__('New').")";
break;
case 'deleted':
echo "
$fileName (".__('Deleted').")";
break;
case 'changed':
echo "
$fileName (".__('Changed').")";
break;
default:
case 'same':
echo "
$fileName (".__('unChanged').")";
break;
}
}//end foreach
} //end if ! $diff
?>
errors)
?>
errors)
} //end if submit_proceed | submit_cancel
?>