prepare("INSERT INTO sliders (title, image, link, sort_order, status, created_at) VALUES (:title, :image, :link, :sort_order, :status, NOW())"); $stmt->bindParam(':title', $title); $stmt->bindParam(':image', $image); $stmt->bindParam(':link', $link); $stmt->bindParam(':sort_order', $sort_order); $stmt->bindParam(':status', $status); $stmt->execute(); $success = "Slider added successfully."; } else { // Update existing slider $slider_id = isset($_POST['slider_id']) ? (int)$_POST['slider_id'] : 0; // Get current slider data $stmt = $db->prepare("SELECT image FROM sliders WHERE id = :id"); $stmt->bindParam(':id', $slider_id); $stmt->execute(); $currentSlider = $stmt->fetch(); if (!$currentSlider) { throw new Exception("Slider not found."); } // Use current image if no new image uploaded if (empty($image)) { $image = $currentSlider['image']; } // Update slider $stmt = $db->prepare("UPDATE sliders SET title = :title, image = :image, link = :link, sort_order = :sort_order, status = :status, updated_at = NOW() WHERE id = :id"); $stmt->bindParam(':title', $title); $stmt->bindParam(':image', $image); $stmt->bindParam(':link', $link); $stmt->bindParam(':sort_order', $sort_order); $stmt->bindParam(':status', $status); $stmt->bindParam(':id', $slider_id); $stmt->execute(); $success = "Slider updated successfully."; } // Redirect to slider list header("Location: sliders.php?success=" . urlencode($success)); exit; } catch (Exception $e) { $error = $e->getMessage(); } } } // Delete Slider if ($formAction === 'delete') { $slider_id = isset($_POST['slider_id']) ? (int)$_POST['slider_id'] : 0; try { // Get slider image $stmt = $db->prepare("SELECT image FROM sliders WHERE id = :id"); $stmt->bindParam(':id', $slider_id); $stmt->execute(); $slider = $stmt->fetch(); // Delete slider $stmt = $db->prepare("DELETE FROM sliders WHERE id = :id"); $stmt->bindParam(':id', $slider_id); $stmt->execute(); // Delete image file if exists if (!empty($slider['image'])) { $imagePath = __DIR__ . '/../img/sliders/' . $slider['image']; if (file_exists($imagePath)) { unlink($imagePath); } } $success = "Slider deleted successfully."; // Redirect to slider list header("Location: sliders.php?success=" . urlencode($success)); exit; } catch (PDOException $e) { $error = "Database error: " . $e->getMessage(); } } // Toggle Status if ($formAction === 'toggle') { $slider_id = isset($_POST['slider_id']) ? (int)$_POST['slider_id'] : 0; try { // Get current status $stmt = $db->prepare("SELECT status FROM sliders WHERE id = :id"); $stmt->bindParam(':id', $slider_id); $stmt->execute(); $currentSlider = $stmt->fetch(); if (!$currentSlider) { throw new Exception("Slider not found."); } // Toggle status $newStatus = $currentSlider['status'] ? 0 : 1; $stmt = $db->prepare("UPDATE sliders SET status = :status WHERE id = :id"); $stmt->bindParam(':status', $newStatus); $stmt->bindParam(':id', $slider_id); $stmt->execute(); $success = "Slider status updated successfully."; // Redirect to slider list header("Location: sliders.php?success=" . urlencode($success)); exit; } catch (Exception $e) { $error = $e->getMessage(); } } } } // Get slider for edit if ($action === 'edit' && $id > 0) { try { $stmt = $db->prepare("SELECT * FROM sliders WHERE id = :id"); $stmt->bindParam(':id', $id); $stmt->execute(); $slider = $stmt->fetch(); if (!$slider) { $error = "Slider not found."; $action = 'list'; } } catch (PDOException $e) { $error = "Database error: " . $e->getMessage(); $action = 'list'; } } // Get sliders for list with pagination $page = isset($_GET['page']) ? (int)$_GET['page'] : 1; $limit = 12; $offset = ($page - 1) * $limit; try { // Count total records $stmt = $db->prepare("SELECT COUNT(*) FROM sliders"); $stmt->execute(); $totalRecords = $stmt->fetchColumn(); // Get sliders $stmt = $db->prepare("SELECT * FROM sliders ORDER BY sort_order ASC, created_at DESC LIMIT :limit OFFSET :offset"); $stmt->bindValue(':limit', $limit, PDO::PARAM_INT); $stmt->bindValue(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); $sliders = $stmt->fetchAll(); $totalPages = ceil($totalRecords / $limit); } catch (PDOException $e) { $error = "Database error: " . $e->getMessage(); $sliders = []; $totalPages = 0; } // Set page title based on action $pageTitle = ($action === 'add') ? "Add Slider" : (($action === 'edit') ? "Edit Slider" : "Manage Sliders"); // Include header include 'includes/header.php'; ?>