BLACKSITE
:
216.73.217.148
:
172.93.223.125 / www.geeteetravels.com
:
Linux ubuntu 5.15.0-179-generic #189-Ubuntu SMP Tue May 5 18:20:56 UTC 2026 x86_64
:
/
home
/
geeteetravels
/
public_html
/
admin
/
Upload File:
files >> /home/geeteetravels/public_html/admin/fleet.php
<?php $pageTitle = 'Fleet Management'; $currentPage = 'fleet'; require_once 'includes/header.php'; // Handle Fleet Actions (Add/Edit/Delete) if (isset($_POST['action'])) { if ($_POST['action'] == 'add_car' || $_POST['action'] == 'edit_car') { $car_name = $_POST['car_name']; $capacity = $_POST['capacity']; $description = $_POST['description']; $category = $_POST['category']; $seats = $_POST['seats']; $bags = $_POST['bags']; $ac_type = $_POST['ac_type']; $is_featured = isset($_POST['is_featured']) ? 1 : 0; $db_image_path = isset($_POST['current_image']) ? $_POST['current_image'] : ''; // Handle Image Upload if new file provided if (isset($_FILES["car_image"]) && $_FILES["car_image"]["error"] == 0) { $target_dir = "../images/fleet/"; if (!file_exists($target_dir)) { mkdir($target_dir, 0777, true); } $file_extension = strtolower(pathinfo($_FILES["car_image"]["name"], PATHINFO_EXTENSION)); $file_name = time() . '_' . preg_replace("/[^a-zA-Z0-9]/", "_", $car_name) . '.' . $file_extension; $target_file = $target_dir . $file_name; if (move_uploaded_file($_FILES["car_image"]["tmp_name"], $target_file)) { // Delete old image if updating if ($db_image_path && file_exists("../" . $db_image_path)) { unlink("../" . $db_image_path); } $db_image_path = "images/fleet/" . $file_name; } } if ($_POST['action'] == 'add_car') { $stmt = $pdo->prepare("INSERT INTO fleet (car_name, capacity, description, image_path, is_featured, category, seats, bags, ac_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"); $stmt->execute([$car_name, $capacity, $description, $db_image_path, $is_featured, $category, $seats, $bags, $ac_type]); $msg = "Car added successfully"; } else { $id = $_POST['car_id']; $stmt = $pdo->prepare("UPDATE fleet SET car_name=?, capacity=?, description=?, image_path=?, is_featured=?, category=?, seats=?, bags=?, ac_type=? WHERE id=?"); $stmt->execute([$car_name, $capacity, $description, $db_image_path, $is_featured, $category, $seats, $bags, $ac_type, $id]); $msg = "Car updated successfully"; } header("Location: fleet.php?msg=" . urlencode($msg)); exit(); } } if (isset($_GET['delete'])) { $id = $_GET['delete']; // Get image path to delete file $stmt = $pdo->prepare("SELECT image_path FROM fleet WHERE id = ?"); $stmt->execute([$id]); $car = $stmt->fetch(); if ($car && !empty($car['image_path']) && file_exists("../" . $car['image_path'])) { unlink("../" . $car['image_path']); } $stmt = $pdo->prepare("DELETE FROM fleet WHERE id = ?"); $stmt->execute([$id]); header("Location: fleet.php?msg=Car removed from portal"); exit(); } // Fetch all fleet $stmt = $pdo->query("SELECT * FROM fleet ORDER BY category DESC, car_name ASC"); $fleet = $stmt->fetchAll(); ?> <div class="section-card"> <div class="section-header"> <h3>Manage Portal Fleet</h3> <button class="btn-primary" onclick="openModal('addCarModal')"><i class="fa fa-plus"></i> Add New Car</button> </div> <?php if (isset($_GET['msg'])): ?> <div class="alert alert-success" style="margin-top: 15px;"><?php echo htmlspecialchars($_GET['msg']); ?></div> <?php endif; ?> <div class="fleet-grid"> <?php if (empty($fleet)): ?> <div class="no-data">No cars found in the portal.</div> <?php else: ?> <?php foreach ($fleet as $car): ?> <div class="fleet-item <?php echo $car['is_featured'] ? 'featured' : ''; ?>"> <?php if($car['is_featured']): ?><span class="featured-badge">Featured</span><?php endif; ?> <img src="../<?php echo !empty($car['image_path']) ? $car['image_path'] : 'images/placeholder-car.png'; ?>" alt="<?php echo $car['car_name']; ?>" class="car-thumb"> <div class="car-info"> <div class="car-header"> <span class="category-tag"><?php echo strtoupper($car['category']); ?></span> <h4><?php echo htmlspecialchars($car['car_name']); ?></h4> </div> <div class="car-specs-brief"> <span><i class="fa fa-users"></i> <?php echo $car['seats']; ?></span> <span><i class="fa fa-briefcase"></i> <?php echo $car['bags']; ?></span> </div> <div class="car-actions"> <button class="btn-icon" onclick='openEditModal(<?php echo json_encode($car); ?>)'><i class="fa fa-edit"></i></button> <a href="fleet.php?delete=<?php echo $car['id']; ?>" class="btn-icon" style="color: #ef4444;" onclick="return confirm('Are you sure you want to remove this vehicle?')"><i class="fa fa-trash"></i></a> </div> </div> </div> <?php endforeach; ?> <?php endif; ?> </div> </div> <!-- Add Car Modal --> <div id="addCarModal" class="modal"> <div class="modal-content"> <div class="modal-header"> <h3>Add New Car to Fleet</h3> <span class="close" onclick="closeModal('addCarModal')">×</span> </div> <form action="fleet.php" method="POST" enctype="multipart/form-data" class="admin-form"> <input type="hidden" name="action" value="add_car"> <div class="form-row"> <div class="form-group"> <label>Car Name</label> <input type="text" name="car_name" required placeholder="e.g. Toyota Innova Hycross"> </div> <div class="form-group"> <label>Category</label> <select name="category" required> <option value="Ultra -Premium Luxury Sedan">Ultra -Premium Luxury Sedan</option> <option value="Premium Luxury sedan">Premium Luxury sedan</option> <option value="Premium Suv’s & Muv’s">Premium Suv’s & Muv’s</option> <option value="Luxury Vans">Luxury Vans</option> <option value="Buses">Buses</option> </select> </div> </div> <div class="form-row"> <div class="form-group"> <label>Passenger Capacity</label> <input type="text" name="seats" placeholder="e.g. 4+1 Seats"> </div> <div class="form-group"> <label>Luggage Capacity</label> <input type="text" name="bags" placeholder="e.g. 3 Bags"> </div> <div class="form-group"> <label>AC Type</label> <input type="text" name="ac_type" placeholder="e.g. Climate Control"> </div> </div> <div class="form-group"> <label>Description</label> <textarea name="description" rows="3" placeholder="Brief description of the vehicle..."></textarea> </div> <div class="form-group"> <label>Car Image</label> <input type="file" name="car_image" accept="image/*" required> </div> <div class="form-group checkbox-group"> <input type="checkbox" name="is_featured" id="is_featured_add"> <label for="is_featured_add">Mark as Featured Car</label> </div> <div class="form-actions"> <button type="button" class="btn-secondary" onclick="closeModal('addCarModal')">Cancel</button> <button type="submit" class="btn-primary">Add Car</button> </div> </form> </div> </div> <!-- Edit Car Modal --> <div id="editCarModal" class="modal"> <div class="modal-content"> <div class="modal-header"> <h3>Edit Vehicle Details</h3> <span class="close" onclick="closeModal('editCarModal')">×</span> </div> <form action="fleet.php" method="POST" enctype="multipart/form-data" class="admin-form"> <input type="hidden" name="action" value="edit_car"> <input type="hidden" name="car_id" id="edit_car_id"> <input type="hidden" name="current_image" id="edit_current_image"> <div class="form-row"> <div class="form-group"> <label>Car Name</label> <input type="text" name="car_name" id="edit_car_name" required> </div> <div class="form-group"> <label>Category</label> <select name="category" id="edit_category" required> <option value="Ultra -Premium Luxury Sedan">Ultra -Premium Luxury Sedan</option> <option value="Premium Luxury sedan">Premium Luxury sedan</option> <option value="Premium Suv’s & Muv’s">Premium Suv’s & Muv’s</option> <option value="Luxury Vans">Luxury Vans</option> <option value="Buses">Buses</option> </select> </div> </div> <div class="form-row"> <div class="form-group"> <label>Passenger Capacity</label> <input type="text" name="seats" id="edit_seats"> </div> <div class="form-group"> <label>Luggage Capacity</label> <input type="text" name="bags" id="edit_bags"> </div> <div class="form-group"> <label>AC Type</label> <input type="text" name="ac_type" id="edit_ac_type"> </div> </div> <div class="form-group"> <label>Description</label> <textarea name="description" id="edit_description" rows="3"></textarea> </div> <div class="form-group"> <label>Car Image (Leave empty to keep current)</label> <input type="file" name="car_image" accept="image/*"> <div id="image_preview" style="margin-top: 10px;"></div> </div> <div class="form-group checkbox-group"> <input type="checkbox" name="is_featured" id="edit_is_featured"> <label for="edit_is_featured">Mark as Featured Car</label> </div> <div class="form-actions"> <button type="button" class="btn-secondary" onclick="closeModal('editCarModal')">Cancel</button> <button type="submit" class="btn-primary">Update Vehicle</button> </div> </form> </div> </div> <style> .fleet-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 25px; margin-top: 20px; } .fleet-item { background: var(--dark-bg); border-radius: 12px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.05); transition: var(--transition); position: relative; } .fleet-item:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.3); } .car-thumb { width: 100%; height: 180px; object-fit: cover; } .no-data { grid-column: 1 / -1; text-align: center; padding: 50px; color: var(--text-muted); } .btn-primary { background: var(--primary-color); color: #fff; border: none; padding: 10px 20px; border-radius: 8px; font-weight: 600; cursor: pointer; transition: var(--transition); } .btn-secondary { background: rgba(255, 255, 255, 0.1); color: #fff; border: none; padding: 10px 20px; border-radius: 8px; font-weight: 600; cursor: pointer; transition: var(--transition); } /* Modal Styles */ .modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.8); backdrop-filter: blur(8px); align-items: center; justify-content: center; padding: 20px; } .modal-content { background-color: #1a1d21; margin: auto; padding: 40px; border: 1px solid rgba(255, 255, 255, 0.1); width: 800px; max-width: 100%; max-height: 90vh; overflow-y: auto; border-radius: 20px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5); } .modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; } .close { color: var(--text-muted); font-size: 28px; font-weight: bold; cursor: pointer; } .admin-form .form-group { margin-bottom: 20px; } .admin-form label { display: block; margin-bottom: 8px; color: var(--text-muted); } .admin-form input[type="text"], .admin-form textarea, .admin-form input[type="file"] { width: 100%; padding: 12px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; color: #fff; } .checkbox-group { display: flex; align-items: center; gap: 10px; } .checkbox-group input { width: 18px; height: 18px; } .form-actions { display: flex; justify-content: flex-end; gap: 15px; margin-top: 30px; } .alert { padding: 12px 20px; border-radius: 8px; margin-bottom: 20px; } .alert-success { background: rgba(46, 204, 113, 0.1); color: #2ecc71; border: 1px solid rgba(46, 204, 113, 0.2); } .car-info { padding: 20px; } .car-header { display: flex; flex-direction: column; gap: 8px; margin-bottom: 15px; } .category-tag { font-size: 10px; font-weight: 700; letter-spacing: 1px; padding: 4px 10px; background: var(--primary-color); color: #fff; border-radius: 4px; width: fit-content; } .car-header h4 { font-size: 20px; margin: 0; } .car-specs-brief { display: flex; gap: 20px; color: var(--text-muted); font-size: 14px; margin-bottom: 20px; } .car-specs-brief i { color: var(--primary-color); } .car-actions { display: flex; justify-content: flex-end; gap: 15px; padding-top: 15px; border-top: 1px solid rgba(255, 255, 255, 0.05); } .btn-icon { width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; border-radius: 8px; background: rgba(255, 255, 255, 0.05); color: #fff; border: none; cursor: pointer; transition: var(--transition); } .btn-icon:hover { background: rgba(255, 255, 255, 0.1); } .featured-badge { position: absolute; top: 10px; right: 10px; background: #FFD700; color: #000; padding: 4px 12px; border-radius: 20px; font-size: 11px; font-weight: 700; z-index: 10; box-shadow: 0 4px 10px rgba(0,0,0,0.3); } .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; } select { width: 100%; padding: 12px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; color: #fff; } option { background: #1a1d21; } @media (max-width: 600px) { .form-row { grid-template-columns: 1fr; } } </style> <script> function openModal(id) { document.getElementById(id).style.display = 'flex'; } function closeModal(id) { document.getElementById(id).style.display = 'none'; } function openEditModal(car) { const categoryMap = { 'luxury': 'Ultra -Premium Luxury Sedan', 'sedan': 'Premium Luxury sedan', 'suv': 'Premium Suv’s & Muv’s', 'van': 'Luxury Vans', 'bus': 'Buses' }; document.getElementById('edit_car_id').value = car.id; document.getElementById('edit_car_name').value = car.car_name; // Map legacy categories to new values for the dropdown const mappedCategory = categoryMap[car.category.toLowerCase()] || car.category; document.getElementById('edit_category').value = mappedCategory; document.getElementById('edit_seats').value = car.seats; document.getElementById('edit_bags').value = car.bags; document.getElementById('edit_ac_type').value = car.ac_type; document.getElementById('edit_description').value = car.description; document.getElementById('edit_current_image').value = car.image_path; document.getElementById('edit_is_featured').checked = car.is_featured == 1; // Image preview const preview = document.getElementById('image_preview'); if (car.image_path) { preview.innerHTML = `<img src="../${car.image_path}" style="width: 100px; height: 60px; object-fit: cover; border-radius: 4px; border: 1px solid rgba(255,255,255,0.1);">`; } else { preview.innerHTML = ''; } openModal('editCarModal'); } window.onclick = function(event) { if (event.target.classList.contains('modal')) { event.target.style.display = 'none'; } } </script> <?php require_once 'includes/footer.php'; ?>