WIP - course creation fixes when adding content

pull/2744/head
Julio Montoya 7 years ago
parent 2cc317d84d
commit 2c1297ced8
  1. 2
      main/admin/course_add.php
  2. 27
      main/inc/lib/document.lib.php
  3. 6
      tests/scripts/migrate_item_property.php

@ -139,7 +139,7 @@ if (count($languages) === 1) {
} else { } else {
$form->addSelectLanguage( $form->addSelectLanguage(
'course_language', 'course_language',
get_lang('Ln'), get_lang('Language'),
[], [],
['style' => 'width:150px'] ['style' => 'width:150px']
); );

@ -6487,9 +6487,10 @@ class DocumentManager
$extension = pathinfo($fileName, PATHINFO_EXTENSION); $extension = pathinfo($fileName, PATHINFO_EXTENSION);
$media->setContext('default'); $media->setContext('default');
$provider = 'sonata.media.provider.image'; $provider = 'sonata.media.provider.file';
if (!in_array($extension, ['jpeg', 'jpg', 'gif', 'png'])) { $isImage = in_array($extension, ['jpeg', 'jpg', 'gif', 'png']);
$provider = 'sonata.media.provider.file'; if ($isImage) {
$provider = 'sonata.media.provider.image';
} }
$media->setProviderName($provider); $media->setProviderName($provider);
@ -6499,10 +6500,22 @@ class DocumentManager
$file = $content; $file = $content;
$media->setSize($file->getSize()); $media->setSize($file->getSize());
} else { } else {
$handle = tmpfile(); // $path points to a file in the directory
fwrite($handle, $content); if (file_exists($path) && !is_dir($path)) {
$file = new \Sonata\MediaBundle\Extra\ApiMediaFile($handle); $file = $path;
$file->setMimetype($media->getContentType()); $media->setSize(filesize($file));
if ($isImage) {
$size = getimagesize($file);
$media->setWidth($size[0]);
$media->setHeight($size[1]);
}
} else {
// We get the content and create a file
$handle = tmpfile();
fwrite($handle, $content);
$file = new \Sonata\MediaBundle\Extra\ApiMediaFile($handle);
$file->setMimetype($media->getContentType());
}
} }
$media->setBinaryContent($file); $media->setBinaryContent($file);

@ -178,9 +178,9 @@ while ($row = Database::fetch_array($result, 'ASSOC')) {
$media->setSize($documentData['size']); $media->setSize($documentData['size']);
$media->setContext('default'); $media->setContext('default');
$provider = 'sonata.media.provider.image'; $provider = 'sonata.media.provider.file';
if (!in_array($extension, ['jpeg', 'jpg', 'gif', 'png'])) { if (in_array($extension, ['jpeg', 'jpg', 'gif', 'png'])) {
$provider = 'sonata.media.provider.file'; $provider = 'sonata.media.provider.image';
} }
$media->setProviderName($provider); $media->setProviderName($provider);

Loading…
Cancel
Save