From c93b9414fef7e9935f88980fbfacf121603cc2e4 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Fri, 4 Feb 2022 19:21:28 +0200 Subject: [PATCH] Minor media improvements --- system/src/Grav/Common/Page/Media.php | 1 + system/src/Grav/Common/Page/Medium/AbstractMedia.php | 3 ++- system/src/Grav/Common/Page/Medium/LocalMedia.php | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/system/src/Grav/Common/Page/Media.php b/system/src/Grav/Common/Page/Media.php index e1837add3..f1ebe3617 100644 --- a/system/src/Grav/Common/Page/Media.php +++ b/system/src/Grav/Common/Page/Media.php @@ -29,6 +29,7 @@ class Media extends LocalMedia public function __construct(?string $path, array $media_order = null, bool $load = true) { $this->setPath($path); + $this->indexTimeout = 60; $this->media_order = $media_order; if ($load) { diff --git a/system/src/Grav/Common/Page/Medium/AbstractMedia.php b/system/src/Grav/Common/Page/Medium/AbstractMedia.php index d4d72f3ae..41f12b5cd 100644 --- a/system/src/Grav/Common/Page/Medium/AbstractMedia.php +++ b/system/src/Grav/Common/Page/Medium/AbstractMedia.php @@ -474,7 +474,8 @@ abstract class AbstractMedia implements ExportInterface, MediaCollectionInterfac // Get file media listing. Use cached version if possible to avoid I/O. $now = time(); [$files, $timestamp] = $this->loadIndex(); - if ($timestamp < $now - $this->indexTimeout) { + $timeout = $this->indexTimeout; + if (!$timestamp || ($timeout && $timestamp < $now - $timeout)) { $media_types = $config->get('media.types'); $files = $this->prepareFileInfo($this->loadFileInfo(), $media_types, $files); diff --git a/system/src/Grav/Common/Page/Medium/LocalMedia.php b/system/src/Grav/Common/Page/Medium/LocalMedia.php index 2b9b7c6cd..a831f9aef 100644 --- a/system/src/Grav/Common/Page/Medium/LocalMedia.php +++ b/system/src/Grav/Common/Page/Medium/LocalMedia.php @@ -189,8 +189,9 @@ abstract class LocalMedia extends AbstractMedia $index = $indexFile && $indexFile->exists() ? $indexFile->load() : []; $version = $index['version'] ?? null; + $type = $index['type'] ?? null; $folder = $index['folder'] ?? null; - if ($version !== static::VERSION || $folder !== $this->path) { + if ($version !== static::VERSION || $folder !== $this->path || $type !== ($this->config['type'] ?? 'local')) { $index = []; }