prepare( "SELECT s.id as schedule_id, s.send_time, s.status, s.is_recurring, s.recurring_days, s.recurring_time, m.id as message_id, m.content, r.name as recipient_name, r.platform as recipient_platform, -- Añadimos la plataforma u.username as creator_username FROM schedules s JOIN messages m ON s.message_id = m.id JOIN recipients r ON s.recipient_id = r.id -- Usamos la nueva tabla 'recipients' JOIN users u ON m.user_id = u.id WHERE m.user_id = ? AND s.status IN ('draft', 'pending', 'failed') ORDER BY s.created_at DESC" ); $stmt->execute([$currentUserId]); $messages = $stmt->fetchAll(); // Función auxiliar para convertir días de recurrencia a nombres function getDayNames($daysString) { // Verificar si el valor es nulo o no es una cadena if ($daysString === null || !is_string($daysString)) { return ''; } // Eliminar espacios en blanco y verificar si está vacío $daysString = trim($daysString); if (empty($daysString)) { return ''; } $dayMap = [ 0 => 'Domingo', 1 => 'Lunes', 2 => 'Martes', 3 => 'Miércoles', 4 => 'Jueves', 5 => 'Viernes', 6 => 'Sábado' ]; $days = explode(',', $daysString); $names = []; foreach ($days as $day) { $day = trim($day); if (is_numeric($day) && isset($dayMap[(int)$day])) { $names[] = $dayMap[(int)$day]; } } return !empty($names) ? implode(', ', $names) : ''; } $pageTitle = 'Dashboard'; require_once __DIR__ . '/templates/header.php'; ?>
Bienvenido, !
Este es el panel principal. Desde aquí podrás gestionar tus notificaciones de Discord.
No tienes mensajes programados actualmente.
| Contenido | Destinatario | Programación | Estado | Acciones |
|---|---|---|---|---|
| ' . htmlspecialchars(ucfirst($msg['recipient_platform'])) . ''; } ?> |