File manager - Edit - /home/webapp69.cm.in.th/u69319090028/Shop/views/components/announcement_banner.php
Back
<?php /** * Universal Announcement Placement Component * Usage: $placement = 'homepage'; require __DIR__ . '/announcement_banner.php'; */ if (!isset($announcementService)) { require_once __DIR__ . '/../../app/Services/AnnouncementService.php'; $announcementService = new AnnouncementService(); } $placementLocation = $placementLocation ?? 'global_top_bar'; $userRole = 'all'; if (Auth::check()) { $roles = Auth::user()['roles'] ?? []; if (in_array('seller', $roles, true)) { $userRole = 'seller'; } elseif (in_array('customer', $roles, true)) { $userRole = 'customer'; } } $activeAnnouncements = $announcementService->getPlacements($placementLocation, $userRole); ?> <?php if (!empty($activeAnnouncements)): ?> <div class="announcements-wrapper mb-3"> <?php foreach ($activeAnnouncements as $ann): ?> <?php $alertClass = 'alert-info border-info-subtle'; $iconClass = 'bi-megaphone-fill text-primary'; if ($ann['priority'] === 'critical') { $alertClass = 'alert-danger border-danger-subtle bg-danger-subtle'; $iconClass = 'bi-exclamation-triangle-fill text-danger'; } elseif ($ann['priority'] === 'important') { $alertClass = 'alert-warning border-warning-subtle bg-warning-subtle'; $iconClass = 'bi-bell-fill text-warning-emphasis'; } ?> <div class="alert <?= $alertClass ?> shadow-sm d-flex align-items-center justify-content-between p-3 rounded-3 mb-2" role="alert" data-announcement-id="<?= (int)$ann['id'] ?>"> <div class="d-flex align-items-start gap-3"> <i class="bi <?= $iconClass ?> fs-4 mt-0"></i> <div> <strong class="text-dark d-block"><?= e($ann['title']) ?></strong> <div class="text-secondary small mt-1"><?= nl2br(e($ann['content'])) ?></div> </div> </div> <button type="button" class="btn-close ms-2" data-bs-dismiss="alert" aria-label="Close"></button> </div> <?php endforeach; ?> </div> <?php endif; ?>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.23 |
proxy
|
phpinfo
|
Settings