Contenus
= htmlspecialchars($flash['success']) ?>
= htmlspecialchars($flash['error']) ?>
Pages statiques
| Slug | Titre | Mis à jour | Action |
|---|---|---|---|
= htmlspecialchars($p['slug']) ?> |
= htmlspecialchars($p['title']) ?> | = htmlspecialchars($p['updated_at'] ?? '—') ?> | Éditer |
À propos
| Clé | Type | Mis à jour | Action |
|---|---|---|---|
= htmlspecialchars($a['key']) ?> |
= htmlspecialchars($typeLabel) ?> | = htmlspecialchars($a['updated_at'] ?? '—') ?> | Éditer |
Blocs d'aide du formulaire étudiant·e
Ces textes apparaissent dans le formulaire de soumission accessible via les liens de partage. Ils permettent d'expliquer aux étudiant·es comment remplir chaque section. Supporte le Markdown.
Glissez les blocs d'aide (cartes violettes) pour les réorganiser dans le formulaire. Cliquez sur Éditer pour modifier le contenu d'un bloc. L'ordre est sauvegardé automatiquement après chaque déplacement.
$block) { $orderedBlocks[] = array_merge($block, [ 'key' => $key, 'label' => Database::FORM_HELP_LABELS[$key] ?? $key, ]); } // Static form structure: each item is either a 'fieldset' (visual container) // or an 'anchor' for a specific block key showing where it sits in the form. // We also need a mapping from block key → where it currently sits in the sorted list. // The entire sorted order is what matters; we render the form structure as a visual // reference alongside the sortable list. $formStructure = [ ['type' => 'anchor', 'key' => 'partage_intro', 'position' => 'before-form', 'label' => 'Avant le formulaire (introduction)'], ['type' => 'fieldset', 'name' => 'Informations du TFE', 'inputs' => ['Titre', 'Sous-titre', 'Auteur·ice(s)', 'Contact', 'Synopsis']], ['type' => 'anchor', 'key' => 'fieldset_tfe_info', 'position' => 'intro-fieldset', 'label' => 'Intro du fieldset « Informations du TFE »'], ['type' => 'anchor', 'key' => 'fieldset_synopsis', 'position' => 'intro-fieldset', 'label' => 'Note sous le champ Synopsis'], ['type' => 'fieldset', 'name' => 'Composition du jury', 'inputs' => ['Président·e', 'Promoteur·ice', 'Lecteur·ices (×4)']], ['type' => 'anchor', 'key' => 'fieldset_jury', 'position' => 'intro-fieldset', 'label' => 'Intro du fieldset « Jury »'], ['type' => 'fieldset', 'name' => 'Cadre académique', 'inputs' => ['Année', 'Orientation', 'AP', 'Finalité', 'Langues', 'Formats', 'Mots-clés']], ['type' => 'anchor', 'key' => 'fieldset_academic', 'position' => 'intro-fieldset', 'label' => 'Intro du fieldset « Cadre académique »'], ['type' => 'fieldset', 'name' => 'Fichiers', 'inputs' => ['Fichier principal (PDF)', 'Annexes']], ['type' => 'anchor', 'key' => 'fieldset_files', 'position' => 'intro-fieldset', 'label' => 'Intro du fieldset « Fichiers »'], ['type' => 'fieldset', 'name' => 'Visibilité / Accès', 'inputs' => ["Type d'accès", 'Licence']], ['type' => 'anchor', 'key' => 'fieldset_access', 'position' => 'intro-fieldset', 'label' => 'Intro du fieldset « Visibilité »'], ['type' => 'fieldset', 'name' => 'E-mail de confirmation', 'inputs' => ['Adresse e-mail']], ['type' => 'anchor', 'key' => 'fieldset_email', 'position' => 'intro-fieldset', 'label' => 'Intro du fieldset « E-mail »'], ]; ?>Ordre des blocs
Glissez pour réorganiser
Structure du formulaire
Référence visuelle — non modifiable
'', 'sort_order' => 99];
$hasContent = trim($bData['content'] ?? '') !== '';
?>
= htmlspecialchars(Database::FORM_HELP_LABELS[$item['key']] ?? $item['key']) ?>
#= (int)$bData['sort_order'] + 1 ?>
= htmlspecialchars($item['name']) ?>
- = htmlspecialchars($inp) ?>