35247-vm/dashboard.php
Flatlogic Bot e0d884de80 123
2025-10-26 18:48:58 +00:00

77 lines
2.2 KiB
PHP

<?php
require_once 'db/config.php';
try {
$pdo = db();
// Fetch total publics
$stmt_publics = $pdo->query("SELECT COUNT(*) as total_publics FROM publics");
$total_publics = $stmt_publics->fetchColumn();
// Fetch total subscribers
$stmt_subscribers = $pdo->query("SELECT SUM(subscribers) as total_subscribers FROM publics");
$total_subscribers = $stmt_subscribers->fetchColumn();
} catch (PDOException $e) {
// For a real app, you'd want to log this error, not die.
die("Database error: " . $e->getMessage());
}
// Function to format large numbers
function format_number($num) {
if ($num >= 1000000) {
return round($num / 1000000, 1) . 'M';
} elseif ($num >= 1000) {
return round($num / 1000, 1) . 'K';
}
return $num;
}
?>
<header class="mb-4">
<h1 class="h3">Dashboard</h1>
</header>
<!-- Stat Cards -->
<div class="row g-4 mb-4">
<div class="col-md-6 col-lg-3">
<div class="card stat-card p-3">
<h5 class="card-title">Total Subscribers</h5>
<p class="display-4 fw-bold"><?php echo format_number($total_subscribers ?? 0); ?></p>
</div>
</div>
<div class="col-md-6 col-lg-3">
<div class="card stat-card p-3">
<h5 class="card-title">Avg. Views / Post</h5>
<p class="display-4 fw-bold">-</p> <!-- Placeholder -->
</div>
</div>
<div class="col-md-6 col-lg-3">
<div class="card stat-card p-3">
<h5 class="card-title">Monthly Income</h5>
<p class="display-4 fw-bold">-</p> <!-- Placeholder -->
</div>
</div>
<div class="col-md-6 col-lg-3">
<div class="card stat-card p-3">
<h5 class="card-title">Active Publics</h5>
<p class="display-4 fw-bold"><?php echo $total_publics ?? 0; ?></p>
</div>
</div>
</div>
<!-- Chart -->
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">Average Views Over Time</h5>
</div>
<div class="card-body" style="height: 400px;">
<canvas id="viewsChart"></canvas>
</div>
</div>
</div>
</div>