diff --git a/lib/Alchemy/Phrasea/Command/Setup/XSendFileConfigurationDumper.php b/lib/Alchemy/Phrasea/Command/Setup/XSendFileConfigurationDumper.php
index f761945e73..ec20cfe039 100644
--- a/lib/Alchemy/Phrasea/Command/Setup/XSendFileConfigurationDumper.php
+++ b/lib/Alchemy/Phrasea/Command/Setup/XSendFileConfigurationDumper.php
@@ -33,27 +33,26 @@ class XSendFileConfigurationDumper extends Command
$output->writeln('');
if (!$this->container['phraseanet.xsendfile-factory']->isXSendFileModeEnabled()) {
- $output->writeln('XSendFile support is disabled');
-
- return 1;
+ $output->writeln('XSendFile support is disabled, enable it to use this feature.');
+ $ret = 1;
+ } else {
+ $output->writeln('XSendFile support is enabled');
+ $ret = 0;
}
- $output->writeln('XSendFile support is enabled');
-
try {
- $configuration = $this->container['phraseanet.xsendfile-factory']->getMode(true)->getVirtualHostConfiguration();
+ $configuration = $this->container['phraseanet.xsendfile-factory']->getMode(true, true)->getVirtualHostConfiguration();
$output->writeln('XSendFile configuration seems OK');
$output->writeln($configuration);
- return 0;
} catch (RuntimeException $e) {
$output->writeln('XSendFile configuration seems invalid');
- return 1;
+ $ret = 1;
}
$output->writeln('');
- return 0;
+ return $ret;
}
}
diff --git a/lib/Alchemy/Phrasea/Command/Setup/XSendFileMappingGenerator.php b/lib/Alchemy/Phrasea/Command/Setup/XSendFileMappingGenerator.php
index d74705649b..e673827d18 100644
--- a/lib/Alchemy/Phrasea/Command/Setup/XSendFileMappingGenerator.php
+++ b/lib/Alchemy/Phrasea/Command/Setup/XSendFileMappingGenerator.php
@@ -56,13 +56,15 @@ class XSendFileMappingGenerator extends Command
$this->container['conf']->set('xsendfile', $conf);
$output->writeln(" OK");
$output->writeln("");
- $output->write("It is now strongly recommended to use xsendfile:dump-configuration command to upgrade your virtual-host");
+ $output->writeln("It is now strongly recommended to use xsendfile:dump-configuration command to upgrade your virtual-host");
} else {
$output->writeln("Configuration will not be written, use --write option to write it");
$output->writeln("");
$output->writeln(Yaml::dump(['xsendfile' => $conf], 4));
}
+ $output->writeln("");
+
return 0;
}
diff --git a/lib/Alchemy/Phrasea/Http/XSendFile/XSendFileFactory.php b/lib/Alchemy/Phrasea/Http/XSendFile/XSendFileFactory.php
index 936a92e52f..d98966d31c 100644
--- a/lib/Alchemy/Phrasea/Http/XSendFile/XSendFileFactory.php
+++ b/lib/Alchemy/Phrasea/Http/XSendFile/XSendFileFactory.php
@@ -66,9 +66,9 @@ class XSendFileFactory
*
* @throws InvalidArgumentException if mode type is unknown
*/
- public function getMode($throwException = false)
+ public function getMode($throwException = false, $forceMode = false)
{
- if (false === $this->enabled) {
+ if (false === $this->enabled && true !== $forceMode) {
return new NullMode();
}
diff --git a/lib/classes/media/subdef.php b/lib/classes/media/subdef.php
index b4ee096a34..b54a66c5ec 100644
--- a/lib/classes/media/subdef.php
+++ b/lib/classes/media/subdef.php
@@ -95,6 +95,9 @@ class media_subdef extends media_abstract implements cache_cacheableInterface
*/
protected $is_physically_present = false;
+ /** @var integer */
+ private $size = 0;
+
/**
* Players types constants
*/
@@ -162,6 +165,7 @@ class media_subdef extends media_abstract implements cache_cacheableInterface
$this->mime = $datas['mime'];
$this->width = $datas['width'];
$this->height = $datas['height'];
+ $this->size = $datas['size'];
$this->etag = $datas['etag'];
$this->path = $datas['path'];
$this->url = $datas['url'];
@@ -197,6 +201,7 @@ class media_subdef extends media_abstract implements cache_cacheableInterface
if ($row) {
$this->width = (int) $row['width'];
+ $this->size = (int) $row['size'];
$this->height = (int) $row['height'];
$this->mime = $row['mime'];
$this->file = $row['file'];
@@ -222,6 +227,7 @@ class media_subdef extends media_abstract implements cache_cacheableInterface
$datas = [
'mime' => $this->mime
, 'width' => $this->width
+ , 'size' => $this->size
, 'height' => $this->height
, 'etag' => $this->etag
, 'path' => $this->path
@@ -441,7 +447,7 @@ class media_subdef extends media_abstract implements cache_cacheableInterface
*/
public function get_size()
{
- return (int) @filesize($this->get_pathfile());
+ return $this->size;
}
/**