mirror of
https://github.com/Karaka-Management/oms-Media.git
synced 2026-02-04 19:48:42 +00:00
Implement mime type specific rendering
This commit is contained in:
parent
a162214ef6
commit
2989ba7f10
|
|
@ -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();
|
|||
<template id="iMediaUpdateTpl">
|
||||
<textarea class="textContent" form="iMediaFileUpdate" data-tpl-text="/media/content" data-tpl-value="/media/content" data-marker="tpl" name="content"></textarea>
|
||||
</template>
|
||||
<pre class="textContent" data-tpl-text="/media/content" data-tpl-value="/media/content"><?= $this->printHtml(
|
||||
$this->getFileContent(($media->isAbsolute ? '' : __DIR__ . '/../../../../') . $media->getPath())
|
||||
); ?></pre>
|
||||
<?php if ($media->extension === 'csv') :
|
||||
$f = \fopen(($media->isAbsolute ? '' : __DIR__ . '/../../../../') . $media->getPath(), 'r');
|
||||
|
||||
echo '<table class="default">';
|
||||
$delim = CsvSettings::getFileDelimiter($f, 3);
|
||||
while (($line = \fgetcsv($f, 0, $delim)) !== false) {
|
||||
echo '<tr>';
|
||||
foreach ($line as $cell) {
|
||||
echo '<td>' . \htmlspecialchars($cell);
|
||||
}
|
||||
}
|
||||
|
||||
\fclose($f);
|
||||
echo '</table>';
|
||||
elseif ($media->extension === 'md') : ?>
|
||||
<article><?= Markdown::parse(
|
||||
$this->getFileContent(($media->isAbsolute ? '' : __DIR__ . '/../../../../') . $media->getPath())
|
||||
); ?></article>
|
||||
<?php else : ?>
|
||||
<pre class="textContent" data-tpl-text="/media/content" data-tpl-value="/media/content"><?= $this->printHtml(
|
||||
$this->getFileContent(($media->isAbsolute ? '' : __DIR__ . '/../../../../') . $media->getPath())
|
||||
); ?></pre>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php elseif ($this->isVideoFile($media, $path)) : ?>
|
||||
<video width="100%" controls>
|
||||
<source src="<?= $media->getPath(); ?>" type="video/<?= $media->extension; ?>">
|
||||
Your browser does not support HTML video.
|
||||
</video>
|
||||
<?php elseif ($this->isAudioFile($media, $path)) : ?>
|
||||
<audio width="100%" controls>
|
||||
<source src="<?= $media->getPath(); ?>" type="audio/<?= $media->extension; ?>">
|
||||
Your browser does not support HTML audio.
|
||||
</audio>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user