Files
fmgapp/tracking/dashboard.php

97 lines
4.3 KiB
PHP

<?php
error_reporting(E_ERROR | E_PARSE);
$db_host = '127.0.0.1';
$db_name = 'adx_system';
$db_user = 'admin';
$db_pass = 'admin123';
try {
$pdo = new PDO("pgsql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
die("Connection Error: " . $e->getMessage());
}
$stats = ['opens' => 0, 'clicks' => 0, 'leads' => 0, 'unsubscribes' => 0, 'optouts' => 0, 'total' => 0];
$tables = ['opens', 'clicks', 'leads', 'unsubscribes', 'optouts'];
foreach($tables as $table) {
try {
$stmt = $pdo->query("SELECT COUNT(*) as count FROM actions.$table");
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$stats[$table] = intval($row['count']);
$stats['total'] += $stats[$table];
} catch(Exception $e) {}
}
$recent = [];
try {
$stmt = $pdo->query("SELECT 'OPEN' as type, created_at, process_id FROM actions.opens ORDER BY created_at DESC LIMIT 50");
$recent = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch(Exception $e) {}
?>
<!DOCTYPE html>
<html>
<head>
<title>📊 FMG Tracking Dashboard</title>
<meta charset="utf-8">
<meta http-equiv="refresh" content="30">
<style>
body { font-family: Arial, sans-serif; background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%); color: #fff; padding: 30px; }
.container { max-width: 1400px; margin: 0 auto; }
h1 { color: #4caf50; font-size: 32px; margin: 0; text-shadow: 0 0 20px rgba(76, 175, 80, 0.5); }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 20px; margin: 40px 0; }
.stat { background: linear-gradient(135deg, #16213e 0%, #0f3460 100%); padding: 25px; border-radius: 12px; border-left: 5px solid #4caf50; }
.stat.total { grid-column: 1 / -1; }
.stat-num { font-size: 42px; font-weight: bold; color: #4caf50; margin-bottom: 10px; }
.stat-label { font-size: 14px; color: #b0bec5; text-transform: uppercase; }
.section { background: linear-gradient(135deg, #16213e 0%, #0f3460 100%); padding: 30px; border-radius: 12px; margin: 30px 0; border-left: 5px solid #4caf50; }
.section h2 { color: #4caf50; margin-top: 0; }
.logs { max-height: 400px; overflow-y: auto; background: rgba(0,0,0,0.2); padding: 15px; border-radius: 8px; }
.log { background: rgba(15,15,35,0.8); padding: 8px; margin: 5px 0; border-left: 3px solid #4caf50; font-family: monospace; font-size: 11px; }
</style>
</head>
<body>
<div class="container">
<h1>📊 FMG Tracking Dashboard</h1>
<p style="color: #90caf9">Last update: <?php echo date('Y-m-d H:i:s'); ?></p>
<div class="stats">
<div class="stat total">
<div class="stat-num"><?php echo number_format($stats['total']); ?></div>
<div class="stat-label">Total Events</div>
</div>
<div class="stat">
<div class="stat-num"><?php echo number_format($stats['opens']); ?></div>
<div class="stat-label">📧 Opens</div>
</div>
<div class="stat">
<div class="stat-num"><?php echo number_format($stats['clicks']); ?></div>
<div class="stat-label">🔗 Clicks</div>
</div>
<div class="stat">
<div class="stat-num"><?php echo number_format($stats['leads']); ?></div>
<div class="stat-label">⭐ Leads</div>
</div>
<div class="stat">
<div class="stat-num"><?php echo number_format($stats['unsubscribes']); ?></div>
<div class="stat-label">📵 Unsub</div>
</div>
<div class="stat">
<div class="stat-num"><?php echo number_format($stats['optouts']); ?></div>
<div class="stat-label">❌ Optout</div>
</div>
</div>
<div class="section">
<h2>Recent Activity</h2>
<div class="logs">
<?php foreach($recent as $r): ?>
<div class="log">[<?php echo $r['type']; ?>] <?php echo date('H:i:s', strtotime($r['created_at'])); ?> - P:<?php echo $r['process_id']; ?></div>
<?php endforeach; ?>
</div>
</div>
</div>
</body>
</html>