Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
save_bvnghean.vn
/
wp-content
/
plugins
/
backupbuddy
/
controllers
/
ajax
:
destination_ftp_pathpicker.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php backupbuddy_core::verifyAjaxAccess(); // FTP destination path picker. /* destination_ftp_pathpicker() * * description * */ function pb_backupbuddy_ftp_listDetailed($resource, $directory = '.') { if (is_array($children = @ftp_rawlist($resource, $directory))) { $items = array(); foreach ($children as $child) { $chunks = preg_split("/\s+/", $child); list($item['rights'], $item['number'], $item['user'], $item['group'], $item['size'], $item['month'], $item['day'], $item['time']) = $chunks; $item['type'] = $chunks[0]{0} === 'd' ? 'directory' : 'file'; array_splice($chunks, 0, 8); $items[implode(" ", $chunks)] = $item; } return $items; } return false; } // end listDetailed subfunction. $settings = array( 'address' => pb_backupbuddy::_GET( 'pb_backupbuddy_address' ), 'username' => pb_backupbuddy::_GET( 'pb_backupbuddy_username' ), 'password' => pb_backupbuddy::_GET( 'pb_backupbuddy_password' ), 'ftps' => pb_backupbuddy::_GET( 'pb_backupbuddy_ftps' ), 'active_mode' => pb_backupbuddy::_GET( 'pb_backupbuddy_active_mode' ), ); if ( ( $settings['address'] == '' ) || ( $settings['username'] == '' ) || ( $settings['password'] == '' ) ) { die( __('Missing required FTP server inputs.', 'it-l10n-backupbuddy' ) ); } // Settings if ( $settings['active_mode'] == '0' ) { $active_mode = false; } else { $active_mode = true; } $server = $settings['address']; $port = '21'; if ( strstr( $server, ':' ) ) { $server_params = explode( ':', $server ); $server = $server_params[0]; $port = $server_params[1]; } // Connect. if ( $settings['ftps'] == '0' ) { $conn_id = @ftp_connect( $server, $port, 10 ); // timeout of 10 seconds. if ( $conn_id === false ) { $error = __( 'Unable to connect to FTP address `' . $server . '` on port `' . $port . '`.', 'it-l10n-backupbuddy' ); $error .= "\n" . __( 'Verify the server address and port (default 21). Verify your host allows outgoing FTP connections.', 'it-l10n-backupbuddy' ); die( $error ); } } else { if ( function_exists( 'ftp_ssl_connect' ) ) { $conn_id = @ftp_ssl_connect( $server, $port ); if ( $conn_id === false ) { die( __('Destination server does not support FTPS?', 'it-l10n-backupbuddy' ) ); } } else { die( __('Your web server doesnt support FTPS.', 'it-l10n-backupbuddy' ) ); } } // Authenticate. $login_result = @ftp_login( $conn_id, $settings['username'], $settings['password'] ); if ( ( !$conn_id ) || ( !$login_result ) ) { pb_backupbuddy::status( 'details', 'FTP test: Invalid user/pass.' ); $response = __('Unable to login to FTP server. Bad user/pass.', 'it-l10n-backupbuddy' ); if ( $settings['ftps'] != '0' ) { $response .= "\n\nNote: You have FTPs enabled. You may get this error if your host does not support encryption at this address/port."; } die( $response ); } pb_backupbuddy::status( 'details', 'FTP test: Success logging in.' ); // Handle active/pasive mode. if ( $active_mode === true ) { // do nothing, active is default. pb_backupbuddy::status( 'details', 'Active FTP mode based on settings.' ); } elseif ( $active_mode === false ) { // Turn passive mode on. pb_backupbuddy::status( 'details', 'Passive FTP mode based on settings.' ); ftp_pasv( $conn_id, true ); } else { pb_backupbuddy::status( 'error', 'Unknown FTP active/passive mode: `' . $active_mode . '`.' ); } // Calculate root. $ftpRoot = urldecode( pb_backupbuddy::_POST( 'dir' ) ); if ( '' == $ftpRoot ) { // No root passed so figure out root from FTP server itself. $ftpRoot = ftp_pwd( $conn_id ); } $ftpList = pb_backupbuddy_ftp_listDetailed( $conn_id, $ftpRoot ); echo '<ul class="jqueryFileTree pb_backupbuddy_ftpdestination_pathpickerboxtree">'; if ( count( $ftpList ) > 2 ) { foreach( $ftpList as $fileName => $file ) { if ( ( '.' == $fileName ) || ( '..' == $fileName ) ) { continue; } if ( 'directory' == $file['type'] ) { // Directory. echo '<li class="directory collapsed">'; $return = ''; $return .= '<div class="pb_backupbuddy_treeselect_control">'; $return .= '<img src="' . pb_backupbuddy::plugin_url() . '/images/greenplus.png" style="vertical-align: -3px;" title="Select this path..." class="pb_backupbuddy_filetree_select">'; $return .= '</div>'; echo '<a href="#" rel="' . htmlentities( $ftpRoot . $fileName ) . '/" title="Toggle expand...">' . htmlentities($fileName) . $return . '</a>'; echo '</li>'; } else { // File. echo '<li class="file collapsed">'; echo '<a href="#" rel="' . htmlentities( $ftpRoot . $fileName ) . '">' . htmlentities($fileName) . '</a>'; echo '</li>'; } } } else { echo '<ul class="jqueryFileTree">'; echo '<li><a href="#" rel="' . htmlentities( pb_backupbuddy::_POST( 'dir' ) . 'NONE' ) . '"><i>Empty Directory ...</i></a></li>'; echo '</ul>'; } echo '</ul>'; die();