File manager - Edit - /home/webapp69.cm.in.th/u69319090028/Shop/app/Controllers/AdminProductController.php
Back
<?php /** * AdminProductController * Product moderation: list, detail, approve, reject, hide, restore */ require_once __DIR__ . '/../Core/Controller.php'; require_once __DIR__ . '/../Services/AdminProductService.php'; require_once __DIR__ . '/../Models/Category.php'; require_once __DIR__ . '/../Middleware/AdminMiddleware.php'; require_once __DIR__ . '/../Helpers/Auth.php'; require_once __DIR__ . '/../Helpers/Session.php'; class AdminProductController extends Controller { private AdminProductService $productService; public function __construct() { $this->productService = new AdminProductService(); } public function index(): void { AdminMiddleware::requirePermission('product.view'); $filters = [ 'q' => trim($_GET['q'] ?? ''), 'status' => $_GET['status'] ?? 'all', 'category_id' => $_GET['category_id'] ?? '', 'store_id' => $_GET['store_id'] ?? '', ]; $page = max(1, (int)($_GET['page'] ?? 1)); $data = $this->productService->getProducts($filters, $page); $categoryModel = new Category(); $categories = $categoryModel->getAllCategories(false); $this->render('admin/products/index', array_merge($data, [ 'filters' => $filters, 'categories' => $categories, 'pageTitle' => 'จัดการสินค้า — CARGOO Admin', 'activeNav' => 'products', ]), 'admin'); } public function show(string $id): void { AdminMiddleware::requirePermission('product.view'); $product = $this->productService->getProductDetail((int)$id); if (!$product) { Session::setFlash('danger', 'ไม่พบสินค้า'); $this->redirect('/admin/products'); } $this->render('admin/products/show', [ 'product' => $product, 'pageTitle' => 'รายละเอียดสินค้า: ' . e($product['name']) . ' — CARGOO Admin', 'activeNav' => 'products', ], 'admin'); } public function approve(string $id): void { AdminMiddleware::requirePermission('product.approve'); $this->moderate((int)$id, 'active', null); } public function reject(string $id): void { AdminMiddleware::requirePermission('product.approve'); $this->moderate((int)$id, 'rejected', trim($_POST['reason'] ?? '')); } public function hide(string $id): void { AdminMiddleware::requirePermission('product.hide'); $this->moderate((int)$id, 'hidden', trim($_POST['reason'] ?? '')); } public function restore(string $id): void { AdminMiddleware::requirePermission('product.hide'); $this->moderate((int)$id, 'active', null); } private function moderate(int $productId, string $newStatus, ?string $reason): void { $result = $this->productService->moderate($productId, $newStatus, $reason, Auth::id()); Session::setFlash($result['success'] ? 'success' : 'danger', $result['message']); $this->redirect('/admin/products/' . $productId); } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.24 |
proxy
|
phpinfo
|
Settings