Skip to content

Commit

Permalink
Category CRUD
Browse files Browse the repository at this point in the history
  • Loading branch information
kutluhanazafli committed Jul 6, 2024
1 parent 54de104 commit a72d911
Show file tree
Hide file tree
Showing 10 changed files with 878 additions and 257 deletions.
116 changes: 116 additions & 0 deletions Controller/categories.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
<?php

if(!get_session('login') || get_session('login') != true) {
redirect('login');
}

if (route(0) == 'categories' && !route(1)) {
/*
if (isset($_POST['submit'])) {
$_SESSION['post'] = $_POST;
$email = post('email');
$password = post('password');
$return = model('auth/login', [
'email' => $email,
'password' => $password
], 'login');
if($return['success'] == true) {
add_session('error', [
'type' => $return['type'] ?? '',
'message' => $return['message'] ?? ''
]);
if (isset($return['redirect'])) {
redirect($return['redirect']);
}
} else {
add_session('error', [
'type' => $return['type'] ?? '',
'message' => $return['message'] ?? ''
]);
}
}
*/

view('categories/home');

} elseif (route(0) == 'categories' && route(1) == 'add') {

if (isset($_POST['submit'])) {

$_SESSION['post'] = $_POST;

$category_title = post('category_title');

$return = model('categories', [
'category_title' => $category_title
], 'add');

if($return['success'] == true) {
add_session('error', [
'type' => $return['type'] ?? '',
'message' => $return['message'] ?? ''
]);
if (isset($return['redirect'])) {
redirect($return['redirect']);
}
} else {
add_session('error', [
'type' => $return['type'] ?? '',
'message' => $return['message'] ?? ''
]);
}
}

view('categories/add');

} elseif (route(0) == 'categories' && route(1) == 'list') {

$return = model('categories', [], 'list');

view('categories/list', $return['data']);

} elseif (route(0) == 'categories' && route(1) == 'edit' && is_numeric(route(2))) {

if (isset($_POST['submit'])) {

$_SESSION['post'] = $_POST;

$category_title = post('category_title');
$category_id = post('category_id');

$return = model('categories', [
'category_title' => $category_title,
'category_id' => $category_id
], 'edit');

if($return['success'] == true) {
add_session('error', [
'type' => $return['type'] ?? '',
'message' => $return['message'] ?? ''
]);
if (isset($return['redirect'])) {
redirect($return['redirect']);
}
} else {
add_session('error', [
'type' => $return['type'] ?? '',
'message' => $return['message'] ?? ''
]);
}
}

$return = model('categories', ['category_id' => route(2)], 'getsingle');

view('categories/edit', $return['data']);

} elseif (route(0) == 'categories' && route(1) == 'remove' && is_numeric(route(2))) {

$return = model('categories', ['category_id' => route(2)], 'remove');

redirect('categories/list/?type='. $return['type'].'&message='.$return['message']);
}
152 changes: 152 additions & 0 deletions Model/categories.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
<?php

if ($process == 'add') {

if (!$data['category_title']) {
return [
'success' => false,
'message' => 'Category title is required',
'type' => 'danger'
];
}

$q = $db -> prepare("INSERT INTO categories SET category_title = ?, user_id = ?");
$q -> execute([
$data['category_title'],
get_session('user_id')
]);

if ($q -> rowCount()) {

return [
'success' => true,
'message' => 'Category added successfully.',
'type' => 'success',
'redirect' => 'categories/list'
];

} else {

return [
'success' => false,
'message' => 'An error occurred while adding the category. Please try again.',
'type' => 'danger'
];

}

}

elseif ($process == 'list') {

$q = $db -> prepare("SELECT * FROM categories WHERE user_id = ?");
$get = $q -> execute([get_session('user_id')]);

if ($q -> rowCount()) {

return [
'success' => true,
'type' => 'success',
'data' => $q -> fetchAll(PDO::FETCH_ASSOC)
];

} else {

return [
'success' => false,
'type' => 'success',
'data' => []
];

}

}

