{$siteName}

{$title}

{$content}

Ce message a été envoyé automatiquement par {$siteName}. Ne pas répondre directement à cet email.

HTML; } /** * Envoi notification admin — nouvelle demande de réservation */ function notifyAdminNewBooking( string $adminEmail, array $resource, array $booking, string $primaryColor, string $siteName, string $adminUrl ): bool { $resName = htmlspecialchars((string)($resource['name'] ?? '—'), ENT_QUOTES, 'UTF-8'); $requester = htmlspecialchars((string)($booking['requester_name'] ?? ($booking['member_name'] ?? 'Salarié connecté')), ENT_QUOTES, 'UTF-8'); $reqEmail = htmlspecialchars((string)($booking['requester_email'] ?? ''), ENT_QUOTES, 'UTF-8'); $starts = !empty($booking['starts_at']) ? date('d/m/Y H:i', strtotime($booking['starts_at'])) : '—'; $ends = !empty($booking['ends_at']) ? date('d/m/Y H:i', strtotime($booking['ends_at'])) : '—'; $purpose = htmlspecialchars((string)($booking['purpose'] ?? ''), ENT_QUOTES, 'UTF-8'); $notes = htmlspecialchars((string)($booking['notes'] ?? ''), ENT_QUOTES, 'UTF-8'); $status = $booking['status'] === 'approved' ? '✅ Approuvée automatiquement' : '⏳ En attente de validation'; $adminUrlH = htmlspecialchars($adminUrl, ENT_QUOTES, 'UTF-8'); /* * Ligne "Notes" optionnelle, construite en dehors du heredoc : * $notes est déjà échappé via htmlspecialchars() plus haut, pas * besoin de le refaire ici. */ $notesRow = ''; if ($notes !== '') { $notesRow = 'Notes' . $notes . ''; } $content = <<Une nouvelle demande de réservation vient d'être soumise sur votre portail.

{$notesRow}
Ressource{$resName}
Demandeur{$requester}
Email{$reqEmail}
Période{$starts} → {$ends}
Objet{$purpose}
Statut{$status}

Gérer les réservations →

HTML; $html = mailTemplate("📋 Nouvelle demande de réservation", $content, $primaryColor, $siteName); return sendMail($adminEmail, "[$siteName] Nouvelle demande : $resName", $html); } /** * Envoi confirmation au demandeur — approbation ou refus */ function notifyRequesterBookingStatus( string $toEmail, string $toName, array $resource, array $booking, string $status, // 'approved' | 'rejected' string $primaryColor, string $siteName, string $portalUrl, string $adminMessage = '' ): bool { $resName = htmlspecialchars((string)($resource['name'] ?? '—'), ENT_QUOTES, 'UTF-8'); $starts = !empty($booking['starts_at']) ? date('d/m/Y H:i', strtotime($booking['starts_at'])) : '—'; $ends = !empty($booking['ends_at']) ? date('d/m/Y H:i', strtotime($booking['ends_at'])) : '—'; $nameH = htmlspecialchars($toName, ENT_QUOTES, 'UTF-8'); $msgH = $adminMessage ? htmlspecialchars($adminMessage, ENT_QUOTES, 'UTF-8') : ''; $portalH = htmlspecialchars($portalUrl, ENT_QUOTES, 'UTF-8'); $isApproved = $status === 'approved'; $statusIcon = $isApproved ? '✅' : '❌'; $statusLabel = $isApproved ? 'approuvée' : 'refusée'; $statusColor = $isApproved ? '#16a34a' : '#dc2626'; $statusBg = $isApproved ? '#dcfce7' : '#fee2e2'; $emailTitle = $isApproved ? "✅ Réservation approuvée" : "❌ Réservation non accordée"; $msgBlock = $msgH ? "
Message de l'équipe CSE :
{$msgH}
" : ''; $btnBlock = $isApproved ? "

Voir mes réservations →

" : "

Voir d'autres ressources →

"; $content = <<Bonjour {$nameH},

Votre demande de réservation a été {$statusLabel}.

{$statusIcon}

{$resName}

📅 {$starts} → {$ends}

{$msgBlock} {$btnBlock} HTML; $html = mailTemplate($emailTitle, $content, $primaryColor, $siteName); return sendMail($toEmail, "[$siteName] Réservation $statusLabel — $resName", $html); } Mot de passe oublié — CSE UDAF
Mot de passe oublié
CSE UDAF
1
Identité
2
Code email
3
Nouveau MDP
🪪 Saisissez vos informations personnelles telles qu'enregistrées dans votre dossier RH. Un code de vérification vous sera envoyé par email.