mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-06-25 16:19:19 +02:00
feat: require 3 mots-clés in partage, language asterisk toggle, admin auto-save checkboxes
- tag-search: add minTags/required params, counter shows red if < 3, accent if ≥ 3 - form.php: pass minTags=3 for partage mode keywords - checkbox-list: support labelHtml for raw HTML label with targetable asterisk span - language-autre-fragment: OOB swap updates #languages-required-asterisk when autre pills change - language-search: client-side update #languages-required-asterisk on pill add/remove - contenus.php: replace 3 form+submit-button fieldsets with HTMX auto-save checkboxes - settings.php: detect HX-Request header, return OOB CSRF token updates, skip redirect
This commit is contained in:
@@ -18,6 +18,7 @@ require_once APP_ROOT . '/src/AdminLogger.php';
|
||||
$db = new Database();
|
||||
$logger = AdminLogger::make();
|
||||
|
||||
$isHxRequest = (isset($_SERVER['HTTP_HX_REQUEST']) && $_SERVER['HTTP_HX_REQUEST'] === 'true');
|
||||
$section = $_POST['section'] ?? '';
|
||||
|
||||
if ($section === 'formulaire') {
|
||||
@@ -34,7 +35,9 @@ if ($section === 'formulaire') {
|
||||
$newValues[$key] = $value;
|
||||
}
|
||||
$logger->logFormSettingsUpdate($newValues);
|
||||
App::flash('success', "Paramètres du formulaire mis à jour.");
|
||||
if (!$isHxRequest) {
|
||||
App::flash('success', "Paramètres du formulaire mis à jour.");
|
||||
}
|
||||
} elseif ($section === 'objet_types') {
|
||||
$newValues = [
|
||||
'objet_these_enabled' => isset($_POST['objet_these_enabled']) ? '1' : '0',
|
||||
@@ -43,7 +46,9 @@ if ($section === 'formulaire') {
|
||||
$db->setSetting('objet_these_enabled', $newValues['objet_these_enabled']);
|
||||
$db->setSetting('objet_frart_enabled', $newValues['objet_frart_enabled']);
|
||||
$logger->logObjetTypesUpdate($newValues);
|
||||
App::flash('success', "Types de travaux mis à jour.");
|
||||
if (!$isHxRequest) {
|
||||
App::flash('success', "Types de travaux mis à jour.");
|
||||
}
|
||||
} elseif ($section === 'smtp') {
|
||||
$smtpData = [
|
||||
'host' => $_POST['smtp_host'] ?? '',
|
||||
@@ -96,5 +101,15 @@ if ($section === 'formulaire') {
|
||||
}
|
||||
|
||||
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
|
||||
|
||||
if ($isHxRequest) {
|
||||
// Return updated CSRF tokens for all three hidden inputs on the page
|
||||
$newToken = htmlspecialchars($_SESSION['csrf_token']);
|
||||
echo '<input type="hidden" id="csrf_token_files" value="' . $newToken . '" hx-swap-oob="true">';
|
||||
echo '<input type="hidden" id="csrf_token_acces" value="' . $newToken . '" hx-swap-oob="true">';
|
||||
echo '<input type="hidden" id="csrf_token_types" value="' . $newToken . '" hx-swap-oob="true">';
|
||||
exit;
|
||||
}
|
||||
|
||||
header('Location: /admin/parametres.php');
|
||||
exit;
|
||||
|
||||
Reference in New Issue
Block a user