Sindbad~EG File Manager

Current Path : /home/copmadinaarea/thecopmadinaarea.org/portal/
Upload File :
Current File : /home/copmadinaarea/thecopmadinaarea.org/portal/event-checkin.php

<?php
require_once 'config/config.php';
require_once 'classes/EventManager.php';
require_once 'classes/MemberAuth.php';

$pageTitle = "Event Check-in - " . APP_NAME;
$db = Database::getInstance()->getConnection();
$eventManager = new EventManager();

// Check if member is logged in
$isMemberLoggedIn = MemberAuth::isMemberLoggedIn();
$memberData = null;
if ($isMemberLoggedIn) {
    $memberData = MemberAuth::getCurrentMember();
}

// Redirect logged-in members to member portal with auto check-in
$selectedEventId = $_GET['event_id'] ?? null;
if ($isMemberLoggedIn && $selectedEventId) {
    redirect('members/event-checkin.php?event_id=' . $selectedEventId . '&auto_checkin=1');
}

// Get settings for theme colors
$stmt = $db->query("SELECT * FROM general_settings ORDER BY id DESC LIMIT 1");
$settings = $stmt->fetch();
$settings = array_merge([
    'site_title' => APP_NAME,
    'theme_primary_color' => '#3B82F6',
    'theme_secondary_color' => '#10B981'
], $settings ?: []);

$success = '';
$error = '';
$trackingCode = '';
$checkinSuccess = false;

// Handle check-in via tracking code
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['checkin_code'])) {
    try {
        $eventId = $_POST['event_id'];
        $code = sanitize($_POST['tracking_code']);
        
        // Call the check-in API
        $response = file_get_contents(BASE_URL . '/api/event_checkin.php', false, stream_context_create([
            'http' => [
                'method' => 'POST',
                'header' => 'Content-Type: application/x-www-form-urlencoded',
                'content' => http_build_query([
                    'event_id' => $eventId,
                    'tracking_code' => $code
                ])
            ]
        ]));
        
        $result = json_decode($response, true);
        
        if ($result['success']) {
            if ($result['already_checked_in'] ?? false) {
                $error = $result['message'];
            } else {
                $success = $result['message'];
                $checkinSuccess = true;
            }
        } else {
            $error = $result['message'];
        }
    } catch (Exception $e) {
        $error = "Error: " . $e->getMessage();
    }
}

// Get active events
$events = $eventManager->getEvents(['active' => true]);
$selectedEvent = null;

