Initial commit - Last War messaging system

This commit is contained in:
2026-02-19 01:33:28 -06:00
commit 38a8447a64
2162 changed files with 216183 additions and 0 deletions

167
index.php Executable file
View File

@@ -0,0 +1,167 @@
<?php
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/session_check.php';
checkSession();
require_once __DIR__ . '/includes/message_handler.php';
require_once __DIR__ . '/templates/header.php';
$userId = getCurrentUserId();
$scheduledMessages = getScheduledMessages($userId);
$sentMessages = getSentMessages($userId, 5);
$pendingCount = count(array_filter($scheduledMessages, fn($m) => $m['status'] === 'pending'));
$sentToday = count(array_filter($sentMessages, fn($m) => date('Y-m-d', strtotime($m['sent_at'])) === date('Y-m-d')));
?>
<div class="d-flex justify-content-between align-items-center mb-4">
<h2><i class="bi bi-house-door"></i> Dashboard</h2>
<span class="text-muted">Bienvenido, <?= htmlspecialchars(getCurrentUsername()) ?></span>
</div>
<div class="row mb-4">
<div class="col-md-3">
<div class="card border-0 shadow-sm">
<div class="card-body">
<div class="d-flex align-items-center">
<div class="bg-primary bg-opacity-10 p-3 rounded me-3">
<i class="bi bi-clock text-primary fs-4"></i>
</div>
<div>
<h3 class="mb-0"><?= $pendingCount ?></h3>
<small class="text-muted">Mensajes Pendientes</small>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card border-0 shadow-sm">
<div class="card-body">
<div class="d-flex align-items-center">
<div class="bg-success bg-opacity-10 p-3 rounded me-3">
<i class="bi bi-check-circle text-success fs-4"></i>
</div>
<div>
<h3 class="mb-0"><?= $sentToday ?></h3>
<small class="text-muted">Enviados Hoy</small>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card border-0 shadow-sm">
<div class="card-body">
<div class="d-flex align-items-center">
<div class="bg-discord bg-opacity-10 p-3 rounded me-3" style="background-color: rgba(88,101,242,0.1)">
<i class="bi bi-discord fs-4" style="color: #5865F2"></i>
</div>
<div>
<h3 class="mb-0">
<?= count(array_filter($scheduledMessages, fn($m) => $m['platform'] === 'discord')) ?>
</h3>
<small class="text-muted">Discord</small>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card border-0 shadow-sm">
<div class="card-body">
<div class="d-flex align-items-center">
<div class="bg-info bg-opacity-10 p-3 rounded me-3">
<i class="bi bi-telegram text-info fs-4"></i>
</div>
<div>
<h3 class="mb-0">
<?= count(array_filter($scheduledMessages, fn($m) => $m['platform'] === 'telegram')) ?>
</h3>
<small class="text-muted">Telegram</small>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-8">
<div class="card border-0 shadow-sm">
<div class="card-header bg-white border-0">
<h5 class="mb-0"><i class="bi bi-clock"></i> Próximos Mensajes</h5>
</div>
<div class="card-body">
<?php if (empty($scheduledMessages)): ?>
<p class="text-muted text-center py-4">No hay mensajes programados</p>
<?php else: ?>
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th>Destinatario</th>
<th>Plataforma</th>
<th>Fecha</th>
<th>Estado</th>
</tr>
</thead>
<tbody>
<?php foreach (array_slice($scheduledMessages, 0, 10) as $msg): ?>
<tr>
<td><?= htmlspecialchars($msg['recipient_name']) ?></td>
<td>
<?php if ($msg['platform'] === 'discord'): ?>
<i class="bi bi-discord platform-discord"></i> Discord
<?php else: ?>
<i class="bi bi-telegram platform-telegram"></i> Telegram
<?php endif; ?>
</td>
<td><?= date('d/m/Y H:i', strtotime($msg['send_time'])) ?></td>
<td>
<span class="badge bg-<?= match($msg['status']) {
'pending' => 'warning',
'processing' => 'info',
'sent' => 'success',
'failed' => 'danger',
'disabled' => 'secondary',
default => 'light'
} ?>">
<?= $msg['status'] ?>
</span>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php endif; ?>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card border-0 shadow-sm">
<div class="card-header bg-white border-0">
<h5 class="mb-0"><i class="bi bi-lightning"></i> Acciones Rápidas</h5>
</div>
<div class="card-body">
<div class="d-grid gap-2">
<a href="create_message.php" class="btn btn-primary">
<i class="bi bi-plus-circle"></i> Nuevo Mensaje
</a>
<a href="recurrentes.php" class="btn btn-outline-secondary">
<i class="bi bi-repeat"></i> Ver Plantillas
</a>
<a href="scheduled_messages.php" class="btn btn-outline-secondary">
<i class="bi bi-list"></i> Ver Todos los Programados
</a>
</div>
</div>
</div>
</div>
</div>
<?php require_once __DIR__ . '/templates/footer.php'; ?>