Explorar el Código

WIP - course creation fixes when adding content

Julio Montoya hace 6 años
padre
commit
2c1297ced8

+ 1 - 1
main/admin/course_add.php

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

+ 20 - 7
main/inc/lib/document.lib.php

@@ -6487,9 +6487,10 @@ class DocumentManager
             $extension = pathinfo($fileName, PATHINFO_EXTENSION);
             $media->setContext('default');
 
-            $provider = 'sonata.media.provider.image';
-            if (!in_array($extension, ['jpeg', 'jpg', 'gif', 'png'])) {
-                $provider = 'sonata.media.provider.file';
+            $provider = 'sonata.media.provider.file';
+            $isImage = in_array($extension, ['jpeg', 'jpg', 'gif', 'png']);
+            if ($isImage) {
+                $provider = 'sonata.media.provider.image';
             }
 
             $media->setProviderName($provider);
@@ -6499,10 +6500,22 @@ class DocumentManager
                 $file = $content;
                 $media->setSize($file->getSize());
             } else {
-                $handle = tmpfile();
-                fwrite($handle, $content);
-                $file = new \Sonata\MediaBundle\Extra\ApiMediaFile($handle);
-                $file->setMimetype($media->getContentType());
+                // $path points to a file in the directory
+                if (file_exists($path) && !is_dir($path)) {
+                    $file = $path;
+                    $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);

+ 3 - 3
tests/scripts/migrate_item_property.php

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