Current Directory: /home/aissorg/public_html/admin
Viewing File: /home/aissorg/public_html/admin/gallery-category.php
<?php
include('include/config.php');
// Initialize Alert Variables
$alert = '';
$alert_class = '';
// Handle POST requests
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Insert New Category
if (isset($_POST['action']) && $_POST['action'] === 'insert') {
$title = mysqli_real_escape_string($con, $_POST['title']);
$description = mysqli_real_escape_string($con, $_POST['description']);
// Set is_active to 1 by default
$is_active = 1;
$sql = "INSERT INTO gallery_category (title, description, is_active)
VALUES ('$title', '$description', $is_active)";
if (mysqli_query($con, $sql)) {
$alert = 'Category added successfully.';
$alert_class = 'alert-success';
} else {
$alert = 'Error: ' . mysqli_error($con);
$alert_class = 'alert-danger';
}
}
// Update Existing Category
if (isset($_POST['action']) && $_POST['action'] === 'update') {
$id = mysqli_real_escape_string($con, $_POST['id']);
$title = mysqli_real_escape_string($con, $_POST['title']);
$description = mysqli_real_escape_string($con, $_POST['description']);
$is_active = isset($_POST['is_active']) ? 1 : 0;
$sql = "UPDATE gallery_category
SET title = '$title', description = '$description', is_active = $is_active
WHERE id = $id";
if (mysqli_query($con, $sql)) {
$alert = 'Category updated successfully.';
$alert_class = 'alert-success';
} else {
$alert = 'Error: ' . mysqli_error($con);
$alert_class = 'alert-danger';
}
}
// Delete Category
if (isset($_POST['action']) && $_POST['action'] === 'delete') {
$id = mysqli_real_escape_string($con, $_POST['id']);
$sql = "DELETE FROM gallery_category WHERE id = $id";
if (mysqli_query($con, $sql)) {
$alert = 'Category deleted successfully.';
$alert_class = 'alert-success';
} else {
$alert = 'Error: ' . mysqli_error($con);
$alert_class = 'alert-danger';
}
}
}
// Fetch All Categories
function fetchCategories($con) {
$sql = "SELECT * FROM gallery_category";
$result = mysqli_query($con, $sql);
$categories = [];
while ($row = mysqli_fetch_assoc($result)) {
$categories[] = $row;
}
return $categories;
}
?>
<!DOCTYPE html>
<html lang="en" data-layout="vertical" data-topbar="light" data-sidebar="light" data-sidebar-size="lg" data-sidebar-image="none">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Gallery Category</title>
<!-- Favicon -->
<link rel="shortcut icon" type="image/x-icon" href="">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="assets/css/bootstrap.min.css">
<!-- Fontawesome CSS -->
<link rel="stylesheet" href="assets/plugins/fontawesome/css/fontawesome.min.css">
<link rel="stylesheet" href="assets/plugins/fontawesome/css/all.min.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400..700;1,400..700&display=swap" rel="stylesheet">
<!-- Feather CSS -->
<link rel="stylesheet" href="assets/plugins/feather/feather.css">
<!-- Datepicker CSS -->
<link rel="stylesheet" href="assets/css/bootstrap-datetimepicker.min.css">
<!-- Daterangepikcer CSS -->
<link rel="stylesheet" href="assets/plugins/daterangepicker/daterangepicker.css">
<!-- Datatables CSS -->
<link rel="stylesheet" href="assets/plugins/datatables/datatables.min.css">
<!-- Main CSS -->
<link rel="stylesheet" href="assets/css/style.css">
<!-- Layout Js -->
<script src="assets/js/layout.js" type="text/javascript"></script>
</head>
<body>
<!-- Main Wrapper -->
<div class="main-wrapper">
<!-- Header -->
<?php include("include/header.php")?>
<!-- /Header -->
<!-- Sidebar -->
<?php include("include/sidebar.php")?>
<!-- /Sidebar -->
<!-- Page Wrapper -->
<div class="page-wrapper">
<div class="content container-fluid">
<!-- Page Header -->
<div class="page-header">
<div class="content-page-header">
<h5>Gallery Category</h5>
<div class="list-btn">
<ul class="filter-list">
<li>
<a class="btn btn-primary" href="javascript:void(0);" data-bs-toggle="modal" data-bs-target="#add_category">
<i class="fa fa-plus-circle me" aria-hidden="true"></i> Add Category
</a>
</li>
</ul>
</div>
</div>
</div>
<!-- /Page Header -->
<!-- Table -->
<div class="row">
<div class="col-sm-12">
<!-- Dynamic Alert -->
<?php if (!empty($alert)): ?>
<div class="alert <?php echo $alert_class; ?> alert-dismissible fade show" role="alert">
<strong><?php echo ($alert_class === 'alert-success') ? 'Success!' : 'Error!'; ?></strong> <?php echo $alert; ?>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
<?php endif; ?>
<div class="card-table">
<div class="card-body">
<div class="table-responsive">
<table class="table table-stripped table-hover datatable">
<thead class="thead-light">
<tr>
<th>#</th>
<th>Title</th>
<th>Description</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
$categories = fetchCategories($con);
foreach ($categories as $category) {
echo "<tr>";
echo "<td>" . $category['id'] . "</td>";
echo "<td>" . $category['title'] . "</td>";
echo "<td>" . $category['description'] . "</td>";
echo "<td>" . ($category['is_active'] ? 'Active' : 'Inactive') . "</td>";
echo '<td class="d-flex align-items-center">
<a class="btn-action-icon me-2" href="javascript:void(0);" data-bs-toggle="modal" data-bs-target="#edit_' . $category['id'] . '"><i class="fe fe-edit"></i></a>
<a class="btn-action-icon me-2" href="javascript:void(0);" data-bs-toggle="modal" data-bs-target="#delete_modal_' . $category['id'] . '"><i class="fe fe-trash"></i></a>
</td>';
echo "</tr>";
// Edit Modal for Each Category
echo '<div class="modal custom-modal fade" id="edit_' . $category['id'] . '" role="dialog">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<div class="modal-header border-0 pb-0">
<div class="form-header modal-header-title text-start mb-0">
<h4 class="mb-0">Edit Gallery Category</h4>
</div>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<form method="POST" action="">
<input type="hidden" name="action" value="update">
<input type="hidden" name="id" value="' . $category['id'] . '">
<div class="modal-body">
<div class="row">
<div class="col-lg-6 col-md-12">
<div class="input-block mb-3">
<label>Title</label>
<input type="text" class="form-control" name="title" value="' . $category['title'] . '" required>
</div>
</div>
<div class="col-lg-6 col-md-12">
<div class="input-block mb-3">
<label>Description</label>
<textarea class="form-control" name="description">' . $category['description'] . '</textarea>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" data-bs-dismiss="modal" class="btn btn-back cancel-btn me-2">Cancel</button>
<button type="submit" class="btn btn-primary paid-continue-btn">Update</button>
</div>
</form>
</div>
</div>
</div>';
// Delete Modal for Each Category
echo '<div class="modal custom-modal fade" id="delete_modal_' . $category['id'] . '" role="dialog">
<div class="modal-dialog modal-dialog-centered modal-md">
<div class="modal-content">
<div class="modal-body">
<div class="form-header">
<h3>Delete Gallery Category</h3>
<p>Are you sure you want to delete this category?</p>
</div>
<div class="modal-btn delete-action">
<div class="row">
<div class="col-6">
<form method="POST" action="">
<input type="hidden" name="action" value="delete">
<input type="hidden" name="id" value="' . $category['id'] . '">
<button type="submit" class="w-100 btn btn-primary paid-continue-btn">Delete</button>
</form>
</div>
<div class="col-6">
<button type="button" data-bs-dismiss="modal" class="w-100 btn btn-primary paid-cancel-btn">Cancel</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>';
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<!-- /Table -->
</div>
</div>
<!-- /Page Wrapper -->
<!-- Add Gallery Category Modal -->
<div class="modal custom-modal fade" id="add_category" role="dialog">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<div class="modal-header border-0 pb-0">
<div class="form-header modal-header-title text-start mb-0">
<h4 class="mb-0">Add Gallery Category</h4>
</div>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<form method="POST" action="">
<input type="hidden" name="action" value="insert">
<div class="modal-body">
<div class="row">
<div class="col-lg-6 col-md-12">
<div class="input-block mb-3">
<label>Title</label>
<input type="text" class="form-control" name="title" placeholder="Enter Title" required>
</div>
</div>
<div class="col-lg-6 col-md-12">
<div class="input-block mb-3">
<label>Description</label>
<textarea class="form-control" name="description" placeholder="Enter Description"></textarea>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" data-bs-dismiss="modal" class="btn btn-back cancel-btn me-2">Cancel</button>
<button type="submit" class="btn btn-primary paid-continue-btn">Save</button>
</div>
</form>
</div>
</div>
</div>
<!-- /Add Gallery Category Modal -->
</div>
<!-- /Main Wrapper -->
<!-- jQuery -->
<script data-cfasync="false" src="../../cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
<script src="assets/js/jquery-3.7.1.min.js" type="text/javascript"></script>
<!-- Bootstrap Core JS -->
<script src="assets/js/bootstrap.bundle.min.js" type="text/javascript"></script>
<!-- Datatable JS -->
<script src="assets/plugins/datatables/datatables.min.js" type="text/javascript"></script>
<!-- select CSS -->
<script src="assets/plugins/select2/js/select2.min.js" type="text/javascript"></script>
<!-- Slimscroll JS -->
<script src="assets/plugins/slimscroll/jquery.slimscroll.min.js" type="text/javascript"></script>
<!-- Datepicker Core JS -->
<script src="assets/plugins/moment/moment.min.js" type="text/javascript"></script>
<script src="assets/js/bootstrap-datetimepicker.min.js" type="text/javascript"></script>
<script src="assets/plugins/daterangepicker/daterangepicker.js" type="text/javascript"></script>
<!-- multiselect JS -->
<script src="assets/js/jquery-ui.min.js" type="text/javascript"></script>
<!-- Theme Settings JS -->
<script src="assets/js/theme-settings.js" type="text/javascript"></script>
<script src="assets/js/greedynav.js" type="text/javascript"></script>
<!-- Custom JS -->
<script src="assets/js/script.js" type="text/javascript"></script>
<script src="../../cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="|49" defer></script>
</body>
</html>