File manager - Edit - /home/webapp69.cm.in.th/u69319090028/Shop/app/Controllers/AdminReviewController.php
Back
<?php /** * AdminReviewController * Handles Review Moderation & Audit in Admin Backend */ require_once __DIR__ . '/../Core/Controller.php'; require_once __DIR__ . '/../Services/AdminReviewService.php'; require_once __DIR__ . '/../Services/AdminPermissionService.php'; require_once __DIR__ . '/../Helpers/Auth.php'; require_once __DIR__ . '/../Helpers/Session.php'; require_once __DIR__ . '/../Helpers/Url.php'; class AdminReviewController extends Controller { private AdminReviewService $adminReviewService; private AdminPermissionService $permService; public function __construct() { $this->adminReviewService = new AdminReviewService(); $this->permService = new AdminPermissionService(); } /** * GET /admin/reviews * Moderation Dashboard for Reviews */ public function index(): void { $adminId = Auth::id(); if (!$this->permService->has($adminId, 'report.manage') && !$this->permService->has($adminId, 'product.view')) { Session::setFlash('danger', 'คุณไม่มีสิทธิ์เข้าถึงส่วนการจัดการรีวิว'); $this->redirect('/admin'); return; } $filters = [ 'q' => trim($_GET['q'] ?? ''), 'status' => $_GET['status'] ?? 'all', 'rating' => !empty($_GET['rating']) ? (int)$_GET['rating'] : 0, 'date_from' => $_GET['date_from'] ?? '', 'date_to' => $_GET['date_to'] ?? '' ]; $page = max(1, (int)($_GET['page'] ?? 1)); $data = $this->adminReviewService->getAdminReviews($filters, $page, 20); $this->render('admin/reviews/index', [ 'reviews' => $data['reviews'], 'stats' => $data['stats'], 'totalCount' => $data['total_count'], 'totalPages' => $data['total_pages'], 'currentPage' => $data['page'], 'filters' => $filters, 'activeNav' => 'reviews', 'pageTitle' => 'จัดการและกลั่นกรองรีวิว (Review Moderation) - Admin' ], 'admin'); } /** * POST /admin/reviews/moderate * Execute Hide, Restore, or Remove action */ public function moderate(): void { $adminId = Auth::id(); if (!$this->permService->has($adminId, 'report.manage')) { $this->json(['success' => false, 'message' => 'คุณไม่มีสิทธิ์ดำเนินการกลั่นกรองรีวิว'], 403); return; } $reviewId = (int)($_POST['review_id'] ?? 0); $action = trim($_POST['action'] ?? ''); $reason = trim($_POST['reason'] ?? ''); $result = $this->adminReviewService->moderateReview($adminId, $reviewId, $action, $reason); if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') { $this->json($result, $result['success'] ? 200 : 400); return; } if ($result['success']) { Session::setFlash('success', $result['message']); } else { Session::setFlash('danger', $result['message']); } $this->redirect('/admin/reviews'); } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.23 |
proxy
|
phpinfo
|
Settings