Merge branch 'feature/1.7-media' of github.com:getgrav/grav into 1.7

This commit is contained in:
Matias Griese
2020-06-23 14:35:46 +03:00
3 changed files with 58 additions and 53 deletions

View File

@@ -13,6 +13,7 @@
* Fixed file field in `Flex Objects` (use `Grav\Common\Flex\Types\GenericObject` instead of `FlexObject`) [flex-objects#37](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/37)
* Fixed saving nested file fields in `Flex Objects` [flex-objects#34](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/34)
* JSON Route of homepage with no route set is valid [form#425](https://github.com/getgrav/grav-plugin-form/issues/425)
* Fixed `MediaUploadTrait::copyUploadedFile()` not adding uploaded media to the collection
# v1.7.0-rc.11
## 05/14/2020

View File

@@ -13,6 +13,7 @@ use Grav\Common\Config\Config;
use Grav\Common\Filesystem\Folder;
use Grav\Common\Grav;
use Grav\Common\Language\Language;
use Grav\Common\Page\Medium\MediumFactory;
use Grav\Common\Security;
use Grav\Common\Utils;
use Grav\Framework\Filesystem\Filesystem;
@@ -256,6 +257,10 @@ trait MediaUploadTrait
throw new RuntimeException($this->translate('PLUGIN_ADMIN.FAILED_TO_MOVE_UPLOADED_FILE'), 400);
}
// Add the new file into the media.
$medium = MediumFactory::fromFile($filepath);
$this->add($filename, $medium);
// Finally clear media cache.
$locator->clearCache();
$this->clearCache();

View File

@@ -10,20 +10,16 @@ namespace Grav\Framework\Flex\Traits;
*/
use Grav\Common\Config\Config;
use Grav\Common\Filesystem\Folder;
use Grav\Common\Grav;
use Grav\Common\Media\Interfaces\MediaCollectionInterface;
use Grav\Common\Media\Interfaces\MediaUploadInterface;
use Grav\Common\Media\Traits\MediaTrait;
use Grav\Common\Page\Medium\Medium;
use Grav\Common\Page\Medium\MediumFactory;
use Grav\Common\Utils;
use Grav\Framework\Cache\CacheInterface;
use Grav\Framework\Filesystem\Filesystem;
use Grav\Framework\Flex\FlexDirectory;
use Grav\Framework\Form\FormFlashFile;
use Psr\Http\Message\UploadedFileInterface;
use RocketTheme\Toolbox\File\YamlFile;
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
use RuntimeException;
@@ -71,16 +67,10 @@ trait FlexMediaTrait
return $media;
}
public function __debugInfo()
{
return parent::__debugInfo() + [
'uploads:private' => $this->getUpdatedMedia()
];
}
/**
* @param string $field
* @return array
* @internal
*/
protected function getMediaFieldSettings(string $field): array
{
@@ -99,6 +89,57 @@ trait FlexMediaTrait
return $settings;
}
/**
* @param UploadedFileInterface $uploadedFile
* @param string|null $filename
* @param string|null $field
* @return void
* @internal
*/
public function checkUploadedMediaFile(UploadedFileInterface $uploadedFile, string $filename = null, string $field = null)
{
$media = $this->getMedia();
$media->checkUploadedFile($uploadedFile, $filename, $this->getMediaFieldSettings($field ?? ''));
}
/**
* @param UploadedFileInterface $uploadedFile
* @param string|null $filename
* @param string|null $field
* @return void
* @internal
*/
public function uploadMediaFile(UploadedFileInterface $uploadedFile, string $filename = null, string $field = null): void
{
$media = $this->getMedia();
$settings = $this->getMediaFieldSettings($field ?? '');
$media->checkUploadedFile($uploadedFile, $filename, $settings);
$media->copyUploadedFile($uploadedFile, $filename, $settings);
$this->clearMediaCache();
}
/**
* @param string $filename
* @return void
* @internal
*/
public function deleteMediaFile(string $filename): void
{
$media = $this->getMedia();
$media->deleteFile($filename);
$this->clearMediaCache();
}
/**
* @return array
*/
public function __debugInfo()
{
return parent::__debugInfo() + [
'uploads:private' => $this->getUpdatedMedia()
];
}
/**
* @param array $files
* @return void
@@ -289,46 +330,4 @@ trait FlexMediaTrait
throw new RuntimeException($language->translate('PLUGIN_ADMIN.UNSUPPORTED_FILE_TYPE') . ': ' . $extension, 400);
}
}
/**
* @param UploadedFileInterface $uploadedFile
* @return void
* @deprecated 1.7 Use Media class that implements MediaUploadInterface instead.
*/
public function checkUploadedMediaFile(UploadedFileInterface $uploadedFile)
{
user_error(__METHOD__ . '() is deprecated since Grav 1.7, use Media class that implements MediaUploadInterface instead', E_USER_DEPRECATED);
$media = $this->getMedia();
$media->checkUploadedFile($uploadedFile);
}
/**
* @param UploadedFileInterface $uploadedFile
* @param string|null $filename
* @return void
* @deprecated 1.7 Use Media class that implements MediaUploadInterface instead.
*/
public function uploadMediaFile(UploadedFileInterface $uploadedFile, string $filename = null): void
{
user_error(__METHOD__ . '() is deprecated since Grav 1.7, use Media class that implements MediaUploadInterface instead', E_USER_DEPRECATED);
$media = $this->getMedia();
$media->copyUploadedFile($uploadedFile, $filename);
$this->clearMediaCache();
}
/**
* @param string $filename
* @return void
* @deprecated 1.7 Use Media class that implements MediaUploadInterface instead.
*/
public function deleteMediaFile(string $filename): void
{
user_error(__METHOD__ . '() is deprecated since Grav 1.7, use Media class that implements MediaUploadInterface instead', E_USER_DEPRECATED);
$media = $this->getMedia();
$media->deleteFile($filename);
$this->clearMediaCache();
}
}