diff options
author | Dries Buytaert <dries@buytaert.net> | 2009-07-27 19:53:18 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2009-07-27 19:53:18 +0000 |
commit | 5468b47b91ee040b35d30f7d8a79c66fba51531d (patch) | |
tree | dd1dd2c05885ae70c3933be545f65abf4f8229fc /modules/system/system.api.php | |
parent | 1aec298314454b67fbc18738c3ffa6f12a14dd59 (diff) | |
download | brdo-5468b47b91ee040b35d30f7d8a79c66fba51531d.tar.gz brdo-5468b47b91ee040b35d30f7d8a79c66fba51531d.tar.bz2 |
- Patch #227232 by dopry, c960657, jmstacey, pwolanin, aaron, drewish: added initial support for PHP file wrappers.
Diffstat (limited to 'modules/system/system.api.php')
-rw-r--r-- | modules/system/system.api.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/modules/system/system.api.php b/modules/system/system.api.php index 774370035..8c7a7d090 100644 --- a/modules/system/system.api.php +++ b/modules/system/system.api.php @@ -1160,6 +1160,60 @@ function custom_url_rewrite_inbound(&$result, $path, $path_language) { } /** + * Registers PHP stream wrapper implementations associated with a module. + * + * Provide a facility for managing and querying user-defined stream wrappers + * in PHP. PHP's internal stream_get_wrappers() doesn't return the class + * registered to handle a stream, which we need to be able to find the handler + * for class instantiation. + * + * If a module registers a scheme that is already registered with PHP, it will + * be unregistered and replaced with the specified class. + * + * @return + * A nested array, keyed first by scheme name ("public" for "public://"), + * then keyed by the following values: + * - 'name' A short string to name the wrapper. + * - 'class' A string specifying the PHP class that implements the + * DrupalStreamWrapperInterface interface. + * - 'description' A string with a short description of what the wrapper does. + * + * @see file_get_stream_wrappers() + * @see hook_stream_wrappers_alter() + * @see system_stream_wrappers() + */ +function hook_stream_wrappers() { + return array( + 'public' => array( + 'name' => t('Public files'), + 'class' => 'DrupalPublicStreamWrapper', + 'description' => t('Public local files served by the webserver.'), + ), + 'private' => array( + 'name' => t('Private files'), + 'class' => 'DrupalPrivateStreamWrapper', + 'description' => t('Private local files served by Drupal.'), + ), + 'temp' => array( + 'name' => t('Temporary files'), + 'class' => 'DrupalTempStreamWrapper', + 'description' => t('Temporary local files for upload and previews.'), + ) + ); +} + +/** + * Alters the list of PHP stream wrapper implementations. + * + * @see file_get_stream_wrappers() + * @see hook_stream_wrappers() + */ +function hook_stream_wrappers_alter(&$wrappers) { + // Change the name of private files to reflect the performance. + $wrappers['private']['name'] = t('Slow files'); +} + +/** * Load additional information into file objects. * * file_load_multiple() calls this hook to allow modules to load |