Mercurial > hg > cmmr2012-drupal-site
diff core/lib/Drupal/Core/StreamWrapper/PrivateStream.php @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children | 12f9dff5fda9 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/Drupal/Core/StreamWrapper/PrivateStream.php Thu Jul 05 14:24:15 2018 +0000 @@ -0,0 +1,68 @@ +<?php + +namespace Drupal\Core\StreamWrapper; + +use Drupal\Core\Routing\UrlGeneratorTrait; +use Drupal\Core\Site\Settings; + +/** + * Drupal private (private://) stream wrapper class. + * + * Provides support for storing privately accessible files with the Drupal file + * interface. + */ +class PrivateStream extends LocalStream { + + use UrlGeneratorTrait; + + /** + * {@inheritdoc} + */ + public static function getType() { + return StreamWrapperInterface::LOCAL_NORMAL; + } + + /** + * {@inheritdoc} + */ + public function getName() { + return t('Private files'); + } + + /** + * {@inheritdoc} + */ + public function getDescription() { + return t('Private local files served by Drupal.'); + } + + /** + * {@inheritdoc} + */ + public function getDirectoryPath() { + return static::basePath(); + } + + /** + * {@inheritdoc} + */ + public function getExternalUrl() { + $path = str_replace('\\', '/', $this->getTarget()); + return $this->url('system.private_file_download', ['filepath' => $path], ['absolute' => TRUE, 'path_processing' => FALSE]); + } + + /** + * Returns the base path for private://. + * + * Note that this static method is used by \Drupal\system\Form\FileSystemForm + * so you should alter that form or substitute a different form if you change + * the class providing the stream_wrapper.private service. + * + * @return string + * The base path for private://. + */ + public static function basePath() { + return Settings::get('file_private_path'); + } + +}