From 2989ba7f10a4c5df59c61acbbb282c1e773fae81 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 19 Dec 2020 20:25:28 +0100 Subject: [PATCH] Implement mime type specific rendering --- Theme/Backend/media-single.tpl.php | 38 +++++++++++++++++++++++++--- Theme/Backend/template-functions.php | 8 +++--- Views/MediaView.php | 32 +++++++++++++++++++++++ 3 files changed, 71 insertions(+), 7 deletions(-) diff --git a/Theme/Backend/media-single.tpl.php b/Theme/Backend/media-single.tpl.php index 1cc33aa..537824b 100755 --- a/Theme/Backend/media-single.tpl.php +++ b/Theme/Backend/media-single.tpl.php @@ -15,6 +15,8 @@ declare(strict_types=1); use \phpOMS\System\File\FileUtils; use \phpOMS\System\File\Local\File; use \phpOMS\Uri\UriFactory; +use phpOMS\Utils\IO\Csv\CsvSettings; +use phpOMS\Utils\Parser\Markdown\Markdown; include __DIR__ . '/template-functions.php'; @@ -139,10 +141,40 @@ echo $this->getData('nav')->render(); -
printHtml(
-                            $this->getFileContent(($media->isAbsolute ? '' : __DIR__ . '/../../../../') . $media->getPath())
-                        ); ?>
+ extension === 'csv') : + $f = \fopen(($media->isAbsolute ? '' : __DIR__ . '/../../../../') . $media->getPath(), 'r'); + + echo ''; + $delim = CsvSettings::getFileDelimiter($f, 3); + while (($line = \fgetcsv($f, 0, $delim)) !== false) { + echo ''; + foreach ($line as $cell) { + echo '
' . \htmlspecialchars($cell); + } + } + + \fclose($f); + echo '
'; + elseif ($media->extension === 'md') : ?> +
getFileContent(($media->isAbsolute ? '' : __DIR__ . '/../../../../') . $media->getPath()) + ); ?>
+ +
printHtml(
+                                $this->getFileContent(($media->isAbsolute ? '' : __DIR__ . '/../../../../') . $media->getPath())
+                            ); ?>
+ + isVideoFile($media, $path)) : ?> + + isAudioFile($media, $path)) : ?> + diff --git a/Theme/Backend/template-functions.php b/Theme/Backend/template-functions.php index 5f826a3..dac982a 100755 --- a/Theme/Backend/template-functions.php +++ b/Theme/Backend/template-functions.php @@ -18,18 +18,18 @@ $fileIconFunction = function (int $extensionType) : string { if ($extensionType === ExtensionType::CODE) { return 'file-code'; - } elseif ($extensionType === ExtensionType::TEXT) { + } elseif ($extensionType === ExtensionType::TEXT || $extensionType === ExtensionType::WORD) { return 'file-text'; } elseif ($extensionType === ExtensionType::PRESENTATION) { return 'file-powerpoint'; } elseif ($extensionType === ExtensionType::PDF) { - return 'file-pdf'; + return 'file-pdf-o'; } elseif ($extensionType === ExtensionType::ARCHIVE) { return 'file-zip'; } elseif ($extensionType === ExtensionType::AUDIO) { - return 'file-audio'; + return 'file-audio-o'; } elseif ($extensionType === ExtensionType::VIDEO) { - return 'file-video'; + return 'file-video-o'; } elseif ($extensionType === ExtensionType::IMAGE) { return 'file-image-o'; } elseif ($extensionType === ExtensionType::SPREADSHEET) { diff --git a/Views/MediaView.php b/Views/MediaView.php index 14ec90a..262664b 100755 --- a/Views/MediaView.php +++ b/Views/MediaView.php @@ -160,6 +160,38 @@ class MediaView extends View || FileUtils::getExtensionType(File::extension($path)) === ExtensionType::IMAGE; } + /** + * Check if media file is video file + * + * @param Media $media Media file + * @param string $path File path + * + * @return bool + * + * @since 1.0.0 + */ + protected function isVideoFile(Media $media, string $path = '') : bool + { + return FileUtils::getExtensionType($media->extension) === ExtensionType::VIDEO + || FileUtils::getExtensionType(File::extension($path)) === ExtensionType::VIDEO; + } + + /** + * Check if media file is audio file + * + * @param Media $media Media file + * @param string $path File path + * + * @return bool + * + * @since 1.0.0 + */ + protected function isAudioFile(Media $media, string $path = '') : bool + { + return FileUtils::getExtensionType($media->extension) === ExtensionType::AUDIO + || FileUtils::getExtensionType(File::extension($path)) === ExtensionType::AUDIO; + } + /** * Check if media file is text file *