From 296956e9c77b7278c41029cc3f79d4085e913d00 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 6 Oct 2017 20:15:44 +0200 Subject: [PATCH] fix #49 --- Models/MediaMapper.php | 2 +- Theme/Backend/media-single.tpl.php | 120 ++++++++++++++++++++++++++--- 2 files changed, 112 insertions(+), 10 deletions(-) diff --git a/Models/MediaMapper.php b/Models/MediaMapper.php index 0ce028b..0b7ccea 100644 --- a/Models/MediaMapper.php +++ b/Models/MediaMapper.php @@ -35,7 +35,7 @@ class MediaMapper extends DataMapperAbstract 'media_description' => ['name' => 'media_description', 'type' => 'string', 'internal' => 'description'], 'media_versioned' => ['name' => 'media_versioned', 'type' => 'bool', 'internal' => 'versioned'], 'media_file' => ['name' => 'media_file', 'type' => 'string', 'internal' => 'path'], - 'media_absolute' => ['name' => 'media_absolute', 'type' => 'string', 'internal' => 'isAbsolute'], + 'media_absolute' => ['name' => 'media_absolute', 'type' => 'bool', 'internal' => 'isAbsolute'], 'media_extension' => ['name' => 'media_extension', 'type' => 'string', 'internal' => 'extension'], 'media_description' => ['name' => 'media_description', 'type' => 'string', 'internal' => 'description'], 'media_size' => ['name' => 'media_size', 'type' => 'int', 'internal' => 'size'], diff --git a/Theme/Backend/media-single.tpl.php b/Theme/Backend/media-single.tpl.php index b5c98eb..e3e98db 100644 --- a/Theme/Backend/media-single.tpl.php +++ b/Theme/Backend/media-single.tpl.php @@ -37,21 +37,122 @@ echo $this->getData('nav')->render(); + + +
+ getExtension() === 'collection' + && !is_file($media->getPath() . $this->request->getData('sub')) + ) || ( + is_dir($media->getPath()) + && ($this->request->getData('sub') === null || is_dir($media->getPath() . $this->request->getData('sub'))) + ) + ) : ?> +
+
+ + + + + + getPath())) : foreach($media as $key => $value) : + $url = \phpOMS\Uri\UriFactory::build('{/base}/{/lang}/backend/media/single?{?}&id=' . $value->getId()); + + $icon = ''; + $extensionType = \phpOMS\System\File\FileUtils::getExtensionType($value->getExtension()); + + if($extensionType === \phpOMS\System\File\ExtensionType::CODE) { + $icon = 'file-code-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::TEXT) { + $icon = 'file-text-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::PRESENTATION) { + $icon = 'file-powerpoint-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::PDF) { + $icon = 'file-pdf-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::ARCHIVE) { + $icon = 'file-zip-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::AUDIO) { + $icon = 'file-audio-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::VIDEO) { + $icon = 'file-video-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::IMAGE) { + $icon = 'file-image-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::SPREADSHEET) { + $icon = 'file-excel-o'; + } elseif($value->getExtension() === 'collection') { + $icon = 'folder-open-o'; + } else { + $icon = 'file-o'; + } + ?> + + +
getHtml('Media') ?>
+ getHtml('Name') ?> + getHtml('Type') ?> + getHtml('Size') ?> + getHtml('Creator') ?> + getHtml('Created') ?> +
+ printHtml($value->getName()); ?> + printHtml($value->getExtension()); ?> + printHtml($value->getSize()); ?> + printHtml($value->getCreatedBy()->getName1()); ?> + printHtml($value->getCreatedAt()->format('Y-m-d H:i:s')); ?> + getPath() . $this->request->getData('sub')) && phpOMS\Utils\StringUtils::startsWith(str_replace('\\', '/', realpath($media->getPath() . $this->request->getData('sub'))), $media->getPath()) ? $media->getPath() . $this->request->getData('sub') : $media->getPath(); ?> + $value) : + $url = \phpOMS\Uri\UriFactory::build('{/base}/{/lang}/backend/media/single?{?}&id=' . $media->getId() . '&sub=' . substr($value, strlen($media->getPath()))); + $icon = ''; + $extensionType = \phpOMS\System\File\FileUtils::getExtensionType(!is_dir($value) ? \phpOMS\System\File\Local\File::extension($value) : 'collection'); + + if($extensionType === \phpOMS\System\File\ExtensionType::CODE) { + $icon = 'file-code-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::TEXT) { + $icon = 'file-text-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::PRESENTATION) { + $icon = 'file-powerpoint-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::PDF) { + $icon = 'file-pdf-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::ARCHIVE) { + $icon = 'file-zip-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::AUDIO) { + $icon = 'file-audio-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::VIDEO) { + $icon = 'file-video-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::IMAGE) { + $icon = 'file-image-o'; + } elseif($extensionType === \phpOMS\System\File\ExtensionType::SPREADSHEET) { + $icon = 'file-excel-o'; + } elseif($extensionType === 'collection') { + $icon = 'folder-open-o'; + } else { + $icon = 'file-o'; + } + ?> +
+ getPath())); ?> + + + + format('Y-m-d'); ?> + +
+
+
+
- getExtension()) === \phpOMS\System\File\ExtensionType::IMAGE) : ?> -
- getExtension() === 'collection') : ?> - + getPath() . $this->request->getData('sub')) && phpOMS\Utils\StringUtils::startsWith(str_replace('\\', '/', realpath($media->getPath() . $this->request->getData('sub'))), $media->getPath()) ? $media->getPath() . $this->request->getData('sub') : $media->getPath(); + if(\phpOMS\System\File\FileUtils::getExtensionType($media->getExtension()) === \phpOMS\System\File\ExtensionType::IMAGE || \phpOMS\System\File\FileUtils::getExtensionType(\phpOMS\System\File\Local\File::extension($path)) === \phpOMS\System\File\ExtensionType::IMAGE) : ?> +
                     getPath());
+                    $output = file_get_contents($media->isAbsolute() ? $path : __DIR__ . '/../../../../' . $path);
                     $output = str_replace(["\r\n", "\r"], "\n", $output);
                     $output = explode("\n", $output);
                     foreach($output as $line) : ?>printHtml($line); ?>
@@ -60,4 +161,5 @@ echo $this->getData('nav')->render();
             
+
\ No newline at end of file