Sindbad~EG File Manager
<?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>© <?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