Hackfut Security File Manager
Current Path:
/home/u126195517/domains/foodstamping.in/public_html/admin
home
/
u126195517
/
domains
/
foodstamping.in
/
public_html
/
admin
/
📁
..
📁
assets
📄
categories.php
(15.94 KB)
📄
get-product.php
(604 B)
📄
index.php
(7.83 KB)
📄
login.php
(4.52 KB)
📄
logout.php
(557 B)
📄
orders.php
(10.34 KB)
📄
product-action.php
(2.63 KB)
📄
product-images.php
(14.15 KB)
📄
product-save.php
(6.86 KB)
📄
product-specifications.php
(11.11 KB)
📄
products.php
(48.18 KB)
📄
reviews.php
(12.46 KB)
📄
specifications.php
(14.72 KB)
Editing: reviews.php
<?php // admin/reviews.php session_start(); require_once '../config/database.php'; if (!isset($_SESSION['admin_id'])) { header("Location: login.php"); exit(); } $database = new Database(); $db = $database->getConnection(); // Handle Actions if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['action'])) { $action = $_POST['action']; switch ($action) { case 'toggle_status': $id = intval($_POST['id']); $status = intval($_POST['status']); $query = "UPDATE product_reviews SET status = :status WHERE id = :id"; $stmt = $db->prepare($query); $stmt->bindParam(':status', $status, PDO::PARAM_INT); $stmt->bindParam(':id', $id, PDO::PARAM_INT); $stmt->execute(); echo json_encode(['success' => true, 'newStatus' => $status == 1 ? 'Approved' : 'Pending']); exit(); case 'delete': $id = intval($_POST['review_id']); $query = "DELETE FROM product_reviews WHERE id = :id"; $stmt = $db->prepare($query); $stmt->bindParam(':id', $id, PDO::PARAM_INT); if ($stmt->execute()) { $_SESSION['message'] = "Review deleted successfully!"; $_SESSION['message_type'] = "success"; } header("Location: reviews.php"); exit(); } } // Fetch all reviews $query = "SELECT r.*, p.name AS product_name FROM product_reviews r LEFT JOIN products p ON r.product_id = p.id ORDER BY r.created_at DESC"; $stmt = $db->prepare($query); $stmt->execute(); $reviews = $stmt->fetchAll(PDO::FETCH_ASSOC); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Manage Reviews - Admin Panel</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"> <link rel="stylesheet" href="https://cdn.datatables.net/1.11.5/css/dataTables.bootstrap5.min.css"> <link rel="stylesheet" href="assets/css/style.css"> <style> .sidebar { min-height: 100vh; background: #343a40; } .sidebar .nav-link { color: #fff; padding: 15px 20px; } .sidebar .nav-link:hover { background: #495057; } .sidebar .nav-link.active { background: #007bff; } .stat-card { border-radius: 10px; padding: 15px; margin-bottom: 20px; color: white; } .product-thumb { width: 50px; height: 50px; object-fit: cover; border-radius: 5px; cursor: pointer; } .badge-stock { font-size: 11px; } .action-buttons .btn { padding: 5px 10px; margin: 0 2px; } .filter-section { background: #f8f9fa; padding: 15px; border-radius: 10px; margin-bottom: 20px; } .bulk-actions { display: none; padding: 10px; background: #e9ecef; border-radius: 5px; margin-bottom: 10px; } .featured-star { color: gold; cursor: pointer; } .switch { position: relative; display: inline-block; width: 50px; height: 24px; } .switch input { opacity: 0; width: 0; height: 0; } .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; transition: .4s; border-radius: 24px; } .slider:before { position: absolute; content: ""; height: 16px; width: 16px; left: 4px; bottom: 4px; background-color: white; transition: .4s; border-radius: 50%; } input:checked + .slider { background-color: #2196F3; } input:checked + .slider:before { transform: translateX(26px); } </style> </head> <body> <div class="container-fluid"> <div class="row"> <!-- Sidebar --> <nav class="col-md-2 d-md-block sidebar bg-dark"> <div class="position-sticky"> <h4 class="text-white p-3">Admin Panel</h4> <ul class="nav flex-column"> <li class="nav-item"><a class="nav-link" href="index.php"><i class="fas fa-tachometer-alt"></i> Dashboard</a></li> <li class="nav-item"><a class="nav-link" href="products.php"><i class="fas fa-box"></i> Products</a></li> <li class="nav-item"><a class="nav-link" href="categories.php"><i class="fas fa-tags"></i> Categories</a></li> <li class="nav-item"><a class="nav-link" href="orders.php"><i class="fas fa-shopping-cart"></i> Orders</a></li> <li class="nav-item"><a class="nav-link active" href="reviews.php"><i class="fas fa-star"></i> Reviews</a></li> <li class="nav-item"><a class="nav-link" href="specifications.php"><i class="fas fa-list"></i> Specifications</a></li> <li class="nav-item"><a class="nav-link" href="logout.php"><i class="fas fa-sign-out-alt"></i> Logout</a></li> </ul> </div> </nav> <!-- Main Content --> <main class="col-md-10 ms-sm-auto px-md-4"> <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom"> <h1 class="h2">Manage Reviews</h1> </div> <?php if (isset($_SESSION['message'])): ?> <div class="alert alert-<?php echo $_SESSION['message_type']; ?> alert-dismissible fade show"> <?php echo $_SESSION['message']; unset($_SESSION['message']); unset($_SESSION['message_type']); ?> <button type="button" class="btn-close" data-bs-dismiss="alert"></button> </div> <?php endif; ?> <div class="card"> <div class="card-body"> <table id="reviewsTable" class="table table-hover"> <thead> <tr> <th>ID</th> <th>Product</th> <th>Customer</th> <th>Rating</th> <th>Review</th> <th>Date</th> <th>Status</th> <th>Actions</th> </tr> </thead> <tbody> <?php foreach ($reviews as $review): ?> <tr> <td><?php echo $review['id']; ?></td> <td> <a href="../product-single.php?id=<?php echo $review['product_id']; ?>" target="_blank"> <?php echo htmlspecialchars($review['product_name'] ?? 'Unknown'); ?> </a> </td> <td> <strong><?php echo htmlspecialchars($review['customer_name'] ?? 'N/A'); ?></strong><br> <small class="text-muted"><?php echo htmlspecialchars($review['customer_email'] ?? ''); ?></small> </td> <td> <span class="text-warning"> <?php for ($i = 0; $i < $review['rating']; $i++) echo '<i class="fas fa-star"></i>'; ?> <?php for ($i = $review['rating']; $i < 5; $i++) echo '<i class="far fa-star"></i>'; ?> </span> </td> <td> <strong><?php echo htmlspecialchars($review['review_title'] ?? ''); ?></strong><br> <?php echo nl2br(htmlspecialchars($review['review_text'] ?? '')); ?> </td> <td><?php echo date('M d, Y', strtotime($review['created_at'])); ?></td> <td> <span class="badge bg-<?php echo $review['status'] ? 'success' : 'warning'; ?>" id="status-badge-<?php echo $review['id']; ?>"> <?php echo $review['status'] ? 'Approved' : 'Pending'; ?> </span> </td> <td> <button class="btn btn-sm btn-<?php echo $review['status'] ? 'secondary' : 'success'; ?>" onclick="toggleStatus(<?php echo $review['id']; ?>, <?php echo $review['status'] ? 0 : 1; ?>)" id="toggle-btn-<?php echo $review['id']; ?>"> <i class="fas fa-<?php echo $review['status'] ? 'times-circle' : 'check-circle'; ?>"></i> <?php echo $review['status'] ? 'Un-approve' : 'Approve'; ?> </button> <form action="reviews.php" method="POST" style="display:inline;" onsubmit="return confirm('Are you sure you want to delete this review?');"> <input type="hidden" name="action" value="delete"> <input type="hidden" name="review_id" value="<?php echo $review['id']; ?>"> <button type="submit" class="btn btn-sm btn-danger"><i class="fas fa-trash"></i></button> </form> </td> </tr> <?php endforeach; ?> </tbody> </table> </div> </div> </main> </div> </div> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script> <script src="https://cdn.datatables.net/1.11.5/js/jquery.dataTables.min.js"></script> <script src="https://cdn.datatables.net/1.11.5/js/dataTables.bootstrap5.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> <script> $(document).ready(function() { $('#reviewsTable').DataTable({ "order": [[5, "desc"]] }); }); function toggleStatus(id, status) { $.post('reviews.php', { action: 'toggle_status', id: id, status: status }, function(res) { let response = JSON.parse(res); if(response.success) { Swal.fire({ icon: 'success', title: 'Status updated!', toast: true, position: 'top-end', showConfirmButton: false, timer: 2000 }); let badge = $('#status-badge-' + id); let button = $('#toggle-btn-' + id); badge.text(response.newStatus); if(status == 1) { badge.removeClass('bg-warning').addClass('bg-success'); button.removeClass('btn-success').addClass('btn-secondary') .html('<i class="fas fa-times-circle"></i> Un-approve') .attr('onclick', `toggleStatus(${id}, 0)`); } else { badge.removeClass('bg-success').addClass('bg-warning'); button.removeClass('btn-secondary').addClass('btn-success') .html('<i class="fas fa-check-circle"></i> Approve') .attr('onclick', `toggleStatus(${id}, 1)`); } } }); } </script> </body> </html>
Upload File
Create Folder