if ($selectedEventId) {
    $selectedEvent = $eventManager->getEventById($selectedEventId);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?php echo $pageTitle; ?></title>
    <script src="https://cdn.tailwindcss.com"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body class="bg-gray-50">
    <!-- Navigation -->
    <nav class="bg-white shadow-lg fixed w-full top-0 z-50">
        <div class="container mx-auto px-4">
            <div class="flex justify-between items-center py-4">
                <a href="index.php" class="text-2xl font-bold" style="background: linear-gradient(135deg, #1E40AF 0%, #9333EA 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent;">
                    <?php echo APP_NAME; ?>
                </a>
                <div class="flex items-center space-x-4">
                    <a href="conference.php" class="text-gray-600 hover:text-blue-600 transition">
                        <i class="fas fa-calendar mr-1"></i>Events
                    </a>
                    <a href="index.php" class="text-gray-600 hover:text-blue-600 transition">
                        <i class="fas fa-home mr-1"></i>Home
                    </a>
                    <?php if ($isMemberLoggedIn): ?>
                        <!-- Member is logged in -->
                        <span class="text-sm text-gray-600">Welcome, <?php echo htmlspecialchars($memberData['full_name'] ?? 'Member'); ?></span>
                        <a href="members/dashboard.php" class="px-4 py-2 rounded-lg text-white" style="background: linear-gradient(135deg, #1E40AF 0%, #9333EA 100%);">
                            <i class="fas fa-tachometer-alt mr-1"></i>Dashboard
                        </a>
                        <a href="logout.php?member=1" class="text-gray-600 hover:text-red-600 transition">
                            <i class="fas fa-sign-out-alt mr-1"></i>Logout
                        </a>
                    <?php elseif (isLoggedIn()): ?>
                        <!-- Admin is logged in -->
                        <span class="text-sm text-gray-600">Welcome, <?php echo htmlspecialchars(getCurrentUserName()); ?></span>
                        <a href="dashboard.php" class="px-4 py-2 rounded-lg text-white" style="background: linear-gradient(135deg, #1E40AF 0%, #9333EA 100%);">
                            <i class="fas fa-tachometer-alt mr-1"></i>Dashboard
                        </a>
                        <a href="logout.php" class="text-gray-600 hover:text-red-600 transition">
                            <i class="fas fa-sign-out-alt mr-1"></i>Logout
                        </a>
                    <?php else: ?>
                        <!-- Not logged in -->
                        <a href="login.php" class="px-4 py-2 rounded-lg text-white" style="background: linear-gradient(135deg, #1E40AF 0%, #F97316 100%);">
                            <i class="fas fa-sign-in-alt mr-1"></i>Login
                        </a>
                    <?php endif; ?>
                </div>
            </div>
        </div>
    </nav>
    
    <!-- Main Content -->
    <main class="pt-24 pb-16">
        <div class="container mx-auto px-4">
            <div class="max-w-4xl mx-auto">
                <!-- Header -->
                <div class="text-center mb-8">
                    <h1 class="text-4xl font-bold mb-4" style="background: linear-gradient(135deg, #1E40AF 0%, #9333EA 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent;">
                        <i class="fas fa-qrcode mr-2"></i>Event Check-in
                    </h1>
                    <p class="text-xl text-gray-600">Scan QR code or enter your tracking code to check in</p>
                </div>
                
                <?php if ($success): ?>
                    <div class="bg-green-100 border border-green-400 text-green-700 px-6 py-4 rounded-lg mb-6 flex items-center">
                        <i class="fas fa-check-circle text-2xl mr-3"></i>
                        <div>
                            <div class="font-semibold"><?php echo $success; ?></div>
                            <div class="text-sm mt-1">Thank you for checking in!</div>
                        </div>
                    </div>
                <?php endif; ?>
                
                <?php if ($error): ?>
                    <div class="bg-red-100 border border-red-400 text-red-700 px-6 py-4 rounded-lg mb-6 flex items-center">
                        <i class="fas fa-exclamation-circle text-2xl mr-3"></i>
                        <div><?php echo $error; ?></div>
                    </div>
                <?php endif; ?>
                
                <!-- Event Selection -->
                <div class="bg-white rounded-xl shadow-lg p-6 mb-8">
                    <h3 class="text-lg font-semibold mb-4">Select Event or Conference</h3>
                    <form method="GET" class="space-y-4">
                        <select name="event_id" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 text-lg" onchange="this.form.submit()">
                            <option value="">Choose an event...</option>
                            <?php foreach ($events as $event): ?>
                                <option value="<?php echo $event['id']; ?>" <?php echo $selectedEventId == $event['id'] ? 'selected' : ''; ?>>
                                    <?php echo htmlspecialchars($event['name']) . ' - ' . date('M j, Y', strtotime($event['start_date'])); ?>
                                </option>
                            <?php endforeach; ?>
                        </select>
                    </form>
                </div>
                
                <?php if ($selectedEvent): ?>
                    <!-- Event Details -->
                    <div class="bg-white rounded-xl shadow-lg p-6 mb-8">
                        <h3 class="text-2xl font-bold text-gray-800 mb-3"><?php echo htmlspecialchars($selectedEvent['name']); ?></h3>
                        <p class="text-gray-600 mb-4"><?php echo htmlspecialchars($selectedEvent['description']); ?></p>
                        <div class="flex flex-wrap gap-4 text-sm text-gray-600">
                            <span><i class="fas fa-calendar mr-1 text-blue-500"></i><?php echo date('F j, Y', strtotime($selectedEvent['start_date'])); ?></span>
                            <span><i class="fas fa-clock mr-1 text-blue-500"></i><?php echo date('g:i A', strtotime($selectedEvent['start_date'])); ?></span>
                            <span><i class="fas fa-map-marker-alt mr-1 text-blue-500"></i><?php echo ucfirst($selectedEvent['location_type']); ?></span>
                        </div>
                    </div>
                    
                    <div class="grid grid-cols-1 lg:grid-cols-2 gap-8">
                        <!-- QR Code Section -->
                        <div class="bg-white rounded-xl shadow-lg p-8">
                            <h4 class="text-xl font-semibold mb-6 text-center">Event QR Code</h4>
                            <div class="flex flex-col items-center space-y-4">
                                <div id="eventQRCode" class="bg-gray-50 p-6 rounded-lg">
                                    <!-- QR Code will be generated here -->
                                </div>
                                <div class="text-center">
                                    <p class="text-sm text-gray-600">Scan this QR code to go to check-in page</p>
                                    <p class="text-xs text-gray-500 mt-2 font-mono bg-gray-100 px-4 py-2 rounded">
                                        Event Code: EV<?php echo str_pad($selectedEventId, 4, '0', STR_PAD_LEFT); ?>
                                    </p>
                                </div>
                            </div>
                        </div>
                        
                        <!-- Check-in Form -->
                        <div class="bg-white rounded-xl shadow-lg p-8">
                            <h4 class="text-xl font-semibold mb-6">Check In with Code</h4>
                            
                            <form method="POST" class="space-y-6">
                                <input type="hidden" name="event_id" value="<?php echo $selectedEventId; ?>">
                                
                                <div>
                                    <label class="block text-sm font-medium text-gray-700 mb-2">
                                        <i class="fas fa-barcode mr-1"></i>Tracking Code
                                    </label>
                                    <input type="text" name="tracking_code" required 
                                           placeholder="Enter your member or user tracking code" 
                                           class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 text-lg font-mono">
                                    <p class="text-xs text-gray-500 mt-2">
                                        Enter your MEM or USR tracking code (e.g., MEM2025123456 or USR2025123456)
                                    </p>
                                </div>
                                
                                <button type="submit" name="checkin_code" 
                                        class="w-full px-6 py-4 rounded-lg text-white font-semibold text-lg shadow-lg hover:shadow-xl transition" 
                                        style="background: linear-gradient(135deg, #1E40AF 0%, #F97316 100%);">
                                    <i class="fas fa-check-circle mr-2"></i>Check In Now
                                </button>
                            </form>
                            
                            <div class="mt-6 p-4 bg-blue-50 rounded-lg">
                                <h5 class="font-semibold text-blue-900 mb-2">Alternative Check-in Methods:</h5>
                                <ul class="text-sm text-blue-800 space-y-1">
                                    <li><i class="fas fa-qrcode mr-2"></i>Scan the QR code above</li>
                                    <li><i class="fas fa-user mr-2"></i>Login to your member account</li>
                                    <li><i class="fas fa-id-card mr-2"></i>Show your membership card at the venue</li>
                                </ul>
                            </div>
                        </div>
                    </div>
                    
                    <!-- Member Login CTA -->
                    <div class="mt-8 bg-gradient-to-r from-blue-50 to-purple-50 rounded-xl p-6 text-center">
                        <h4 class="text-lg font-semibold mb-2">Already a member?</h4>
                        <p class="text-gray-600 mb-4">Login to your account for automatic check-in</p>
                        <a href="login.php?redirect=members/event-checkin.php?event_id=<?php echo $selectedEventId; ?>&auto_checkin=1" 
                           class="inline-block px-6 py-3 bg-white text-blue-600 font-semibold rounded-lg shadow hover:shadow-lg transition">
                            <i class="fas fa-sign-in-alt mr-2"></i>Login for Auto Check-in
                        </a>
                    </div>
                <?php endif; ?>
            </div>
        </div>
    </main>
    
    <!-- Footer -->
    <footer class="bg-gray-800 text-white py-8">
        <div class="container mx-auto px-4 text-center">
            <p>&copy; <?php echo date('Y'); ?> <?php echo APP_NAME; ?>. All rights reserved.</p>
        </div>
    </footer>
    
    <script>
    function generateEventQRCode() {
        const eventId = <?php echo $selectedEventId ?? 'null'; ?>;
        if (!eventId) return;
        
        const checkInUrl = '<?php echo BASE_URL; ?>/event-checkin.php?event_id=' + eventId;
        const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?size=250x250&data=${encodeURIComponent(checkInUrl)}`;
        
        document.getElementById('eventQRCode').innerHTML = `<img src="${qrUrl}" alt="Event QR Code" class="w-64 h-64">`;
    }
    
    // Generate QR code on page load if event is selected
    <?php if ($selectedEventId): ?>
        generateEventQRCode();
    <?php endif; ?>
    </script>
    
    <?php include 'includes/chat_widget.php'; ?>
</body>
</html>

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists