mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 11:09:18 +02:00
- DB migration 007: add sort_order + display_label to thesis_files - Database: getThesisFiles ordered by sort_order; insertThesisFile accepts label/order; new reorderThesisFiles() and updateThesisFileLabel() methods - ThesisCreateController + ThesisEditController: expand allowed MIME/exts to include audio (mp3/ogg/wav/flac/aac/m4a), video (webm/mov/ogv), image (gif/webp), archives (tar/gz), any-ext via octet-stream; max size raised to 500 MB; accept file_labels[] and file_orders[] POST fields; detectFileType() helper - MediaController: expanded MIME allowlist; HTTP Range support for audio/video; force-download for unknown types; inline for known displayable types - fieldset-files.php: sortable queue UI with SortableJS, per-file labels, 500 MB hint - templates/admin/edit.php: existing files as sortable list with drag handles, type icons, label inputs, delete checkboxes, hidden sort-order fields - file-upload-queue.js: new JS replacing file-preview.js — sortable new-file queue, per-file labels, hidden order fields on submit, backward-compat legacy preview - tfe.php: renders audio (<audio>), all video formats, images, PDF, and download-only 'other' files; reads display_label; sorted by sort_order - tfe.css + form.css: styles for audio player, download files, sortable queue, drag handles, file type badges, label inputs - .htaccess + .user.ini: upload_max_filesize=512M / post_max_size=520M
55 lines
2.3 KiB
PHP
55 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* Shared partial — "Fichiers" fieldset (add / student submission mode).
|
|
*
|
|
* Renders upload inputs for cover image, banner image, and TFE files.
|
|
* TFE files support multiple file types (PDF, image, audio, video, other),
|
|
* drag-to-reorder via SortableJS, and per-file label input.
|
|
*
|
|
* For the edit form, the existing-files management is inline in edit.php.
|
|
*
|
|
* Variables consumed: none beyond APP_ROOT (always available).
|
|
*/
|
|
?>
|
|
<fieldset>
|
|
<legend>Fichiers</legend>
|
|
|
|
<?php
|
|
$name = 'couverture';
|
|
$label = 'Image de couverture :';
|
|
$accept = 'image/jpeg,image/png';
|
|
$hint = 'JPG, PNG. Taille max : 20 MB.';
|
|
include APP_ROOT . '/templates/partials/form/file-field.php';
|
|
?>
|
|
|
|
<?php
|
|
$name = 'banner';
|
|
$label = 'Image bannière (accueil) :';
|
|
$accept = 'image/jpeg,image/png,image/webp';
|
|
$hint = 'JPG, PNG ou WEBP. Format paysage recommandé (4:1). Max 20 MB.';
|
|
include APP_ROOT . '/templates/partials/form/file-field.php';
|
|
?>
|
|
|
|
<!-- TFE files — multi-file, sortable, with per-file labels -->
|
|
<div class="admin-form-group admin-files-fieldgroup">
|
|
<label>Fichiers du TFE :</label>
|
|
<div class="admin-file-input">
|
|
<input type="file" id="tfe-files-input"
|
|
name="files[]" multiple
|
|
accept=".pdf,.jpg,.jpeg,.png,.gif,.webp,.mp4,.webm,.mov,.ogv,.mp3,.ogg,.oga,.wav,.flac,.aac,.m4a,.zip,.tar,.gz,.vtt"
|
|
class="tfe-file-picker">
|
|
<small class="admin-file-hint">
|
|
Types acceptés : PDF · JPG/PNG/GIF/WEBP · MP4/WebM/MOV (vidéo) · MP3/OGG/WAV/FLAC (audio) · ZIP/TAR (archives) · autres fichiers (téléchargement uniquement).
|
|
Max 500 MB par fichier.
|
|
Les fichiers <code>.vtt</code> sont des sous-titres et seront associés automatiquement à la vidéo précédente.
|
|
</small>
|
|
|
|
<!-- Sortable file queue — populated by JS -->
|
|
<ul id="tfe-file-queue" class="tfe-file-queue sortable-list" aria-label="Fichiers sélectionnés (réordonnable)">
|
|
<!-- Items injected by file-upload-queue.js -->
|
|
</ul>
|
|
<p id="tfe-file-queue-empty" class="tfe-queue-empty">Aucun fichier sélectionné.</p>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|