diff --git a/system/src/Grav/Framework/Flex/FlexIndex.php b/system/src/Grav/Framework/Flex/FlexIndex.php index 0b5470a53..c716472a9 100644 --- a/system/src/Grav/Framework/Flex/FlexIndex.php +++ b/system/src/Grav/Framework/Flex/FlexIndex.php @@ -332,7 +332,7 @@ class FlexIndex extends ObjectIndex implements FlexCollectionInterface, FlexInde * @param string $key * @return array */ - public function getMetaData(string $key): array + public function getMetaData($key): array { return $this->getEntries()[$key] ?? []; } diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php index 5fd835abe..b775edb4f 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php @@ -240,8 +240,4 @@ trait PageAuthorsTrait return $list; } - - abstract public function getNestedProperty($property, $default = null, $separator = null); - - abstract protected function loadAccounts(); } diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php index b0ad03e48..fb95f35d9 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php @@ -500,15 +500,9 @@ trait PageContentTrait } /** - * @inheritdoc + * @param Header|stdClass|array|null $value + * @return Header */ - abstract public function exists(): bool; - - abstract public function getProperty($property, $default = null); - abstract public function setProperty($property, $value); - abstract public function &getArrayProperty($property, $default = null, $doCreate = false); - - protected function offsetLoad_header($value) { if ($value instanceof Header) { diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php index 32b590e88..042deefac 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php @@ -1107,33 +1107,4 @@ trait PageLegacyTrait return null; } - - /** - * @param string|null $namespace - * @return CacheInterface - */ - abstract public function getCache(string $namespace = null); - - /** - * @param PageInterface|null $var - * @return PageInterface|null - */ - abstract public function parent(PageInterface $var = null); - - abstract public function getFlexDirectory(): FlexDirectory; - - abstract protected function exists(): bool; - - /** - * @return string|null - */ - abstract protected function getStorageFolder(); - - /** - * @param string $property - * @param mixed $var - * @param callable $filter - * @return mixed|null - */ - abstract protected function loadHeaderProperty(string $property, $var, callable $filter); } diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php index 2b3301ed2..5d5b25428 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php @@ -545,6 +545,4 @@ trait PageRoutableTrait return $this->root === true || $this->getKey() === '/'; } - - abstract protected function loadHeaderProperty(string $property, $var, callable $filter); } diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php index dcb0db98e..a1aa05410 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php @@ -280,6 +280,4 @@ trait PageTranslateTrait return $fallback ? $language->getFallbackLanguages($languageCode, true) : [$languageCode]; } - - abstract protected function loadHeaderProperty(string $property, $var, callable $filter); } diff --git a/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php b/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php index bab57414c..a3de076b1 100644 --- a/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php @@ -31,10 +31,10 @@ class SimpleStorage extends AbstractFilesystemStorage protected $dataPattern; /** @var string */ protected $prefix; - /** @var array */ + /** @var array|null */ protected $data; /** @var int */ - protected $modified; + protected $modified = 0; /** * {@inheritdoc} @@ -76,7 +76,7 @@ class SimpleStorage extends AbstractFilesystemStorage public function clearCache(): void { $this->data = null; - $this->modified = null; + $this->modified = 0; } /** diff --git a/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php b/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php index 7aaa6d6af..9a8048529 100644 --- a/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php +++ b/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php @@ -117,6 +117,10 @@ trait FlexMediaTrait public function checkUploadedMediaFile(UploadedFileInterface $uploadedFile, string $filename = null, string $field = null) { $media = $this->getMedia(); + if (!$media instanceof MediaUploadInterface) { + throw new RuntimeException("Media for {$this->getFlexDirectory()->getFlexType()} doesn't support file uploads."); + } + $media->checkUploadedFile($uploadedFile, $filename, $this->getMediaFieldSettings($field ?? '')); } @@ -130,8 +134,12 @@ trait FlexMediaTrait public function uploadMediaFile(UploadedFileInterface $uploadedFile, string $filename = null, string $field = null): void { $media = $this->getMedia(); + if (!$media instanceof MediaUploadInterface) { + throw new RuntimeException("Media for {$this->getFlexDirectory()->getFlexType()} doesn't support file uploads."); + } + $settings = $this->getMediaFieldSettings($field ?? ''); - $media->checkUploadedFile($uploadedFile, $filename, $settings); + $filename = $media->checkUploadedFile($uploadedFile, $filename, $settings); $media->copyUploadedFile($uploadedFile, $filename, $settings); $this->clearMediaCache(); } @@ -144,6 +152,10 @@ trait FlexMediaTrait public function deleteMediaFile(string $filename): void { $media = $this->getMedia(); + if (!$media instanceof MediaUploadInterface) { + throw new RuntimeException("Media for {$this->getFlexDirectory()->getFlexType()} doesn't support file uploads."); + } + $media->deleteFile($filename); $this->clearMediaCache(); } @@ -165,6 +177,10 @@ trait FlexMediaTrait protected function setUpdatedMedia(array $files): void { $media = $this->getMedia(); + if (!$media instanceof MediaUploadInterface) { + return; + } + $filesystem = Filesystem::getInstance(false); $list = []; @@ -263,6 +279,10 @@ trait FlexMediaTrait protected function saveUpdatedMedia(): void { $media = $this->getMedia(); + if (!$media instanceof MediaUploadInterface) { + return; + } + // Upload/delete altered files. /** diff --git a/system/src/Grav/Framework/Flex/Traits/FlexRelatedDirectoryTrait.php b/system/src/Grav/Framework/Flex/Traits/FlexRelatedDirectoryTrait.php index 59e65e559..0adfff75b 100644 --- a/system/src/Grav/Framework/Flex/Traits/FlexRelatedDirectoryTrait.php +++ b/system/src/Grav/Framework/Flex/Traits/FlexRelatedDirectoryTrait.php @@ -56,6 +56,4 @@ trait FlexRelatedDirectoryTrait return $directory; } - - abstract public function getNestedProperty($property, $default = null, $separator = null); }