File manager - Edit - /home/webapp69.cm.in.th/u69319090028/Shop/app/Controllers/AdminAnnouncementController.php
Back
<?php /** * AdminAnnouncementController * Handles Admin Marketplace Announcement CRUD, Status Toggles, and Audit History */ require_once __DIR__ . '/../Core/Controller.php'; require_once __DIR__ . '/../Services/AnnouncementService.php'; require_once __DIR__ . '/../Helpers/Auth.php'; require_once __DIR__ . '/../Helpers/Session.php'; require_once __DIR__ . '/../Helpers/Url.php'; class AdminAnnouncementController extends Controller { private AnnouncementService $announcementService; public function __construct() { $this->announcementService = new AnnouncementService(); } public function index(): void { $filters = [ 'q' => $_GET['q'] ?? '', 'status' => $_GET['status'] ?? 'all', 'target_audience' => $_GET['target_audience'] ?? 'all', 'display_location' => $_GET['display_location'] ?? 'all', 'priority' => $_GET['priority'] ?? 'all' ]; $page = isset($_GET['page']) ? (int)$_GET['page'] : 1; $data = $this->announcementService->getAdminAnnouncements($filters, $page, 20); $this->render('admin/announcements/index', array_merge($data, [ 'pageTitle' => 'จัดการประกาศ Marketplace - CARGOO Admin', 'activeNav' => 'announcements' ]), 'admin'); } public function create(): void { $this->render('admin/announcements/create', [ 'pageTitle' => 'สร้างประกาศใหม่ - CARGOO Admin', 'activeNav' => 'announcements' ], 'admin'); } public function store(): void { $adminId = Auth::id(); $result = $this->announcementService->createAnnouncement($_POST, $adminId); if (!$result['success']) { Session::setFlash('danger', $result['message']); $this->redirect('/admin/announcements/create'); } Session::setFlash('success', $result['message']); $this->redirect('/admin/announcements'); } public function edit(string $id): void { $announcement = $this->announcementService->getAnnouncementDetail((int)$id); if (!$announcement) { Session::setFlash('danger', 'ไม่พบประกาศที่ต้องการแก้ไข'); $this->redirect('/admin/announcements'); } $this->render('admin/announcements/edit', [ 'announcement' => $announcement, 'pageTitle' => 'แก้ไขประกาศ: ' . e($announcement['title']) . ' - CARGOO Admin', 'activeNav' => 'announcements' ], 'admin'); } public function update(string $id): void { $adminId = Auth::id(); $result = $this->announcementService->updateAnnouncement((int)$id, $_POST, $adminId); if (!$result['success']) { Session::setFlash('danger', $result['message']); $this->redirect('/admin/announcements/' . $id . '/edit'); } Session::setFlash('success', $result['message']); $this->redirect('/admin/announcements'); } public function toggleStatus(string $id): void { $adminId = Auth::id(); $result = $this->announcementService->toggleStatus((int)$id, $adminId); if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') { $this->json($result); } if (!$result['success']) { Session::setFlash('danger', $result['message']); } else { Session::setFlash('success', $result['message']); } $this->redirect('/admin/announcements'); } public function delete(string $id): void { $adminId = Auth::id(); $result = $this->announcementService->deleteAnnouncement((int)$id, $adminId); if (!$result['success']) { Session::setFlash('danger', $result['message']); } else { Session::setFlash('success', $result['message']); } $this->redirect('/admin/announcements'); } public function history(string $id): void { $announcement = $this->announcementService->getAnnouncementDetail((int)$id); if (!$announcement) { Session::setFlash('danger', 'ไม่พบประกาศ'); $this->redirect('/admin/announcements'); } $history = $this->announcementService->getHistory((int)$id); $this->render('admin/announcements/history', [ 'announcement' => $announcement, 'history' => $history, 'pageTitle' => 'ประวัติการดำเนินการประกาศ #' . (int)$id . ' - CARGOO Admin', 'activeNav' => 'announcements' ], 'admin'); } public function trackClick(string $id): void { $this->announcementService->trackClick((int)$id); $this->json(['success' => true]); } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.23 |
proxy
|
phpinfo
|
Settings