elseif ($process == 'remove') {

$id = $data['category_id'];

$q = $db -> prepare("DELETE FROM categories WHERE categories.category_id = ? && categories.user_id = ?");
$get = $q -> execute([$id, get_session('user_id')]);

if ($q -> rowCount()) {

return [
'success' => true,
'type' => 'success',
'message' => 'Category deleted successfully.'
];

} else {

return [
'success' => false,
'type' => 'danger',
'message' => 'An error occurred while deleting the category. Please try again.'
];

}

}

elseif ($process == 'getsingle') {

$id = $data['category_id'];
$q = $db -> prepare("SELECT * FROM categories WHERE category_id = ? && user_id = ?");
$get = $q -> execute([$id, get_session('user_id')]);

if ($q -> rowCount()) {

return [
'success' => true,
'type' => 'success',
'data' => $q->fetch(PDO::FETCH_ASSOC)
];

} else {
return [
'success' => false,
'type' => 'danger',
'data' => []
];
}

}

elseif ($process == 'edit') {

if (!$data['category_title']) {
return [
'success' => false,
'message' => 'Category title is required',
'type' => 'danger'
];
}

$id = $data['category_id'];
$title = $data['category_title'];

$q = $db -> prepare("UPDATE categories SET category_title = ? WHERE category_id = ? && user_id = ?");
$get = $q -> execute([$title, $id, get_session('user_id')]);

if ($get) {

return [
'success' => true,
'type' => 'success',
'message' => 'Category updated successfully.',
'data' => $q -> fetch(PDO::FETCH_ASSOC)
];

} else {

return [
'success' => false,
'type' => 'danger',
'message' => 'An error occurred while updating the category. Please try again.',
'data' => []
];

}

}
81 changes: 81 additions & 0 deletions View/categories/add.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<?php view('static/header'); ?>

<div class="wrapper">

<!-- Navbar -->
<nav class="main-header navbar navbar-expand navbar-white navbar-light">

<!-- Right navbar links -->
<ul class="navbar-nav ml-auto">
<!-- Navbar Search -->
<li class="nav-item d-none d-sm-inline-block">
<a href="<?= URL . 'logout'; ?>" class="nav-link">Logout</a>
</li>

</ul>
</nav>
<!-- /.navbar -->

<!-- Main Sidebar Container -->
<?php view('static/sidebar'); ?>

<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper p-5">
<!-- Main content -->
<div class="content">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">Add Category</h3>
</div>
<!-- /.card-header -->
<!-- form start -->

<?php
echo get_session('error') ? '<div class="alert alert-' . $_SESSION['error']['type'] . '">' . $_SESSION['error']['message'] . '</div>' : null;
?>

<form action="" method="POST">

<div class="card-body">
<div class="form-group">
<label for="title">Category Title</label>
<input type="text" class="form-control" id="title" name="category_title" placeholder="Enter the category title">
</div>
</div>
<!-- /.card-body -->

<div class="card-footer">
<button type="submit" name="submit" value="1" class="btn btn-primary">Submit</button>
</div>

</form>
</div>
</div>

</div>
<!-- /.row -->
</div><!-- /.container-fluid -->
</div>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->


<?php view('static/footer'); ?>

</div>
<!-- ./wrapper -->
<!-- REQUIRED SCRIPTS -->

<!-- jQuery -->
<script src="<?= assets('plugins/jquery/jquery.min.js'); ?>"></script>
<!-- Bootstrap 4 -->
<script src="<?= assets('plugins/bootstrap/js/bootstrap.bundle.min.js'); ?>"></script>
<!-- AdminLTE App -->
<script src="<?= assets('js/adminlte.min.js'); ?>"></script>
</body>

</html>
Loading

0 comments on commit a72d911

Please sign in to comment.