124 lines
5.5 KiB
PHP
124 lines
5.5 KiB
PHP
<?php
|
|
require_once 'auth.php';
|
|
require_once 'db/config.php'; // Ensure DB config is included
|
|
|
|
// Fetch tracks for the logged-in user
|
|
$user_id = $_SESSION['user_id'];
|
|
$tracks = [];
|
|
|
|
// For admins, show all tracks. For artists, show only their own.
|
|
if (isset($_SESSION['role']) && in_array($_SESSION['role'], ['admin', 'super_admin'])) {
|
|
$stmt = db()->prepare("SELECT t.*, u.username FROM tracks t JOIN users u ON t.user_id = u.id ORDER BY t.created_at DESC");
|
|
if ($stmt->execute()) {
|
|
$tracks = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
}
|
|
} else {
|
|
$stmt = db()->prepare("SELECT * FROM tracks WHERE user_id = ? ORDER BY created_at DESC");
|
|
if ($stmt->execute([$user_id])) {
|
|
$tracks = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
}
|
|
}
|
|
|
|
|
|
$pageTitle = "Dashboard - Zeal Music";
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title><?php echo htmlspecialchars($pageTitle); ?></title>
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
|
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
|
|
</head>
|
|
<body class="dark-theme">
|
|
<div class="page-container">
|
|
|
|
<?php include 'partials/sidebar.php'; ?>
|
|
|
|
<!-- Main Content -->
|
|
<main class="main-content">
|
|
<header class="main-header">
|
|
<h1>Welcome Back, <?php echo htmlspecialchars($_SESSION['username']); ?></h1>
|
|
<div class="user-profile">
|
|
<i class="fa fa-user-circle"></i>
|
|
<span><?php echo htmlspecialchars($_SESSION['username']); ?></span>
|
|
</div>
|
|
</header>
|
|
|
|
<div class="content-wrapper">
|
|
<!-- Key Metrics -->
|
|
<div class="row-g-4 mb-4" style="display: flex; gap: 1.5rem;">
|
|
<div class="col" style="flex: 1;">
|
|
<div class="stat-card">
|
|
<h5>Total Plays</h5>
|
|
<p class="stat-value">1.2M</p>
|
|
</div>
|
|
</div>
|
|
<div class="col" style="flex: 1;">
|
|
<div class="stat-card">
|
|
<h5>Listeners (30 days)</h5>
|
|
<p class="stat-value">89.4K</p>
|
|
</div>
|
|
</div>
|
|
<div class="col" style="flex: 1;">
|
|
<div class="stat-card">
|
|
<h5>Engagements</h5>
|
|
<p class="stat-value">12.1K</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- My Tracks -->
|
|
<div class="content-card">
|
|
<div class="d-flex justify-content-between align-items-center mb-3">
|
|
<h2>My Tracks</h2>
|
|
<?php if (!isset($_SESSION['role']) || !in_array($_SESSION['role'], ['admin', 'super_admin'])):
|
|
?>
|
|
<a href="upload.php" class="btn btn-primary">Upload Music</a>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<?php if (empty($tracks)):
|
|
?>
|
|
<div class="text-center p-4">
|
|
<p>No tracks have been uploaded yet.</p>
|
|
<?php if (!isset($_SESSION['role']) || !in_array($_SESSION['role'], ['admin', 'super_admin'])):
|
|
?>
|
|
<a href="upload.php" class="btn btn-primary mt-2">Upload Your First Track</a>
|
|
<?php endif; ?>
|
|
</div>
|
|
<?php else:
|
|
?>
|
|
<?php foreach ($tracks as $index => $track):
|
|
?>
|
|
<div class="track-item">
|
|
<div class="track-number"><?php echo $index + 1; ?></div>
|
|
<img src="<?php echo htmlspecialchars($track['cover_art_path']); ?>" alt="Cover Art" class="track-cover-art-thumb">
|
|
<div class="track-info">
|
|
<div class="track-title"><?php echo htmlspecialchars($track['title']); ?></div>
|
|
<?php
|
|
$artistName = '';
|
|
if (isset($_SESSION['role']) && in_array($_SESSION['role'], ['admin', 'super_admin'])) {
|
|
// For admins, show the username of the uploader
|
|
$artistName = $track['username'] ?? 'Unknown Artist';
|
|
} else {
|
|
// For artists, show their own artist name from the track details
|
|
$artistName = $track['artist'] ?? 'Unknown Artist';
|
|
}
|
|
?>
|
|
<div class="track-artist"><?php echo htmlspecialchars($artistName); ?></div>
|
|
</div>
|
|
<div class="track-album"><?php echo htmlspecialchars($track['album_title']); ?></div>
|
|
<div class="track-plays">0 plays</div>
|
|
</div>
|
|
<?php endforeach; ?>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
|
|
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
|
|
</body>
|
|
</html>
|