🤩 File Manager - Mr.X
PHP:
8.3.33
Server:
Apache
OS:
Linux 5.14.0-611.49.1.el9_7.x86_64
User:
websparkit
Navigate
Upload:
Upload
New File
New Folder
Editing:category-add.php
<?php $page = 'categories'; $page_title = 'Add / Edit Category'; require_once '../includes/header.php'; $id = intval($_GET['id'] ?? 0); $category = ['id' => 0, 'name' => '', 'slug' => '', 'description' => '', 'icon' => 'fas fa-tag', 'image' => '', 'status' => 1]; if ($id) { $stmt = $db->prepare("SELECT * FROM categories WHERE id = ?"); $stmt->execute([$id]); $category = $stmt->fetch(PDO::FETCH_ASSOC); if (!$category) { admin_set_flash('error', 'Category not found'); header('Location: ' . ADMIN_PATH . 'pages/categories.php'); exit; } $page_title = 'Edit Category'; } if ($_SERVER['REQUEST_METHOD'] == 'POST' && verify_csrf($_POST[CSRF_TOKEN_NAME] ?? '')) { $name = trim($_POST['name']); $slug = !empty($_POST['slug']) ? create_slug($_POST['slug']) : create_slug($name); $description = trim($_POST['description'] ?? ''); $icon = trim($_POST['icon'] ?? 'fas fa-tag'); $status = intval($_POST['status']); $image = $category['image'] ?? ''; if (isset($_FILES['image']) && $_FILES['image']['error'] == 0) { $new_image = upload_image($_FILES['image'], 'categories', $name); if ($new_image) $image = $new_image; } try { if ($id) { $stmt = $db->prepare("UPDATE categories SET name=?, slug=?, description=?, icon=?, image=?, status=? WHERE id=?"); $stmt->execute([$name, $slug, $description, $icon, $image, $status, $id]); admin_set_flash('success', 'Category updated'); } else { $stmt = $db->prepare("INSERT INTO categories (name, slug, description, icon, image, status) VALUES (?, ?, ?, ?, ?, ?)"); $stmt->execute([$name, $slug, $description, $icon, $image, $status]); admin_set_flash('success', 'Category added'); } header('Location: ' . ADMIN_PATH . 'pages/categories.php'); exit; } catch (Exception $e) { if (strpos($e->getMessage(), 'Duplicate') !== false) { $error = 'A category with this slug already exists.'; } else { $error = 'Failed: ' . $e->getMessage(); } } } ?> <div class="admin-card"> <?php if (isset($error)): ?> <div class="alert alert-danger"><?= htmlspecialchars($error) ?></div> <?php endif; ?> <form method="POST" enctype="multipart/form-data"> <?= csrf_field() ?> <div class="row g-4"> <div class="col-md-8"> <div class="form-group-admin"> <label class="form-label-admin">Category Name *</label> <input type="text" name="name" class="form-control-admin" required value="<?= htmlspecialchars($category['name']) ?>"> </div> <div class="form-group-admin"> <label class="form-label-admin">Slug (URL friendly)</label> <input type="text" name="slug" class="form-control-admin" value="<?= htmlspecialchars($category['slug']) ?>" placeholder="auto-generated from name"> </div> <div class="form-group-admin"> <label class="form-label-admin">Description</label> <textarea name="description" class="form-control-admin" rows="4"><?= htmlspecialchars($category['description'] ?? '') ?></textarea> </div> <div class="form-group-admin"> <label class="form-label-admin">Icon (Font Awesome class)</label> <input type="text" name="icon" class="form-control-admin" value="<?= htmlspecialchars($category['icon']) ?>" placeholder="fas fa-tag"> <small class="text-muted">Example: fas fa-home, fas fa-laptop, fas fa-spa</small> </div> </div> <div class="col-md-4"> <div class="form-group-admin"> <label class="form-label-admin">Status</label> <select name="status" class="form-control-admin"> <option value="1" <?= $category['status'] == 1 ? 'selected' : '' ?>>Active</option> <option value="0" <?= $category['status'] == 0 ? 'selected' : '' ?>>Inactive</option> </select> </div> <div class="form-group-admin"> <label class="form-label-admin">Image (Optional)</label> <input type="file" name="image" class="form-control-admin" accept="image/*" data-preview="cat-preview"> <?php if ($category['image']): ?> <img id="cat-preview" src="<?= UPLOADS_URL ?>categories/<?= $category['image'] ?>" class="image-preview image-preview-lg" style="margin-top: 10px;" onerror="this.onerror=null;this.src='<?= UPLOADS_URL ?>settings/<?= $category['image'] ?>';"> <?php else: ?> <img id="cat-preview" class="image-preview image-preview-lg" style="display: none; margin-top: 10px;"> <?php endif; ?> </div> </div> </div> <hr style="margin: 30px 0;"> <div class="d-flex gap-2"> <button type="submit" class="btn-admin btn-primary-admin"> <i class="fas fa-save"></i> <?= $id ? 'Update' : 'Add' ?> Category </button> <a href="<?= ADMIN_PATH ?>pages/categories.php" class="btn-admin btn-secondary-admin">Cancel</a> </div> </form> </div> <?php require_once '../includes/footer.php'; ?>
Save Changes
Cancel
Create New File
Create New Folder