| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- <?php
- session_start();
- // 1. Αν δεν είναι καν συνδεδεμένος -> Πάει στο Login
- if (!isset($_SESSION['user_id'])) {
- header("Location: ../login.php");
- exit;
- }
- // 2. Αν ΕΙΝΑΙ συνδεδεμένος αλλά ΔΕΝ είναι Admin -> Ακαριαίο redirect
- if ($_SESSION['role_id'] != 1) {
- if ($_SESSION['role_id'] == 2 || !empty($_SESSION['is_seller'])) {
- header("Location: ../seller_dashboard.php");
- } else {
- header("Location: ../index.php");
- }
- exit;
- }
- require_once '../config/database.php';
- // --- Μηχανισμός Αλλαγής Γλώσσας ---
- if (isset($_GET['lang']) && in_array($_GET['lang'], ['el', 'en'])) {
- $_SESSION['lang'] = $_GET['lang'];
- }
- $current_lang = $_SESSION['lang'] ?? 'el';
- $translations = [
- 'el' => [
- 'dashboard' => 'Dashboard',
- 'welcome' => 'Καλώς ήρθες,',
- 'welcome_sub' => 'Αυτή είναι η συνοπτική εικόνα του καταστήματός σου.',
- 'products' => 'Προϊόντα',
- 'categories' => 'Κατηγορίες',
- 'attributes' => 'Χαρακτηριστικά',
- 'users' => 'Εγγεγραμμένοι Χρήστες',
- 'latest_adds' => 'Τελευταίες Προσθήκες Εξοπλισμού',
- 'title' => 'Τίτλος',
- 'price' => 'Τιμή',
- 'date' => 'Ημερομηνία',
- 'no_products' => 'Δεν υπάρχουν ακόμα προϊόντα.'
- ],
- 'en' => [
- 'dashboard' => 'Dashboard',
- 'welcome' => 'Welcome,',
- 'welcome_sub' => 'Here is the overview of your store.',
- 'products' => 'Products',
- 'categories' => 'Categories',
- 'attributes' => 'Attributes',
- 'users' => 'Registered Users',
- 'latest_adds' => 'Latest Equipment Additions',
- 'title' => 'Title',
- 'price' => 'Price',
- 'date' => 'Date',
- 'no_products' => 'No products available yet.'
- ]
- ];
- $t = $translations[$current_lang];
- header('Content-Type: text/html; charset=utf-8');
- // Συγκεντρώνουμε μερικά γρήγορα στατιστικά για το Dashboard
- try {
- $total_products = $pdo->query("SELECT COUNT(*) FROM products")->fetchColumn();
- $total_categories = $pdo->query("SELECT COUNT(*) FROM categories")->fetchColumn();
- $total_users = $pdo->query("SELECT COUNT(*) FROM users")->fetchColumn();
- $total_groups = $pdo->query("SELECT COUNT(*) FROM attribute_groups")->fetchColumn();
-
- // Φέρνουμε τα 5 πιο πρόσφατα προϊόντα
- $recent_products = $pdo->query("
- SELECT title, price, created_at
- FROM products
- ORDER BY id DESC LIMIT 5
- ")->fetchAll();
- } catch (Exception $e) {
- die("Σφάλμα κατά την ανάγνωση των στατιστικών: " . $e->getMessage());
- }
- ?>
- <!DOCTYPE html>
- <html lang="<?php echo $current_lang; ?>">
- <head>
- <meta charset="UTF-8">
- <title><?php echo $t['dashboard']; ?> - Hockey CMS</title>
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet">
- <style>
- :root {
- --primary: #f97316;
- --bg-color: #0b1120;
- --panel-bg: #1e293b;
- --border-color: #334155;
- --text-main: #f8fafc;
- --text-muted: #94a3b8;
- }
- body { font-family: 'Inter', sans-serif; background-color: var(--bg-color); color: var(--text-main); margin: 0; }
-
- .content { margin-left: 250px; padding: 30px; }
- .content h2 { margin-top: 0; color: var(--primary); font-size: 26px; text-transform: uppercase; letter-spacing: 0.5px; }
-
- .card { background: var(--panel-bg); padding: 25px; border-radius: 8px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.3); margin-bottom: 20px; border: 1px solid var(--border-color); }
- .card h3 { margin-top: 0; color: var(--primary); border-bottom: 1px solid rgba(255,255,255,0.05); padding-bottom: 10px; font-size: 18px; text-transform: uppercase; }
-
- .stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 30px; }
- .stat-card { background: var(--panel-bg); padding: 25px; border-radius: 8px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.3); text-align: center; border: 1px solid var(--border-color); border-bottom: 4px solid var(--primary); transition: 0.2s; }
- .stat-card:hover { transform: translateY(-5px); }
- .stat-card h3 { margin: 0; font-size: 36px; color: var(--text-main); font-weight: 900; border: none; padding: 0;}
- .stat-card p { margin: 10px 0 0; color: var(--text-muted); font-size: 13px; text-transform: uppercase; font-weight: 700; letter-spacing: 0.5px; }
-
- .stat-card:nth-child(2) { border-bottom-color: #10b981; }
- .stat-card:nth-child(3) { border-bottom-color: #3b82f6; }
- .stat-card:nth-child(4) { border-bottom-color: #ef4444; }
- table { width: 100%; border-collapse: collapse; }
- table th, table td { padding: 15px; border-bottom: 1px solid rgba(255,255,255,0.05); text-align: left; }
- table th { background: rgba(0,0,0,0.2); color: var(--text-muted); text-transform: uppercase; font-size: 13px; font-weight: 700; letter-spacing: 0.5px; }
- table td { color: var(--text-main); font-size: 15px; }
- </style>
- </head>
- <body>
-
- <?php include 'sidebar.php'; ?>
- <div class="content">
- <h2><?php echo $t['dashboard']; ?></h2>
- <p style="color: var(--text-muted); margin-bottom: 30px; font-size: 15px;">
- <?php echo $t['welcome']; ?> <strong style="color: var(--text-main);"><?php echo htmlspecialchars($_SESSION['first_name'] ?? 'Admin'); ?></strong>!
- <?php echo $t['welcome_sub']; ?>
- </p>
- <!-- Στατιστικά -->
- <div class="stats-grid">
- <div class="stat-card">
- <h3><?php echo $total_products; ?></h3>
- <p><?php echo $t['products']; ?></p>
- </div>
- <div class="stat-card">
- <h3><?php echo $total_categories; ?></h3>
- <p><?php echo $t['categories']; ?></p>
- </div>
- <div class="stat-card">
- <h3><?php echo $total_groups; ?></h3>
- <p><?php echo $t['attributes']; ?></p>
- </div>
- <div class="stat-card">
- <h3><?php echo $total_users; ?></h3>
- <p><?php echo $t['users']; ?></p>
- </div>
- </div>
- <!-- Τελευταίες προσθήκες -->
- <div class="card" style="max-width: 900px;">
- <h3>📦 <?php echo $t['latest_adds']; ?></h3>
- <?php if (count($recent_products) > 0): ?>
- <table>
- <thead>
- <tr>
- <th><?php echo $t['title']; ?></th>
- <th><?php echo $t['price']; ?></th>
- <th><?php echo $t['date']; ?></th>
- </tr>
- </thead>
- <tbody>
- <?php foreach($recent_products as $p): ?>
- <tr>
- <td><strong><?php echo htmlspecialchars($p['title']); ?></strong></td>
- <td style="color: #10b981; font-weight: 700;"><?php echo htmlspecialchars($p['price']); ?> €</td>
- <td style="color: var(--text-muted);"><?php echo date('d/m/Y H:i', strtotime($p['created_at'])); ?></td>
- </tr>
- <?php endforeach; ?>
- </tbody>
- </table>
- <?php else: ?>
- <p style="color: var(--text-muted); text-align: center; padding: 20px;"><?php echo $t['no_products']; ?></p>
- <?php endif; ?>
- </div>
- </div>
- </body>
- </html>
|