mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-06-25 16:19:19 +02:00
Add website-type TFE support: URLs stored as thesis_files rows, HTMX-toggle on Site web format
This commit is contained in:
@@ -438,11 +438,12 @@
|
||||
if ($fileType === 'cover') continue;
|
||||
|
||||
// Determine display category
|
||||
$isImage = in_array($ext, ['jpg','jpeg','png','gif','bmp','webp'], true) || $fileType === 'image';
|
||||
$isVideo = in_array($ext, ['mp4','webm','mov','ogv'], true) || $fileType === 'video';
|
||||
$isAudio = in_array($ext, ['mp3','ogg','oga','wav','flac','aac','m4a'], true) || $fileType === 'audio';
|
||||
$isPdf = ($ext === 'pdf') || $fileType === 'main';
|
||||
$isOther = !($isImage || $isVideo || $isAudio || $isPdf);
|
||||
$isImage = in_array($ext, ['jpg','jpeg','png','gif','bmp','webp'], true) || $fileType === 'image';
|
||||
$isVideo = in_array($ext, ['mp4','webm','mov','ogv'], true) || $fileType === 'video';
|
||||
$isAudio = in_array($ext, ['mp3','ogg','oga','wav','flac','aac','m4a'], true) || $fileType === 'audio';
|
||||
$isPdf = ($ext === 'pdf') || $fileType === 'main';
|
||||
$isWebsite = ($fileType === 'website');
|
||||
$isOther = !($isImage || $isVideo || $isAudio || $isPdf || $isWebsite);
|
||||
|
||||
$_vttPath = null;
|
||||
if ($isVideo) {
|
||||
@@ -451,8 +452,10 @@
|
||||
}
|
||||
|
||||
$caption = !empty($file["display_label"]) ? $file["display_label"] : ($file["description"] ?? '');
|
||||
$mediaUrl = '/media?path=' . urlencode($file["file_path"]);
|
||||
$fileName = htmlspecialchars($file["file_name"] ?? basename($file["file_path"]));
|
||||
$filePath = $file['file_path'] ?? '';
|
||||
$isExternalUrl = str_starts_with($filePath, 'http://') || str_starts_with($filePath, 'https://');
|
||||
$mediaUrl = $isExternalUrl ? htmlspecialchars($filePath) : ('/media?path=' . urlencode($filePath));
|
||||
$fileName = htmlspecialchars($file["file_name"] ?? basename($filePath));
|
||||
?>
|
||||
<figure>
|
||||
<?php if ($isPdf): ?>
|
||||
@@ -464,6 +467,20 @@
|
||||
<p class="tfe-pdf-fallback">
|
||||
<a href="<?= $mediaUrl ?>&download=1">Télécharger le PDF</a>
|
||||
</p>
|
||||
<?php elseif ($isWebsite): ?>
|
||||
<iframe src="<?= $mediaUrl ?>"
|
||||
width="100%" height="700px"
|
||||
style="border:none"
|
||||
title="<?= $fileName ?>"
|
||||
sandbox="allow-scripts allow-same-origin"
|
||||
loading="lazy">
|
||||
</iframe>
|
||||
<p class="tfe-pdf-fallback">
|
||||
<a href="<?= $mediaUrl ?>" target="_blank" rel="noopener">
|
||||
Ouvrir le site dans un nouvel onglet
|
||||
<span class="sr-only">(ouvre dans un nouvel onglet)</span>
|
||||
</a>
|
||||
</p>
|
||||
<?php elseif ($isImage): ?>
|
||||
<img src="<?= $mediaUrl ?>"
|
||||
alt="<?= htmlspecialchars($caption !== '' ? $caption : $data['title'] . ' — ' . ($data['authors'] ?? '')) ?>">
|
||||
|
||||
Reference in New Issue
Block a user