loadFormData()); } catch (Exception $e) { error_log('Failed to load form data: ' . $e->getMessage()); die('Erreur lors du chargement du formulaire.'); } $formData = $_SESSION['form_data'] ?? []; unset($_SESSION['form_data']); $autofocusField = App::consumeAutofocus(); /** * Merge autofocus into the $attrs array for a given field. */ function withAutofocus(string $fieldName, array $attrs = []): array { global $autofocusField; if ($autofocusField === $fieldName) { $attrs['autofocus'] = true; } return $attrs; } function old($key, $default = "") { global $formData; return isset($formData[$key]) ? htmlspecialchars($formData[$key]) : $default; } function wasSelected($key, $value) { global $formData; if (!isset($formData[$key])) return false; if (is_array($formData[$key])) return in_array($value, $formData[$key]); return $formData[$key] == $value; } ?>

Ajouter un TFE

* Champs obligatoires

">
Informations du TFE 'name']); include APP_ROOT . '/templates/partials/form/text-field.php'; ?> 'email']; include APP_ROOT . '/templates/partials/form/text-field.php'; ?>
Si cette case est cochée, votre contact apparaîtra sur la page publique de votre TFE.
Cadre académique 2000, 'max' => date('Y') + 1]); include APP_ROOT . '/templates/partials/form/text-field.php'; ?>
Fichiers
Métadonnées complémentaires $at['id'], 'name' => $at['name']]; }, $enabledAccessTypes); $defaultAccessType = 2; $selectedAccessType = isset($formData['access_type_id']) ? (int)$formData['access_type_id'] : $defaultAccessType; $name = 'access_type_id'; $label = 'Visibilité / Accès :'; $options = $accessOptions; $selected = $selectedAccessType; $placeholder = null; $required = true; $attrs = []; include APP_ROOT . '/templates/partials/form/select-field.php'; ?>
E-mail de confirmation