exec("CREATE TABLE IF NOT EXISTS paket_wisata (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(255) NOT NULL,
deskripsi TEXT,
durasi VARCHAR(100),
harga INT NOT NULL,
gambar VARCHAR(255)
)");
// Kendaraan Table
$pdo->exec("CREATE TABLE IF NOT EXISTS kendaraan (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(255) NOT NULL,
jenis VARCHAR(100),
transmisi VARCHAR(50),
harga INT NOT NULL,
status VARCHAR(50) DEFAULT 'Tersedia',
gambar VARCHAR(255)
)");
} catch (PDOException $e) {
die("Error creating table: " . $e->getMessage());
}
// --- HANDLE ACTIONS (DELETE & EDIT) ---
if (isset($_GET['action'])) {
$action = $_GET['action'];
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
// Paket Wisata Actions
if ($action == 'delete_paket' && $id > 0) {
$stmt = $pdo->prepare("SELECT gambar FROM paket_wisata WHERE id = ?");
$stmt->execute([$id]);
$item = $stmt->fetch();
if ($item && !empty($item['gambar']) && file_exists($item['gambar'])) {
unlink($item['gambar']);
}
$stmt = $pdo->prepare("DELETE FROM paket_wisata WHERE id = ?");
if ($stmt->execute([$id])) {
$message .= '
Paket wisata berhasil dihapus.
';
}
} elseif ($action == 'edit_paket' && $id > 0) {
$stmt = $pdo->prepare("SELECT * FROM paket_wisata WHERE id = ?");
$stmt->execute([$id]);
$paket_to_edit = $stmt->fetch();
if ($paket_to_edit) $edit_mode_paket = true;
}
// Kendaraan Actions
if ($action == 'delete_kendaraan' && $id > 0) {
$stmt = $pdo->prepare("SELECT gambar FROM kendaraan WHERE id = ?");
$stmt->execute([$id]);
$item = $stmt->fetch();
if ($item && !empty($item['gambar']) && file_exists($item['gambar'])) {
unlink($item['gambar']);
}
$stmt = $pdo->prepare("DELETE FROM kendaraan WHERE id = ?");
if ($stmt->execute([$id])) {
$message .= '
Kendaraan berhasil dihapus.
';
}
} elseif ($action == 'edit_kendaraan' && $id > 0) {
$stmt = $pdo->prepare("SELECT * FROM kendaraan WHERE id = ?");
$stmt->execute([$id]);
$kendaraan_to_edit = $stmt->fetch();
if ($kendaraan_to_edit) $edit_mode_kendaraan = true;
}
}
// --- FORM PROCESSING (ADD, UPDATE, LOGO) ---
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$upload_dir = 'assets/images/';
$allowed_types = ['image/png', 'image/jpeg', 'image/gif', 'image/x-icon'];
$action = $_POST['action'] ?? '';
// Handle Logo Upload
if ($action == 'upload_logo') {
if (isset($_FILES['main_logo']) && $_FILES['main_logo']['error'] == 0) {
if (in_array($_FILES['main_logo']['type'], $allowed_types)) {
if (move_uploaded_file($_FILES['main_logo']['tmp_name'], $upload_dir . 'logo.png')) {
$message .= '
Logo utama berhasil diunggah.
';
}
}
}
if (isset($_FILES['logo_icon']) && $_FILES['logo_icon']['error'] == 0) {
if (in_array($_FILES['logo_icon']['type'], $allowed_types)) {
if (move_uploaded_file($_FILES['logo_icon']['tmp_name'], $upload_dir . 'favicon.png')) {
$message .= '
';
} elseif ($action == 'update_kendaraan' && $id > 0) {
$stmt = $pdo->prepare("UPDATE kendaraan SET nama = ?, jenis = ?, transmisi = ?, harga = ?, status = ?, gambar = ? WHERE id = ?");
if ($stmt->execute([$nama, $jenis, $transmisi, $harga, $status, $gambar, $id])) $message .= '
Kendaraan berhasil diperbarui.
';
}
} else {
$message .= '
Nama dan Harga Kendaraan wajib diisi.
';
}
}
// To prevent re-submission on refresh, we redirect.
if ($_SERVER["REQUEST_METHOD"] == "POST") {
header("Location: admin.php");
exit;
}
}
// Fetch all data
$paket_wisata = $pdo->query("SELECT * FROM paket_wisata ORDER BY id DESC")->fetchAll();
$kendaraan = $pdo->query("SELECT * FROM kendaraan ORDER BY id DESC")->fetchAll();
?>
Admin Dashboard - JatimTour