Add phpdoc and extra filter to file.php, props dd32, fixes #11002

git-svn-id: http://svn.automattic.com/wordpress/trunk@12151 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
azaozz 2009-11-05 23:03:48 +00:00
parent 87208b9a48
commit bb8c764a52
1 changed files with 99 additions and 51 deletions

View File

@ -99,13 +99,14 @@ function get_real_file_to_edit( $file ) {
} }
/** /**
* {@internal Missing Short Description}} * Returns a listing of all files in the specified folder and all subdirectories up to 100 levels deep.
* The depth of the recursiveness can be controlled by the $levels param.
* *
* @since unknown * @since 2.6.0
* *
* @param string $folder Optional. Full path to folder * @param string $folder Full path to folder
* @param int $levels Optional. Levels of folders to follow, Default: 100 (PHP Loop limit). * @param int $levels (optional) Levels of folders to follow, Default: 100 (PHP Loop limit).
* @return bool|array * @return bool|array False on failure, Else array of files
*/ */
function list_files( $folder = '', $levels = 100 ) { function list_files( $folder = '', $levels = 100 ) {
if( empty($folder) ) if( empty($folder) )
@ -135,11 +136,14 @@ function list_files( $folder = '', $levels = 100 ) {
} }
/** /**
* {@internal Missing Short Description}} * Determines a writable directory for temporary files.
* Function's preference is to WP_CONTENT_DIR followed by the return value of <code>sys_get_temp_dir()</code>, before finally defaulting to /tmp/
* *
* @since unknown * In the event that this function does not find a writable location, It may be overridden by the <code>WP_TEMP_DIR</code> constant in your <code>wp-config.php</code> file.
* *
* @return unknown * @since 2.5.0
*
* @return string Writable temporary directory
*/ */
function get_temp_dir() { function get_temp_dir() {
if ( defined('WP_TEMP_DIR') ) if ( defined('WP_TEMP_DIR') )
@ -156,13 +160,17 @@ function get_temp_dir() {
} }
/** /**
* {@internal Missing Short Description}} * Returns a filename of a Temporary unique file.
* Please note that the calling function must unlink() this itself.
* *
* @since unknown * The filename is based off the passed parameter or defaults to the current unix timestamp,
* while the directory can either be passed as well, or by leaving it blank, default to a writable temporary directory.
* *
* @param unknown_type $filename * @since 2.6.0
* @param unknown_type $dir *
* @return unknown * @param string $filename (optional) Filename to base the Unique file off
* @param string $dir (optional) Directory to store the file in
* @return string a writable filename
*/ */
function wp_tempnam($filename = '', $dir = ''){ function wp_tempnam($filename = '', $dir = ''){
if ( empty($dir) ) if ( empty($dir) )
@ -431,10 +439,10 @@ function wp_handle_sideload( &$file, $overrides = false ) {
} }
/** /**
* Downloads a url to a local file using the Snoopy HTTP Class. * Downloads a url to a local temporary file using the WordPress HTTP Class.
* Please note, That the calling function must unlink() the file.
* *
* @since unknown * @since 2.5.0
* @todo Transition over to using the new HTTP Request API (jacob).
* *
* @param string $url the URL of the file to download * @param string $url the URL of the file to download
* @return mixed WP_Error on failure, string Filename on success. * @return mixed WP_Error on failure, string Filename on success.
@ -473,13 +481,17 @@ function download_url( $url ) {
} }
/** /**
* {@internal Missing Short Description}} * Unzip's a specified ZIP file to a location on the Filesystem via the WordPress Filesystem Abstraction.
* Assumes that WP_Filesystem() has already been called and set up.
* *
* @since unknown * Attempts to increase the PHP Memory limit to 256M before uncompressing,
* However, The most memory required shouldn't be much larger than the Archive itself.
* *
* @param unknown_type $file * @since 2.5.0
* @param unknown_type $to *
* @return unknown * @param string $file Full path and filename of zip archive
* @param string $to Full path on the filesystem to extract archive to
* @return mixed WP_Error on failure, True on success
*/ */
function unzip_file($file, $to) { function unzip_file($file, $to) {
global $wp_filesystem; global $wp_filesystem;
@ -487,7 +499,7 @@ function unzip_file($file, $to) {
if ( ! $wp_filesystem || !is_object($wp_filesystem) ) if ( ! $wp_filesystem || !is_object($wp_filesystem) )
return new WP_Error('fs_unavailable', __('Could not access filesystem.')); return new WP_Error('fs_unavailable', __('Could not access filesystem.'));
// Unzip uses a lot of memory // Unzip uses a lot of memory, but not this much hopefully
@ini_set('memory_limit', '256M'); @ini_set('memory_limit', '256M');
$fs =& $wp_filesystem; $fs =& $wp_filesystem;
@ -545,13 +557,14 @@ function unzip_file($file, $to) {
} }
/** /**
* {@internal Missing Short Description}} * Copies a directory from one location to another via the WordPress Filesystem Abstraction.
* Assumes that WP_Filesystem() has already been called and setup.
* *
* @since unknown * @since 2.5.0
* *
* @param unknown_type $from * @param string $from source directory
* @param unknown_type $to * @param string $to destination directory
* @return unknown * @return mixed WP_Error on failure, True on success.
*/ */
function copy_dir($from, $to) { function copy_dir($from, $to) {
global $wp_filesystem; global $wp_filesystem;
@ -580,15 +593,20 @@ function copy_dir($from, $to) {
return $result; return $result;
} }
} }
return true;
} }
/** /**
* {@internal Missing Short Description}} * Initialises and connects the WordPress Filesystem Abstraction classes.
* This function will include the chosen transport and attempt connecting.
* *
* @since unknown * Plugins may add extra transports, And force WordPress to use them by returning the filename via the 'filesystem_method_file' filter.
* *
* @param unknown_type $args * @since 2.5.0
* @return unknown *
* @param array $args (optional) Connection args, These are passed directly to the WP_Filesystem_*() classes.
* @param string $context (optional) Context for get_filesystem_method(), See function declaration for more information.
* @return boolean false on failure, true on success
*/ */
function WP_Filesystem( $args = false, $context = false ) { function WP_Filesystem( $args = false, $context = false ) {
global $wp_filesystem; global $wp_filesystem;
@ -633,13 +651,20 @@ function WP_Filesystem( $args = false, $context = false ) {
} }
/** /**
* {@internal Missing Short Description}} * Determines which Filesystem Method to use.
* The priority of the Transports are: Direct, SSH2, FTP PHP Extension, FTP Sockets (Via Sockets class, or fsoxkopen())
* *
* @since unknown * Note that the return value of this function can be overridden in 2 ways
* - By defining FS_METHOD in your <code>wp-config.php</code> file
* - By using the filesystem_method filter
* Valid values for these are: 'direct', 'ssh', 'ftpext' or 'ftpsockets'
* Plugins may also define a custom transport handler, See the WP_Filesystem function for more information.
* *
* @param unknown_type $args * @since 2.5.0
*
* @param array $args Connection details.
* @param string $context Full path to the directory that is tested for being writable. * @param string $context Full path to the directory that is tested for being writable.
* @return unknown * @return string The transport to use, see description for valid return values.
*/ */
function get_filesystem_method($args = array(), $context = false) { function get_filesystem_method($args = array(), $context = false) {
$method = defined('FS_METHOD') ? FS_METHOD : false; //Please ensure that this is either 'direct', 'ssh', 'ftpext' or 'ftpsockets' $method = defined('FS_METHOD') ? FS_METHOD : false; //Please ensure that this is either 'direct', 'ssh', 'ftpext' or 'ftpsockets'
@ -665,14 +690,20 @@ function get_filesystem_method($args = array(), $context = false) {
} }
/** /**
* {@internal Missing Short Description}} * Displays a form to the user to request for their FTP/SSH details in order to connect to the filesystem.
* All chosen/entered details are saved, Excluding the Password.
* *
* @since unknown * Hostnames may be in the form of hostname:portnumber (eg: wordpress.org:2467) to specify an alternate FTP/SSH port.
* *
* @param unknown_type $form_post * Plugins may override this form by returning true|false via the <code>request_filesystem_credentials</code> filter.
* @param unknown_type $type *
* @param unknown_type $error * @since 2.5.0
* @return unknown *
* @param string $form_post the URL to post the form to
* @param string $type the chosen Filesystem method in use
* @param boolean $error if the current request has failed to connect
* @param string $context The directory which is needed access to, The write-test will be performed on this directory by get_filesystem_method()
* @return boolean False on failure. True on success.
*/ */
function request_filesystem_credentials($form_post, $type = '', $error = false, $context = false) { function request_filesystem_credentials($form_post, $type = '', $error = false, $context = false) {
$req_cred = apply_filters('request_filesystem_credentials', '', $form_post, $type, $error, $context); $req_cred = apply_filters('request_filesystem_credentials', '', $form_post, $type, $error, $context);
@ -699,10 +730,13 @@ function request_filesystem_credentials($form_post, $type = '', $error = false,
//sanitize the hostname, Some people might pass in odd-data: //sanitize the hostname, Some people might pass in odd-data:
$credentials['hostname'] = preg_replace('|\w+://|', '', $credentials['hostname']); //Strip any schemes off $credentials['hostname'] = preg_replace('|\w+://|', '', $credentials['hostname']); //Strip any schemes off
if ( strpos($credentials['hostname'], ':') ) if ( strpos($credentials['hostname'], ':') ) {
list( $credentials['hostname'], $credentials['port'] ) = explode(':', $credentials['hostname'], 2); list( $credentials['hostname'], $credentials['port'] ) = explode(':', $credentials['hostname'], 2);
else if ( ! is_numeric($credentials['port']) )
unset($credentials['port']);
} else {
unset($credentials['port']); unset($credentials['port']);
}
if ( defined('FTP_SSH') || (defined('FS_METHOD') && 'ssh' == FS_METHOD) ) if ( defined('FTP_SSH') || (defined('FS_METHOD') && 'ssh' == FS_METHOD) )
$credentials['connection_type'] = 'ssh'; $credentials['connection_type'] = 'ssh';
@ -738,6 +772,17 @@ function request_filesystem_credentials($form_post, $type = '', $error = false,
$error_string = $error->get_error_message(); $error_string = $error->get_error_message();
echo '<div id="message" class="error"><p>' . $error_string . '</p></div>'; echo '<div id="message" class="error"><p>' . $error_string . '</p></div>';
} }
$types = array();
if ( extension_loaded('ftp') || extension_loaded('sockets') || function_exists('fsockopen') )
$types[ 'ftp' ] = __('FTP');
if ( extension_loaded('ftp') ) //Only this supports FTPS
$types[ 'ftps' ] = __('FTPS (SSL)');
if ( extension_loaded('ssh2') && function_exists('stream_get_contents') )
$types[ 'ssh' ] = __('SSH2');
$types = apply_filters('fs_ftp_connection_types', $types, $credentials, $type, $error, $context);
?> ?>
<script type="text/javascript"> <script type="text/javascript">
<!-- <!--
@ -774,7 +819,7 @@ jQuery(function($){
<td><input name="password" type="password" id="password" value="<?php if ( defined('FTP_PASS') ) echo '*****'; ?>"<?php if ( defined('FTP_PASS') ) echo ' disabled="disabled"' ?> size="40" /></td> <td><input name="password" type="password" id="password" value="<?php if ( defined('FTP_PASS') ) echo '*****'; ?>"<?php if ( defined('FTP_PASS') ) echo ' disabled="disabled"' ?> size="40" /></td>
</tr> </tr>
<?php if ( extension_loaded('ssh2') && function_exists('stream_get_contents') ) : ?> <?php if ( isset($types['ssh']) ) : ?>
<tr id="ssh_keys" valign="top" style="<?php if ( 'ssh' != $connection_type ) echo 'display:none' ?>"> <tr id="ssh_keys" valign="top" style="<?php if ( 'ssh' != $connection_type ) echo 'display:none' ?>">
<th scope="row"><?php _e('Authentication Keys') ?> <th scope="row"><?php _e('Authentication Keys') ?>
<div class="key-labels textright"> <div class="key-labels textright">
@ -790,13 +835,16 @@ jQuery(function($){
<th scope="row"><?php _e('Connection Type') ?></th> <th scope="row"><?php _e('Connection Type') ?></th>
<td> <td>
<fieldset><legend class="screen-reader-text"><span><?php _e('Connection Type') ?></span></legend> <fieldset><legend class="screen-reader-text"><span><?php _e('Connection Type') ?></span></legend>
<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> <?php
<?php if ( 'ftpext' == $type ) : ?>
<br /><label><input id="ftps" name="connection_type" type="radio" value="ftps" <?php checked('ftps', $connection_type); if ( defined('FTP_SSL') || defined('FTP_SSH') ) echo ' disabled="disabled"'; ?>/> <?php _e('FTPS (SSL)') ?></label> $disabled = defined('FTP_SSL') || defined('FTP_SSH') ? '' : ' disabled="disabled"';
<?php endif; ?>
<?php if ( extension_loaded('ssh2') && function_exists('stream_get_contents') ) : ?> foreach ( $types as $name => $text ) : ?>
<br /><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> <label for="<?php echo esc_atr($name) ?>">
<?php endif; ?> <input type="radio" name="connection_type" id="<?php echo esc_atr($name) ?>" value="<?php echo esc_atr($name) ?>" <?php checked($name, $connection_type); echo $disabled; ?>/>
<?php echo $text ?>
</label>
<?php endforeach; ?>
</fieldset> </fieldset>
</td> </td>
</tr> </tr>