From 5c544f93b974a590fd5ddbdf3ee207367778447a Mon Sep 17 00:00:00 2001 From: root Date: Sat, 25 Apr 2026 01:23:21 -0400 Subject: [PATCH] add badge logic --- .../Api/Badges/BadgeController.php | 1 + app/Http/Requests/Roles/RoleUpdateRequest.php | 28 +- .../Roles/RolePermissionResource.php | 16 +- app/Models/Configuration.php | 4 +- .../Attendance/StaffAttendanceService.php | 106 ++- app/Services/Badges/BadgeFormDataService.php | 83 +- app/Services/Badges/BadgePdfService.php | 828 +++++++++++++++--- .../Badges/BadgeStudentLookupService.php | 80 ++ .../Badges/BadgeUserLookupService.php | 35 +- composer.json | 5 +- composer.lock | 449 +++++++++- config/badges.php | 2 +- public/badge_example.jpeg | Bin 0 -> 147639 bytes 13 files changed, 1468 insertions(+), 169 deletions(-) create mode 100644 public/badge_example.jpeg diff --git a/app/Http/Controllers/Api/Badges/BadgeController.php b/app/Http/Controllers/Api/Badges/BadgeController.php index e29ad842..9a2d1345 100644 --- a/app/Http/Controllers/Api/Badges/BadgeController.php +++ b/app/Http/Controllers/Api/Badges/BadgeController.php @@ -149,6 +149,7 @@ class BadgeController extends Controller 'data' => $this->badgeFormDataService->build( schoolYear: $request->input('school_year'), selectedUserIds: $this->parseStaffUserIds($request), + selectedStudentIds: $this->parseStudentIds($request), activeRole: $request->input('active_role') ), ]); diff --git a/app/Http/Requests/Roles/RoleUpdateRequest.php b/app/Http/Requests/Roles/RoleUpdateRequest.php index e5ee1f32..0611a35c 100644 --- a/app/Http/Requests/Roles/RoleUpdateRequest.php +++ b/app/Http/Requests/Roles/RoleUpdateRequest.php @@ -3,6 +3,7 @@ namespace App\Http\Requests\Roles; use App\Http\Requests\ApiFormRequest; +use App\Models\Role; use Illuminate\Validation\Rule; class RoleUpdateRequest extends ApiFormRequest @@ -14,11 +15,32 @@ class RoleUpdateRequest extends ApiFormRequest public function rules(): array { - $roleId = (int) $this->route('roleId'); + $roleId = (int) ( + $this->route('roleId') + ?? $this->route('id') + ?? $this->input('id') + ?? 0 + ); + $current = $roleId > 0 ? Role::query()->find($roleId) : null; + + $currentName = strtolower(trim((string) ($current?->name ?? ''))); + $currentSlug = strtolower(trim((string) ($current?->slug ?? ''))); + $incomingName = strtolower(trim((string) $this->input('name', ''))); + $incomingSlug = strtolower(trim((string) $this->input('slug', ''))); + + $nameRules = ['sometimes', 'string', 'min:3', 'max:255']; + if ($incomingName !== '' && $incomingName !== $currentName) { + $nameRules[] = Rule::unique('roles', 'name')->ignore($roleId); + } + + $slugRules = ['nullable', 'string', 'max:64']; + if ($incomingSlug !== '' && $incomingSlug !== $currentSlug) { + $slugRules[] = Rule::unique('roles', 'slug')->ignore($roleId); + } return [ - 'name' => ['sometimes', 'string', 'min:3', 'max:255', Rule::unique('roles', 'name')->ignore($roleId)], - 'slug' => ['nullable', 'string', 'max:64', Rule::unique('roles', 'slug')->ignore($roleId)], + 'name' => $nameRules, + 'slug' => $slugRules, 'description' => ['nullable', 'string', 'max:500'], 'dashboard_route' => ['sometimes', 'string', 'min:1', 'max:255', 'regex:/^[a-z0-9_\\/\\-]+$/'], 'priority' => ['sometimes', 'integer', 'min:0', 'max:100000'], diff --git a/app/Http/Resources/Roles/RolePermissionResource.php b/app/Http/Resources/Roles/RolePermissionResource.php index ae51ecf1..83bef099 100644 --- a/app/Http/Resources/Roles/RolePermissionResource.php +++ b/app/Http/Resources/Roles/RolePermissionResource.php @@ -9,14 +9,14 @@ class RolePermissionResource extends JsonResource public function toArray($request): array { return [ - 'permission_id' => (int) ($this['id'] ?? $this['permission_id'] ?? 0), - 'name' => (string) ($this['name'] ?? ''), - 'description' => $this['description'] ?? null, - 'can_create' => (int) ($this['can_create'] ?? 0), - 'can_read' => (int) ($this['can_read'] ?? 0), - 'can_update' => (int) ($this['can_update'] ?? 0), - 'can_delete' => (int) ($this['can_delete'] ?? 0), - 'can_manage' => (int) ($this['can_manage'] ?? 0), + 'permission_id' => (int) ($this->id ?? $this->permission_id ?? $this['id'] ?? $this['permission_id'] ?? 0), + 'name' => (string) ($this->name ?? $this['name'] ?? ''), + 'description' => $this->description ?? $this['description'] ?? null, + 'can_create' => (int) ($this->can_create ?? $this['can_create'] ?? 0), + 'can_read' => (int) ($this->can_read ?? $this['can_read'] ?? 0), + 'can_update' => (int) ($this->can_update ?? $this['can_update'] ?? 0), + 'can_delete' => (int) ($this->can_delete ?? $this['can_delete'] ?? 0), + 'can_manage' => (int) ($this->can_manage ?? $this['can_manage'] ?? 0), ]; } } diff --git a/app/Models/Configuration.php b/app/Models/Configuration.php index e21e8d96..7c827fca 100644 --- a/app/Models/Configuration.php +++ b/app/Models/Configuration.php @@ -9,8 +9,8 @@ class Configuration extends BaseModel { protected $table = 'configuration'; - // CI model didn't use timestamps - public $timestamps = true; + // The legacy table only has id/config_key/config_value. + public $timestamps = false; protected $fillable = [ 'config_key', diff --git a/app/Services/Attendance/StaffAttendanceService.php b/app/Services/Attendance/StaffAttendanceService.php index a1662857..378f4019 100644 --- a/app/Services/Attendance/StaffAttendanceService.php +++ b/app/Services/Attendance/StaffAttendanceService.php @@ -303,6 +303,108 @@ class StaffAttendanceService ]; } + $adminStatusByUser = []; + $adminIds = []; + if (!empty($days)) { + $query = DB::table('staff_attendance') + ->select('user_id', 'date', 'status', 'reason') + ->where('school_year', $schoolYear) + ->whereIn('date', $days); + + if ($semesterNorm !== '') { + $query->where('semester', $semesterNorm); + } + + $rows = $query->get(); + foreach ($rows as $row) { + $uid = (int) ($row->user_id ?? 0); + if ($uid <= 0) { + continue; + } + $adminIds[$uid] = true; + $adminStatusByUser[$uid][(string) $row->date] = [ + 'status' => strtolower((string) $row->status), + 'reason' => $row->reason, + ]; + } + } + + $adminIds = array_keys($adminIds); + $admins = []; + if (!empty($adminIds)) { + $rolesRows = DB::table('user_roles as ur') + ->select('ur.user_id', 'r.name as role_name', 'r.slug as role_slug', 'r.priority') + ->join('roles as r', 'r.id', '=', 'ur.role_id') + ->whereIn('ur.user_id', $adminIds) + ->whereNull('ur.deleted_at') + ->where('r.is_active', 1) + ->get(); + + $rolesByUser = []; + foreach ($rolesRows as $row) { + $rolesByUser[(int) $row->user_id][] = (array) $row; + } + + foreach ($rolesByUser as &$list) { + usort($list, fn ($a, $b) => ((int) ($a['priority'] ?? 100)) <=> ((int) ($b['priority'] ?? 100))); + } + unset($list); + + $excludeSlugs = ['parent', 'guest', 'teacher', 'teacher_assistant', 'ta', 'assistant_teacher']; + + $userRows = DB::table('users') + ->select('id', 'firstname', 'lastname') + ->whereIn('id', $adminIds) + ->get(); + + $namesByUser = []; + foreach ($userRows as $row) { + $namesByUser[(int) $row->id] = trim(((string) ($row->firstname ?? '')) . ' ' . ((string) ($row->lastname ?? ''))); + } + + foreach ($adminIds as $uid) { + $picked = null; + foreach (($rolesByUser[$uid] ?? []) as $role) { + $slug = strtolower((string) ($role['role_slug'] ?? $role['role_name'] ?? '')); + if (!in_array($slug, $excludeSlugs, true)) { + $picked = $role; + break; + } + } + + if (!$picked) { + continue; + } + + $totals = ['p' => 0, 'a' => 0, 'l' => 0]; + $cells = []; + foreach ($days as $date) { + $cell = $adminStatusByUser[$uid][$date] ?? null; + if (!$cell || empty($cell['status'])) { + continue; + } + $cells[$date] = $cell; + if ($cell['status'] === 'present') { + $totals['p']++; + } elseif ($cell['status'] === 'absent') { + $totals['a']++; + } elseif ($cell['status'] === 'late') { + $totals['l']++; + } + } + + $admins[] = [ + 'user_id' => $uid, + 'name' => $namesByUser[$uid] !== '' ? $namesByUser[$uid] : ('User#' . $uid), + 'role' => (string) ($picked['role_name'] ?? 'Admin'), + 'cells' => $cells, + 'totals' => $totals, + ]; + } + + usort($admins, fn ($a, $b) => strcasecmp((string) ($a['name'] ?? ''), (string) ($b['name'] ?? ''))); + } + return [ 'filters' => [ 'semester' => $semester, @@ -313,7 +415,7 @@ class StaffAttendanceService 'sundays' => $days, 'noSchoolDays' => $noSchoolDays, 'sections' => $sections, - 'admins' => [], + 'admins' => $admins, ]; } @@ -570,4 +672,4 @@ class StaffAttendanceService fclose($out); }, $filename); } -} \ No newline at end of file +} diff --git a/app/Services/Badges/BadgeFormDataService.php b/app/Services/Badges/BadgeFormDataService.php index 914746ec..cd76097c 100644 --- a/app/Services/Badges/BadgeFormDataService.php +++ b/app/Services/Badges/BadgeFormDataService.php @@ -6,21 +6,26 @@ class BadgeFormDataService { public function __construct( protected BadgeUserLookupService $lookupService, + protected BadgeStudentLookupService $studentLookupService, protected BadgeTextFormatter $formatter ) { } - public function build(?string $schoolYear, array $selectedUserIds = [], ?string $activeRole = null): array - { + public function build( + ?string $schoolYear, + array $selectedUserIds = [], + array $selectedStudentIds = [], + ?string $activeRole = null + ): array { $selectedUserIds = $this->formatter->normalizeIds($selectedUserIds); + $selectedStudentIds = $this->formatter->normalizeIds($selectedStudentIds); $users = $this->lookupService->fetchStaffList($schoolYear, $selectedUserIds); + $students = $this->studentLookupService->fetchStudentList($schoolYear, $selectedStudentIds); foreach ($users as &$u) { - if (!isset($u['user_id'])) { - if (isset($u['id'])) { - $u['user_id'] = (int) $u['id']; - } + if (!isset($u['user_id']) && isset($u['id'])) { + $u['user_id'] = (int) $u['id']; } $rolesStr = $u['roles'] ?? ''; @@ -38,14 +43,18 @@ class BadgeFormDataService $u['role_name_raw'] = $u['role_name']; $u['role_name'] = $this->formatter->formatRole((string) $u['role_name']); - $u['class_section_id'] = $u['class_section_id'] ?? null; $u['class_section_name'] = $u['class_section_name'] ?? null; + $u['entity_type'] = 'user'; + $u['row_id'] = 'user:' . (int) ($u['user_id'] ?? 0); + $u['role_group'] = $this->detectRoleGroup( + strtolower((string) ($u['roles_raw'] ?? ($u['role_name_raw'] ?? ''))) + ); } unset($u); foreach ($users as &$u) { - $rolesDetect = strtolower($u['roles_raw'] ?? ($u['role_name_raw'] ?? '')); + $rolesDetect = strtolower((string) ($u['roles_raw'] ?? ($u['role_name_raw'] ?? ''))); $isTeacherish = str_contains($rolesDetect, 'teacher') || preg_match('/\bta\b/', $rolesDetect); if ($isTeacherish && !empty($u['user_id'])) { @@ -58,24 +67,66 @@ class BadgeFormDataService } unset($u); + foreach ($students as &$student) { + $student['entity_type'] = 'student'; + $student['row_id'] = 'student:' . (int) ($student['student_id'] ?? 0); + $student['role_group'] = 'student'; + $student['class_section_id'] = null; + + if (empty($student['class_section_name'])) { + $student['class_section_name'] = $this->formatter->formatClass( + (string) ($student['registration_grade'] ?? '') + ); + } + } + unset($student); + + $rows = array_merge($users, $students); + usort($rows, static function (array $a, array $b): int { + return strcasecmp( + trim((string) ($a['lastname'] ?? '')) . ' ' . trim((string) ($a['firstname'] ?? '')), + trim((string) ($b['lastname'] ?? '')) . ' ' . trim((string) ($b['firstname'] ?? '')) + ); + }); + $rolesTabs = [ + 'all' => 'All', 'teacher' => 'Teachers', 'ta' => 'Teacher Assistants', 'admin' => 'Admins', 'staff' => 'Staff', + 'student' => 'Students', ]; $activeRole = array_key_exists((string) $activeRole, $rolesTabs) ? (string) $activeRole - : 'teacher'; + : 'all'; return [ - 'users' => $users, - 'schoolYears' => $this->lookupService->getAvailableSchoolYears(), - 'selectedYear' => $schoolYear, - 'selectedUserIds' => $selectedUserIds, - 'rolesTabs' => $rolesTabs, - 'active_role' => $activeRole, + 'users' => $rows, + 'schoolYears' => $this->lookupService->getAvailableSchoolYears(), + 'selectedYear' => $schoolYear, + 'selectedUserIds' => $selectedUserIds, + 'selectedStudentIds' => $selectedStudentIds, + 'rolesTabs' => $rolesTabs, + 'active_role' => $activeRole, ]; } -} \ No newline at end of file + + protected function detectRoleGroup(string $rolesDetect): string + { + if (str_contains($rolesDetect, 'assistant') || preg_match('/\bta\b/', $rolesDetect)) { + return 'ta'; + } + + if (str_contains($rolesDetect, 'teacher')) { + return 'teacher'; + } + + if (str_contains($rolesDetect, 'admin')) { + return 'admin'; + } + + return 'staff'; + } +} diff --git a/app/Services/Badges/BadgePdfService.php b/app/Services/Badges/BadgePdfService.php index 15498267..17f71b98 100644 --- a/app/Services/Badges/BadgePdfService.php +++ b/app/Services/Badges/BadgePdfService.php @@ -7,6 +7,8 @@ namespace App\Services\Badges; use chillerlan\QRCode\Output\QRGdImagePNG; use chillerlan\QRCode\QRCode; use chillerlan\QRCode\QROptions; +use Dompdf\Dompdf; +use Dompdf\Options; use Illuminate\Http\Response; use Throwable; @@ -47,6 +49,109 @@ class BadgePdfService array $classesMap = [], ?int $actorId = null ): Response { + $studentIds = $this->formatter->normalizeIds($studentIds); + $userIds = $this->formatter->normalizeIds($userIds); + + $schoolName = (string) config('badges.school_name', 'Al Rahma Sunday School'); + $motto = (string) config('badges.motto', ''); + $studentRoleLabel = (string) config('badges.role_label', 'Student'); + $footerBlock = $this->footerBlock($schoolName); + $logoPath = $this->logoFilePath(); + + $rows = []; + + $students = $this->studentLookupService->fetchForBadges($studentIds, $schoolYear); + foreach ($students as $row) { + try { + $rows[] = array_merge($row, [ + '_badge_kind' => 'student', + 'role_subline' => $studentRoleLabel, + 'show_grade' => true, + 'grade_label' => 'Grade', + '_qr_base64' => base64_encode($this->renderQrPng((string) $row['school_id'])), + ]); + } catch (Throwable) { + continue; + } + } + + foreach ($userIds as $uid) { + $staffRow = $this->buildStaffBadgeRow((int) $uid, $schoolYear, $rolesMap, $classesMap); + if ($staffRow === null) { + continue; + } + + try { + $qrPayload = (string) ($staffRow['user_id_for_qr'] ?? $staffRow['user_id'] ?? ''); + if ($qrPayload === '' || !preg_match('/^[A-Za-z0-9_-]+$/', $qrPayload)) { + $qrPayload = (string) (int) ($staffRow['user_id'] ?? 0); + } + + $rows[] = array_merge($staffRow, [ + '_badge_kind' => 'staff', + '_qr_base64' => base64_encode($this->renderQrPng($qrPayload)), + ]); + } catch (Throwable) { + continue; + } + } + + // Use the fixed-coordinate FPDF renderer for badges so the output + // always stays at a strict 4x2 layout (8 badges per page). + $binary = $this->renderWithFpdf( + $rows, + $schoolName, + $motto, + $studentRoleLabel, + $footerBlock, + $logoPath + ); + + $logIds = array_values(array_unique(array_merge($studentIds, $userIds))); + $this->printLogService->logSafely( + userIds: $logIds, + actorId: $actorId, + schoolYear: $schoolYear, + rolesMap: $rolesMap, + classesMap: $classesMap, + copies: 1 + ); + + return response((string) $binary, 200, [ + 'Content-Type' => 'application/pdf', + 'Content-Disposition' => 'inline; filename="Badges.pdf"', + ]); + } + + protected function renderWithDompdf( + array $rows, + string $schoolName, + string $motto, + string $footerBlock + ): string { + $html = $this->buildHtmlDocument($rows, $schoolName, $motto, $footerBlock); + + $options = new Options(); + $options->set('isHtml5ParserEnabled', true); + $options->set('isRemoteEnabled', true); + $options->set('defaultFont', 'DejaVu Sans'); + + $dompdf = new Dompdf($options); + $dompdf->loadHtml($html, 'UTF-8'); + $dompdf->setPaper('A4', 'landscape'); + $dompdf->render(); + + return $dompdf->output(); + } + + protected function renderWithFpdf( + array $rows, + string $schoolName, + string $motto, + string $studentRoleLabel, + string $footerBlock, + ?string $logoPath + ): string { $this->tempQrFiles = []; try { @@ -54,67 +159,10 @@ class BadgePdfService require_once base_path('app/ThirdParty/fpdf/fpdf.php'); } - $studentIds = $this->formatter->normalizeIds($studentIds); - $userIds = $this->formatter->normalizeIds($userIds); - - $schoolName = (string) config('badges.school_name', 'Al Rahma Sunday School'); - $motto = (string) config('badges.motto', ''); - $studentRoleLabel = (string) config('badges.role_label', 'Student'); - $footerBlock = $this->footerBlock($schoolName); - $logoPath = $this->logoFilePath(); - - $rowsWithQr = []; - - $students = $this->studentLookupService->fetchForBadges($studentIds, $schoolYear); - foreach ($students as $row) { - try { - $png = $this->renderQrPng((string) $row['school_id']); - $tmpPath = $this->writeTempQrPng($png); - if ($tmpPath === null) { - continue; - } - - $rowsWithQr[] = array_merge($row, [ - '_badge_kind' => 'student', - 'role_subline' => $studentRoleLabel, - '_qr_tmp' => $tmpPath, - ]); - } catch (Throwable) { - continue; - } - } - - foreach ($userIds as $uid) { - $staffRow = $this->buildStaffBadgeRow((int) $uid, $schoolYear, $rolesMap, $classesMap); - if ($staffRow === null) { - continue; - } - - try { - $qrPayload = (string) ($staffRow['user_id_for_qr'] ?? $staffRow['user_id'] ?? ''); - if ($qrPayload === '' || !preg_match('/^[A-Za-z0-9_-]+$/', $qrPayload)) { - $qrPayload = (string) (int) ($staffRow['user_id'] ?? 0); - } - - $png = $this->renderQrPng($qrPayload); - $tmpPath = $this->writeTempQrPng($png); - if ($tmpPath === null) { - continue; - } - - $rowsWithQr[] = array_merge($staffRow, [ - '_badge_kind' => 'staff', - '_qr_tmp' => $tmpPath, - ]); - } catch (Throwable) { - continue; - } - } - $pdf = new \FPDF('L', 'in', 'Letter'); $pdf->SetAutoPageBreak(false); - $pages = array_chunk($rowsWithQr, 8); + $pages = array_chunk($rows, 8); if ($pages === []) { $pdf->AddPage('L', 'Letter'); @@ -125,7 +173,7 @@ class BadgePdfService $pdf->GetPageWidth() - 2 * self::PAGE_MARGIN_IN, 0.3, $this->formatter->toPdf( - 'No valid badges: check user/student ids, roles, or (for students) school id for QR.' + 'No valid badges: check user/student ids, roles, or school ids for QR.' ), 0, 'L' @@ -139,13 +187,24 @@ class BadgePdfService for ($gridCol = 0; $gridCol < 4; $gridCol++) { $idx = ($gridRow * 4) + $gridCol; $row = $slots[$idx]; - if (!is_array($row) || empty($row['_qr_tmp'])) { + if (!is_array($row)) { continue; } + $qrBase64 = trim((string) ($row['_qr_base64'] ?? '')); + if ($qrBase64 === '') { + continue; + } + + $tmpPath = $this->writeTempQrPng(base64_decode($qrBase64, true) ?: ''); + if ($tmpPath === null) { + continue; + } + + $row['_qr_tmp'] = $tmpPath; + $cellX = self::PAGE_MARGIN_IN + $gridCol * self::CELL_WIDTH_IN; $cellY = self::PAGE_MARGIN_IN + $gridRow * self::CELL_HEIGHT_IN; - $badgeX = $cellX + (self::CELL_WIDTH_IN - self::BADGE_WIDTH_IN) / 2; $badgeY = $cellY + (self::CELL_HEIGHT_IN - self::BADGE_HEIGHT_IN) / 2; @@ -167,22 +226,7 @@ class BadgePdfService } } - $binary = $pdf->Output('S'); - - $logIds = array_values(array_unique(array_merge($studentIds, $userIds))); - $this->printLogService->logSafely( - userIds: $logIds, - actorId: $actorId, - schoolYear: $schoolYear, - rolesMap: $rolesMap, - classesMap: $classesMap, - copies: 1 - ); - - return response((string) $binary, 200, [ - 'Content-Type' => 'application/pdf', - 'Content-Disposition' => 'inline; filename="Badges.pdf"', - ]); + return $pdf->Output('S'); } finally { foreach ($this->tempQrFiles as $path) { if (is_string($path) && $path !== '' && is_file($path)) { @@ -230,6 +274,7 @@ class BadgePdfService ($info['roles'] ?? '') !== '' ? (string) $info['roles'] : $roleResolved )); $isTeacherish = str_contains($detectSrc, 'teacher') || preg_match('/\bta\b/', $detectSrc); + $isAdmin = str_contains($detectSrc, 'admin'); if ($isTeacherish && $class !== '') { if (strtolower($class) === 'youth') { @@ -249,20 +294,544 @@ class BadgePdfService $gradeCol = $class !== '' ? $class : '—'; $year = $this->formatter->norm((string) ($info['school_year'] ?? ($schoolYear ?? ''))); + $schoolId = trim((string) ($info['school_id'] ?? '')); + + if ($schoolId === '' || !preg_match('/^[A-Za-z0-9_-]+$/', $schoolId)) { + return null; + } return [ 'user_id' => $resolvedId, - 'user_id_for_qr' => (string) $resolvedId, + 'user_id_for_qr' => $schoolId, 'fullname' => $info['name'] ?? 'STAFF', 'grade' => $gradeCol, 'academic_year' => $year !== '' ? $year : '—', - 'school_id' => (string) $resolvedId, + 'school_id' => $schoolId, 'role_subline' => $display, + 'show_grade' => $isTeacherish && !$isAdmin && $gradeCol !== '—', + 'grade_label' => 'Class / Grade', ]; } + protected function buildHtmlDocument( + array $rows, + string $schoolName, + string $motto, + string $footerBlock + ): string { + $logoDataUri = $this->logoDataUri(); + $badgesHtml = ''; + $pages = array_chunk($rows, 8); + + if ($pages === []) { + $pages = [[]]; + } + + foreach ($pages as $pageRows) { + $badgesHtml .= '
'; + + for ($rowIndex = 0; $rowIndex < 2; $rowIndex++) { + $badgesHtml .= ''; + + for ($colIndex = 0; $colIndex < 4; $colIndex++) { + $slot = ($rowIndex * 4) + $colIndex; + $badgesHtml .= ''; + } + + $badgesHtml .= ''; + } + + $badgesHtml .= '
'; + + if (isset($pageRows[$slot]) && is_array($pageRows[$slot])) { + $badgesHtml .= $this->buildBadgeHtml($pageRows[$slot], $schoolName, $motto, $footerBlock, $logoDataUri); + } + + $badgesHtml .= '
'; + } + + return 'Badges PDF' + . $badgesHtml + . ''; + } + + protected function buildBadgeHtml( + array $row, + string $schoolName, + string $motto, + string $footerBlock, + ?string $logoDataUri + ): string + { + $kind = (string) ($row['_badge_kind'] ?? 'student'); + $idLabel = $kind === 'staff' ? 'User ID' : 'School ID'; + $title = $this->escapeHtml((string) ($row['fullname'] ?? '')); + $role = $this->escapeHtml((string) ($row['role_subline'] ?? 'Student')); + $gradeLabel = $this->escapeHtml((string) ($row['grade_label'] ?? ($kind === 'staff' ? 'Class / Assignment' : 'Grade'))); + $grade = $this->escapeHtml((string) ($row['grade'] ?? '—')); + $year = $this->escapeHtml((string) ($row['academic_year'] ?? '—')); + $schoolId = $this->escapeHtml((string) ($row['school_id'] ?? '—')); + $qrBase64 = trim((string) ($row['_qr_base64'] ?? '')); + $footer = nl2br($this->escapeHtml($footerBlock)); + $barcodeDigits = preg_replace('/[^A-Za-z0-9]/', '', (string) ($row['school_id'] ?? '')); + $barcodeDigits = $barcodeDigits !== '' ? str_repeat($barcodeDigits, 4) : '12345678901234567890'; + $showGrade = (bool) ($row['show_grade'] ?? ($kind === 'student')); + + $infoRows = ''; + if ($showGrade) { + $infoRows .= ' +
+ G + + ' . $gradeLabel . ' + ' . $grade . ' + +
'; + } + + $infoRows .= ' +
+ Y + + Academic Year + ' . $year . ' + +
+ +
+ ID + + ' . $this->escapeHtml($idLabel) . ' + ' . $schoolId . ' + +
'; + + return ' +
+
+
+
' + . ($logoDataUri !== null + ? 'School Logo' + : 'AS') . + '
+
+
' . $this->escapeHtml($schoolName) . '
+
High School
+
' . $this->escapeHtml($motto) . '
+
+
+
+
+
+ +
+
' . mb_strtoupper($title, 'UTF-8') . '
+
+ + + +
+
' . mb_strtoupper($role, 'UTF-8') . '
+ + + + + + + +
+ ' . $infoRows . ' + +
' + . ($qrBase64 !== '' + ? 'QR Code' + : '') . + '
+
Scan to verify
+
+ +
+
' . $this->escapeHtml($barcodeDigits) . '
+
+ + +
+ '; + } + + protected function badgeCss(): string + { + return <<<'CSS' +@page { + size: A4 landscape; + margin: 0.18in; +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: DejaVu Sans, Arial, Helvetica, sans-serif; + color: #111; +} + +.page { + width: 100%; + page-break-after: always; +} + +.page:last-child { + page-break-after: auto; +} + +.grid { + width: 100%; + border-collapse: collapse; + table-layout: fixed; +} + +.grid td { + width: 25%; + vertical-align: top; + padding: 0.03in; + height: 3.32in; +} + +.badge { + width: 2.12in; + height: 3.18in; + border: 1.2px solid #1f6b3a; + border-radius: 0.18in; + overflow: hidden; + position: relative; + margin: 0 auto; + background: #ffffff; + box-shadow: 0 0.03in 0.10in rgba(0, 0, 0, 0.15); +} + +.header-wrap { + position: relative; + height: 0.92in; +} + +.header { + background: #1f6b3a; + color: #ffffff; + padding: 0.10in 0.10in 0.06in; + height: 0.64in; + border-radius: 0.18in 0.18in 0 0; +} + +.header-accent { + position: absolute; + left: 0.28in; + right: 0.28in; + top: 0.64in; + height: 0.02in; + background: #9fd6b0; +} + +.header-tail { + width: 0; + height: 0; + margin: 0 auto; + border-left: 0.92in solid transparent; + border-right: 0.92in solid transparent; + border-top: 0.22in solid #1f6b3a; +} + +.header-mark { + float: left; + width: 0.40in; + height: 0.40in; + border: 2px solid #ffffff; + border-radius: 50%; + text-align: center; + overflow: hidden; + background: rgba(255,255,255,0.08); +} + +.header-mark img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.header-mark span { + display: block; + line-height: 0.36in; + font-size: 12pt; + font-weight: 800; +} + +.header-copy { + margin-left: 0.48in; + text-align: center; +} + +.school-name { + font-size: 8.8pt; + font-weight: 800; + line-height: 1.1; + margin: 0; + text-transform: uppercase; + letter-spacing: 0.8px; +} + +.sub-school { + font-size: 5.8pt; + font-weight: 800; + text-transform: uppercase; + letter-spacing: 2px; + margin-top: 0.02in; +} + +.motto { + font-size: 4.8pt; + font-weight: 700; + margin-top: 0.03in; + letter-spacing: 0.4px; + min-height: 0.08in; + text-transform: uppercase; + color: #f4d34c; +} + +.body { + padding: 0.00in 0.10in 0.40in; +} + +.student-name { + text-align: center; + color: #15512c; + font-size: 10.6pt; + font-weight: 800; + line-height: 1.05; + text-transform: uppercase; + margin: 0.08in 0 0.03in; +} + +.name-divider { + text-align: center; + margin-bottom: 0.03in; +} + +.divider-line { + display: inline-block; + width: 0.60in; + border-top: 1px solid #8fc7a0; + vertical-align: middle; +} + +.divider-dot { + display: inline-block; + width: 0.05in; + height: 0.05in; + margin: 0 0.04in; + background: #1f6b3a; + transform: rotate(45deg); + vertical-align: middle; +} + +.role { + text-align: center; + color: #1f6b3a; + font-size: 6.2pt; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 1.1px; + margin-bottom: 0.08in; +} + +.content { + width: 100%; + border-collapse: collapse; + table-layout: fixed; +} + +.content td { + vertical-align: top; +} + +.info { + width: 58%; + padding-right: 0.06in; + border-right: 1px solid #d6d6d6; +} + +.info-row { + margin-bottom: 0.07in; + padding-bottom: 0.04in; + border-bottom: 1px solid #d9d9d9; +} + +.info-row:last-child { + border-bottom: 0; + margin-bottom: 0; + padding-bottom: 0; +} + +.icon-badge { + display: inline-block; + width: 0.22in; + height: 0.22in; + line-height: 0.22in; + margin-right: 0.04in; + border-radius: 50%; + background: #1f6b3a; + color: #ffffff; + text-align: center; + font-size: 5pt; + font-weight: 800; + vertical-align: top; +} + +.info-copy { + display: inline-block; + width: 0.92in; +} + +.label { + display: block; + font-size: 4.8pt; + font-weight: 700; + text-transform: uppercase; + color: #333333; + margin-bottom: 0.01in; +} + +.value { + display: block; + font-size: 7.6pt; + font-weight: 800; + color: #1f6b3a; + word-wrap: break-word; +} + +.qr-col { + width: 42%; + text-align: center; + padding-left: 0.06in; +} + +.qr-box { + display: inline-block; + border: 1px solid #1f6b3a; + border-radius: 0.08in; + padding: 0.04in; + background: #ffffff; + min-width: 0.92in; + min-height: 0.92in; +} + +.qr-box img { + width: 0.84in; + height: 0.84in; + display: block; +} + +.scan { + margin-top: 0.04in; + font-size: 5.5pt; + font-weight: 700; + text-transform: uppercase; + color: #1f6b3a; +} + +.scan-pill { + margin-top: 0.03in; + display: inline-block; + background: #1f6b3a; + color: #ffffff; + border-radius: 0.06in; + font-size: 5pt; + font-weight: 700; + text-transform: uppercase; + padding: 0.025in 0.08in; +} + +.barcode-rule { + margin-top: 0.07in; + border-top: 1px solid #8fc7a0; +} + +.barcode { + margin: 0.04in auto 0; + text-align: center; + font-family: "Courier New", monospace; + font-size: 9pt; + letter-spacing: 0.2px; + color: #111111; +} + +.footer { + position: absolute; + left: 0; + right: 0; + bottom: 0; + background: #1f6b3a; + color: #ffffff; + padding: 0.06in 0.06in; + font-size: 4.8pt; + font-weight: 700; + line-height: 1.2; +} + +.footer-mark { + display: inline-block; + width: 0.18in; + height: 0.18in; + line-height: 0.18in; + margin-right: 0.05in; + border: 1.5px solid #ffffff; + border-radius: 50%; + text-align: center; + vertical-align: top; + font-size: 6pt; + overflow: hidden; + background: rgba(255,255,255,0.08); +} + +.footer-mark img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.footer-mark span { + display: block; +} + +.footer-copy { + display: inline-block; + width: 1.64in; + vertical-align: top; +} +CSS; + } + + protected function escapeHtml(string $value): string + { + return htmlspecialchars($value, ENT_QUOTES, 'UTF-8'); + } + protected function writeTempQrPng(string $png): ?string { + if ($png === '') { + return null; + } + $tmpPath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'badge_qr_' . bin2hex(random_bytes(8)) . '.png'; if (@file_put_contents($tmpPath, $png) === false) { return null; @@ -273,9 +842,6 @@ class BadgePdfService return $tmpPath; } - /** - * @param array $student - */ protected function drawBadge( \FPDF $pdf, array $student, @@ -291,9 +857,11 @@ class BadgePdfService ): void { $kind = (string) ($student['_badge_kind'] ?? 'student'); $idLabel = $kind === 'staff' ? 'USER ID' : 'SCHOOL ID'; + $showGrade = (bool) ($student['show_grade'] ?? ($kind === 'student')); + $gradeLabel = (string) ($student['grade_label'] ?? ($kind === 'staff' ? 'CLASS / ASSIGNMENT' : 'GRADE')); - $blue = [11, 58, 130]; - $blueLight = [27, 76, 160]; + $blue = [31, 107, 58]; + $blueLight = [53, 140, 81]; $qrPath = (string) ($student['_qr_tmp'] ?? ''); $fullName = $this->formatter->toPdf((string) ($student['fullname'] ?? '')); @@ -315,17 +883,9 @@ class BadgePdfService $pdf->SetFillColor($blue[0], $blue[1], $blue[2]); $pdf->Rect($x, $y, $w, $headerH, 'F'); - $logoSize = 0.12; - if ($logoPath !== null && is_readable($logoPath)) { - try { - $pdf->Image($logoPath, $x + $w / 2 - $logoSize / 2, $y + 0.035, $logoSize, $logoSize); - } catch (Throwable) { - } - } - $pdf->SetTextColor(255, 255, 255); $pdf->SetFont('Helvetica', 'B', 8.5); - $pdf->SetXY($x + 0.06, $y + 0.035 + $logoSize + 0.01); + $pdf->SetXY($x + 0.06, $y + 0.12); $pdf->Cell($w - 0.12, 0.1, $schoolNamePdf, 0, 0, 'C'); if ($mottoPdf !== '') { @@ -335,7 +895,7 @@ class BadgePdfService } $bodyTop = $y + $headerH + 0.06; - $pdf->SetTextColor(11, 47, 115); + $pdf->SetTextColor(21, 81, 44); $pdf->SetFont('Helvetica', 'B', 9.5); $pdf->SetXY($x + 0.07, $bodyTop); $pdf->Cell($w - 0.14, 0.11, strtoupper($fullName), 0, 1, 'C'); @@ -352,38 +912,30 @@ class BadgePdfService $infoLeft = $x + 0.08; $infoW = $w * 0.52; $labelY = $ruleY + 0.05; + $infoRows = []; + if ($showGrade) { + $infoRows[] = [$gradeLabel, $grade]; + } + $infoRows[] = ['ACADEMIC YEAR', $year]; + $infoRows[] = [$idLabel, $schoolId]; - $gradeLabel = $kind === 'staff' ? 'CLASS / ASSIGNMENT' : 'GRADE'; + foreach ($infoRows as $index => [$label, $value]) { + $pdf->SetTextColor(51, 51, 51); + $pdf->SetFont('Helvetica', 'B', 5); + $pdf->SetXY($infoLeft, $labelY); + $pdf->Cell($infoW, 0.05, $label, 0, 1, 'L'); - $pdf->SetTextColor(51, 51, 51); - $pdf->SetFont('Helvetica', 'B', 5); - $pdf->SetXY($infoLeft, $labelY); - $pdf->Cell($infoW, 0.05, $gradeLabel, 0, 1, 'L'); - - $pdf->SetTextColor($blueLight[0], $blueLight[1], $blueLight[2]); - $pdf->SetFont('Helvetica', 'B', 7.5); - $pdf->SetX($infoLeft); - $pdf->Cell($infoW, 0.08, $grade, 0, 1, 'L'); - - $pdf->SetTextColor(51, 51, 51); - $pdf->SetFont('Helvetica', 'B', 5); - $pdf->SetX($infoLeft); - $pdf->Cell($infoW, 0.05, 'ACADEMIC YEAR', 0, 1, 'L'); - - $pdf->SetTextColor($blueLight[0], $blueLight[1], $blueLight[2]); - $pdf->SetFont('Helvetica', 'B', 7.5); - $pdf->SetX($infoLeft); - $pdf->Cell($infoW, 0.08, $year, 0, 1, 'L'); - - $pdf->SetTextColor(51, 51, 51); - $pdf->SetFont('Helvetica', 'B', 5); - $pdf->SetX($infoLeft); - $pdf->Cell($infoW, 0.05, $idLabel, 0, 1, 'L'); - - $pdf->SetTextColor($blueLight[0], $blueLight[1], $blueLight[2]); - $pdf->SetFont('Helvetica', 'B', 7.5); - $pdf->SetX($infoLeft); - $pdf->MultiCell($infoW, 0.09, $schoolId, 0, 'L'); + $pdf->SetTextColor($blueLight[0], $blueLight[1], $blueLight[2]); + $pdf->SetFont('Helvetica', 'B', 7.5); + $pdf->SetX($infoLeft); + if ($index === array_key_last($infoRows)) { + $pdf->MultiCell($infoW, 0.09, $value, 0, 'L'); + $labelY = $pdf->GetY() + 0.015; + } else { + $pdf->Cell($infoW, 0.08, $value, 0, 1, 'L'); + $labelY = $pdf->GetY() + 0.01; + } + } $qrSize = 0.38; $qrX = $x + $w - 0.08 - $qrSize; @@ -407,9 +959,9 @@ class BadgePdfService $pdf->SetFillColor($blue[0], $blue[1], $blue[2]); $pdf->Rect($x, $fy, $w, $footerH, 'F'); - $smallLogo = 0.1; if ($logoPath !== null && is_readable($logoPath)) { try { + $smallLogo = 0.1; $pdf->Image($logoPath, $x + $w / 2 - $smallLogo / 2, $fy + 0.03, $smallLogo, $smallLogo); } catch (Throwable) { } @@ -418,13 +970,12 @@ class BadgePdfService $pdf->SetTextColor(255, 255, 255); $pdf->SetFont('Helvetica', 'B', 4.5); $lines = preg_split('/\r\n|\r|\n/', $footerBlock) ?: [$footerBlock]; - $lineY = $fy + 0.03 + $smallLogo + 0.015; + $lineY = $fy + 0.15; foreach ($lines as $line) { $line = trim($line); if ($line === '') { continue; } - $pdf->SetXY($x + 0.04, $lineY); $pdf->Cell($w - 0.08, 0.055, $this->formatter->toPdf($line), 0, 1, 'C'); $lineY += 0.055; @@ -454,6 +1005,29 @@ class BadgePdfService ]); } + protected function logoDataUri(): ?string + { + $path = $this->logoFilePath(); + if ($path === null || !is_readable($path)) { + return null; + } + + $ext = strtolower(pathinfo($path, PATHINFO_EXTENSION)); + $mime = match ($ext) { + 'jpg', 'jpeg' => 'image/jpeg', + 'gif' => 'image/gif', + 'webp' => 'image/webp', + default => 'image/png', + }; + + $bytes = @file_get_contents($path); + if ($bytes === false || $bytes === '') { + return null; + } + + return 'data:' . $mime . ';base64,' . base64_encode($bytes); + } + protected function footerBlock(string $schoolName): string { $address = trim((string) config('badges.footer_address', '')); diff --git a/app/Services/Badges/BadgeStudentLookupService.php b/app/Services/Badges/BadgeStudentLookupService.php index cebbcc54..ea519b0a 100644 --- a/app/Services/Badges/BadgeStudentLookupService.php +++ b/app/Services/Badges/BadgeStudentLookupService.php @@ -6,6 +6,7 @@ namespace App\Services\Badges; use App\Models\Student; use App\Models\StudentClass; +use Illuminate\Support\Facades\DB; class BadgeStudentLookupService { @@ -14,6 +15,85 @@ class BadgeStudentLookupService ) { } + /** + * Active student roster for the badge picker. + * + * @param int[] $selectedStudentIds + * @return array> + */ + public function fetchStudentList(?string $schoolYear, array $selectedStudentIds = []): array + { + $selectedStudentIds = $this->formatter->normalizeIds($selectedStudentIds); + + $query = DB::table('students') + ->leftJoin('student_class as sc', function ($join) use ($schoolYear) { + $join->on('sc.student_id', '=', 'students.id'); + + if (!empty($schoolYear)) { + $join->where('sc.school_year', '=', $schoolYear); + } + }) + ->leftJoin('classSection as cs', 'cs.class_section_id', '=', 'sc.class_section_id') + ->select([ + 'students.id as student_id', + 'students.firstname', + 'students.lastname', + 'students.registration_grade', + 'students.school_id', + 'students.school_year', + DB::raw("GROUP_CONCAT(DISTINCT cs.class_section_name ORDER BY cs.class_section_name SEPARATOR ', ') as class_section_name"), + ]) + ->where('students.is_active', 1) + ->groupBy( + 'students.id', + 'students.firstname', + 'students.lastname', + 'students.registration_grade', + 'students.school_id', + 'students.school_year' + ) + ->orderBy('students.lastname') + ->orderBy('students.firstname'); + + if (!empty($selectedStudentIds)) { + $query->whereIn('students.id', $selectedStudentIds); + } elseif (!empty($schoolYear)) { + $query->where(function ($q) use ($schoolYear) { + $q->where('students.school_year', $schoolYear) + ->orWhereNotNull('sc.student_id'); + }); + } + + $rows = array_map(static fn ($row) => (array) $row, $query->get()->all()); + + $out = []; + foreach ($rows as $row) { + $studentId = (int) ($row['student_id'] ?? 0); + if ($studentId <= 0) { + continue; + } + + $schoolId = trim((string) ($row['school_id'] ?? '')); + if ($schoolId === '' || !preg_match('/^[A-Za-z0-9_-]+$/', $schoolId)) { + continue; + } + + $out[] = [ + 'student_id' => $studentId, + 'firstname' => (string) ($row['firstname'] ?? ''), + 'lastname' => (string) ($row['lastname'] ?? ''), + 'role_name' => 'Student', + 'roles' => 'Student', + 'registration_grade' => (string) ($row['registration_grade'] ?? ''), + 'class_section_name' => $this->formatter->norm((string) ($row['class_section_name'] ?? '')), + 'school_id' => $schoolId, + 'school_year' => (string) ($row['school_year'] ?? $schoolYear ?? ''), + ]; + } + + return $out; + } + /** * Load students for badge printing: valid school_id (QR payload), ordered by name. * diff --git a/app/Services/Badges/BadgeUserLookupService.php b/app/Services/Badges/BadgeUserLookupService.php index 297e5487..f9ff53e6 100644 --- a/app/Services/Badges/BadgeUserLookupService.php +++ b/app/Services/Badges/BadgeUserLookupService.php @@ -29,11 +29,30 @@ class BadgeUserLookupService $query->whereIn('users.id', $selectedUserIds); } - if (!empty($schoolYear) && Schema::hasColumn('user_roles', 'school_year')) { - $query->where('user_roles.school_year', $schoolYear); + if (Schema::hasColumn('user_roles', 'deleted_at')) { + $query->whereNull('user_roles.deleted_at'); } - return array_map(static fn ($row) => (array) $row, $query->get()->all()); + $rows = array_map(static fn ($row) => (array) $row, $query->get()->all()); + + return array_values(array_filter($rows, static function (array $row): bool { + $roles = strtolower(trim((string) ($row['roles'] ?? ''))); + + if ($roles === '') { + return false; + } + + $parts = array_values(array_filter(array_map('trim', explode(',', $roles)))); + foreach ($parts as $part) { + if (in_array($part, ['parent', 'student'], true)) { + continue; + } + + return true; + } + + return false; + })); } public function getLatestClassForUser(int $userId, ?string $schoolYear = null): ?array @@ -69,7 +88,7 @@ class BadgeUserLookupService public function getUserInfoById(int $id, ?string $schoolYear = null): ?array { $u = DB::table('users') - ->select(['id as user_id', 'firstname', 'lastname']) + ->select(['id as user_id', 'firstname', 'lastname', 'school_id', 'account_id']) ->where('id', $id) ->first(); @@ -79,6 +98,10 @@ class BadgeUserLookupService $userId = (int) $u->user_id; $fullname = trim(($u->firstname ?? '') . ' ' . ($u->lastname ?? '')); + $schoolId = trim((string) ($u->school_id ?? '')); + if ($schoolId === '') { + $schoolId = trim((string) ($u->account_id ?? '')); + } $rolesRows = DB::table('user_roles as ur') ->join('roles as r', 'r.id', '=', 'ur.role_id') @@ -155,7 +178,7 @@ class BadgeUserLookupService 'class_section_name' => $className, 'job_title' => $jobTitle, 'school_name' => 'Al Rahma Sunday School', - 'school_id' => $userId, + 'school_id' => $schoolId, 'school_logo' => $schoolLogo, 'isgl_logo' => $isglLogo, 'school_year' => $assignment->school_year ?? $schoolYear, @@ -208,4 +231,4 @@ class BadgeUserLookupService return $row->class_section_name ?? null; } -} \ No newline at end of file +} diff --git a/composer.json b/composer.json index ff7b9110..e4410a6e 100644 --- a/composer.json +++ b/composer.json @@ -7,12 +7,13 @@ "license": "MIT", "require": { "php": "^8.2", + "chillerlan/php-qrcode": "^5.0", + "dompdf/dompdf": "^3.1", "laravel/framework": "^12.0", "laravel/sanctum": "^4.3", "laravel/tinker": "^2.10.1", "php-open-source-saver/jwt-auth": "^2.8", - "setasign/fpdf": "*", - "chillerlan/php-qrcode": "^5.0" + "setasign/fpdf": "*" }, "require-dev": { "fakerphp/faker": "^1.23", diff --git a/composer.lock b/composer.lock index d1106d97..dc398f12 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "b2966364d6a0f8b7a445116ac851814b", + "content-hash": "661306f5e5cfc18e168ca8a287b7097a", "packages": [ { "name": "brick/math", @@ -539,6 +539,161 @@ ], "time": "2024-02-05T11:56:58+00:00" }, + { + "name": "dompdf/dompdf", + "version": "v3.1.5", + "source": { + "type": "git", + "url": "https://github.com/dompdf/dompdf.git", + "reference": "f11ead23a8a76d0ff9bbc6c7c8fd7e05ca328496" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/f11ead23a8a76d0ff9bbc6c7c8fd7e05ca328496", + "reference": "f11ead23a8a76d0ff9bbc6c7c8fd7e05ca328496", + "shasum": "" + }, + "require": { + "dompdf/php-font-lib": "^1.0.0", + "dompdf/php-svg-lib": "^1.0.0", + "ext-dom": "*", + "ext-mbstring": "*", + "masterminds/html5": "^2.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "ext-gd": "*", + "ext-json": "*", + "ext-zip": "*", + "mockery/mockery": "^1.3", + "phpunit/phpunit": "^7.5 || ^8 || ^9 || ^10 || ^11", + "squizlabs/php_codesniffer": "^3.5", + "symfony/process": "^4.4 || ^5.4 || ^6.2 || ^7.0" + }, + "suggest": { + "ext-gd": "Needed to process images", + "ext-gmagick": "Improves image processing performance", + "ext-imagick": "Improves image processing performance", + "ext-zlib": "Needed for pdf stream compression" + }, + "type": "library", + "autoload": { + "psr-4": { + "Dompdf\\": "src/" + }, + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "The Dompdf Community", + "homepage": "https://github.com/dompdf/dompdf/blob/master/AUTHORS.md" + } + ], + "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", + "homepage": "https://github.com/dompdf/dompdf", + "support": { + "issues": "https://github.com/dompdf/dompdf/issues", + "source": "https://github.com/dompdf/dompdf/tree/v3.1.5" + }, + "time": "2026-03-03T13:54:37+00:00" + }, + { + "name": "dompdf/php-font-lib", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/dompdf/php-font-lib.git", + "reference": "a6e9a688a2a80016ac080b97be73d3e10c444c9a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/a6e9a688a2a80016ac080b97be73d3e10c444c9a", + "reference": "a6e9a688a2a80016ac080b97be73d3e10c444c9a", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.5 || ^8 || ^9 || ^10 || ^11 || ^12" + }, + "type": "library", + "autoload": { + "psr-4": { + "FontLib\\": "src/FontLib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "The FontLib Community", + "homepage": "https://github.com/dompdf/php-font-lib/blob/master/AUTHORS.md" + } + ], + "description": "A library to read, parse, export and make subsets of different types of font files.", + "homepage": "https://github.com/dompdf/php-font-lib", + "support": { + "issues": "https://github.com/dompdf/php-font-lib/issues", + "source": "https://github.com/dompdf/php-font-lib/tree/1.0.2" + }, + "time": "2026-01-20T14:10:26+00:00" + }, + { + "name": "dompdf/php-svg-lib", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/dompdf/php-svg-lib.git", + "reference": "8259ffb930817e72b1ff1caef5d226501f3dfeb1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/8259ffb930817e72b1ff1caef5d226501f3dfeb1", + "reference": "8259ffb930817e72b1ff1caef5d226501f3dfeb1", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^7.1 || ^8.0", + "sabberworm/php-css-parser": "^8.4 || ^9.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.5 || ^8 || ^9 || ^10 || ^11" + }, + "type": "library", + "autoload": { + "psr-4": { + "Svg\\": "src/Svg" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "The SvgLib Community", + "homepage": "https://github.com/dompdf/php-svg-lib/blob/master/AUTHORS.md" + } + ], + "description": "A library to read, parse and export to PDF SVG files.", + "homepage": "https://github.com/dompdf/php-svg-lib", + "support": { + "issues": "https://github.com/dompdf/php-svg-lib/issues", + "source": "https://github.com/dompdf/php-svg-lib/tree/1.0.2" + }, + "time": "2026-01-02T16:01:13+00:00" + }, { "name": "dragonmantank/cron-expression", "version": "v3.6.0", @@ -2318,6 +2473,73 @@ ], "time": "2026-03-08T20:05:35+00:00" }, + { + "name": "masterminds/html5", + "version": "2.10.0", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "fcf91eb64359852f00d921887b219479b4f21251" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/fcf91eb64359852f00d921887b219479b4f21251", + "reference": "fcf91eb64359852f00d921887b219479b4f21251", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.10.0" + }, + "time": "2025-07-25T09:04:22+00:00" + }, { "name": "monolog/monolog", "version": "3.10.0", @@ -3756,6 +3978,86 @@ }, "time": "2025-12-14T04:43:48+00:00" }, + { + "name": "sabberworm/php-css-parser", + "version": "v9.3.0", + "source": { + "type": "git", + "url": "https://github.com/MyIntervals/PHP-CSS-Parser.git", + "reference": "88dbd0f7f91abbfe4402d0a3071e9ff4d81ed949" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/88dbd0f7f91abbfe4402d0a3071e9ff4d81ed949", + "reference": "88dbd0f7f91abbfe4402d0a3071e9ff4d81ed949", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": "^7.2.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", + "thecodingmachine/safe": "^1.3 || ^2.5 || ^3.4" + }, + "require-dev": { + "php-parallel-lint/php-parallel-lint": "1.4.0", + "phpstan/extension-installer": "1.4.3", + "phpstan/phpstan": "1.12.32 || 2.1.32", + "phpstan/phpstan-phpunit": "1.4.2 || 2.0.8", + "phpstan/phpstan-strict-rules": "1.6.2 || 2.0.7", + "phpunit/phpunit": "8.5.52", + "rawr/phpunit-data-provider": "3.3.1", + "rector/rector": "1.2.10 || 2.2.8", + "rector/type-perfect": "1.0.0 || 2.1.0", + "squizlabs/php_codesniffer": "4.0.1", + "thecodingmachine/phpstan-safe-rule": "1.2.0 || 1.4.1" + }, + "suggest": { + "ext-mbstring": "for parsing UTF-8 CSS" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "9.4.x-dev" + } + }, + "autoload": { + "files": [ + "src/Rule/Rule.php", + "src/RuleSet/RuleContainer.php" + ], + "psr-4": { + "Sabberworm\\CSS\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Raphael Schweikert" + }, + { + "name": "Oliver Klee", + "email": "github@oliverklee.de" + }, + { + "name": "Jake Hotson", + "email": "jake.github@qzdesign.co.uk" + } + ], + "description": "Parser for CSS Files written in PHP", + "homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser", + "keywords": [ + "css", + "parser", + "stylesheet" + ], + "support": { + "issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues", + "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v9.3.0" + }, + "time": "2026-03-03T17:31:43+00:00" + }, { "name": "setasign/fpdf", "version": "1.8.6", @@ -6371,6 +6673,149 @@ ], "time": "2026-02-15T10:53:20+00:00" }, + { + "name": "thecodingmachine/safe", + "version": "v3.4.0", + "source": { + "type": "git", + "url": "https://github.com/thecodingmachine/safe.git", + "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/705683a25bacf0d4860c7dea4d7947bfd09eea19", + "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpstan/phpstan": "^2", + "phpunit/phpunit": "^10", + "squizlabs/php_codesniffer": "^3.2" + }, + "type": "library", + "autoload": { + "files": [ + "lib/special_cases.php", + "generated/apache.php", + "generated/apcu.php", + "generated/array.php", + "generated/bzip2.php", + "generated/calendar.php", + "generated/classobj.php", + "generated/com.php", + "generated/cubrid.php", + "generated/curl.php", + "generated/datetime.php", + "generated/dir.php", + "generated/eio.php", + "generated/errorfunc.php", + "generated/exec.php", + "generated/fileinfo.php", + "generated/filesystem.php", + "generated/filter.php", + "generated/fpm.php", + "generated/ftp.php", + "generated/funchand.php", + "generated/gettext.php", + "generated/gmp.php", + "generated/gnupg.php", + "generated/hash.php", + "generated/ibase.php", + "generated/ibmDb2.php", + "generated/iconv.php", + "generated/image.php", + "generated/imap.php", + "generated/info.php", + "generated/inotify.php", + "generated/json.php", + "generated/ldap.php", + "generated/libxml.php", + "generated/lzf.php", + "generated/mailparse.php", + "generated/mbstring.php", + "generated/misc.php", + "generated/mysql.php", + "generated/mysqli.php", + "generated/network.php", + "generated/oci8.php", + "generated/opcache.php", + "generated/openssl.php", + "generated/outcontrol.php", + "generated/pcntl.php", + "generated/pcre.php", + "generated/pgsql.php", + "generated/posix.php", + "generated/ps.php", + "generated/pspell.php", + "generated/readline.php", + "generated/rnp.php", + "generated/rpminfo.php", + "generated/rrd.php", + "generated/sem.php", + "generated/session.php", + "generated/shmop.php", + "generated/sockets.php", + "generated/sodium.php", + "generated/solr.php", + "generated/spl.php", + "generated/sqlsrv.php", + "generated/ssdeep.php", + "generated/ssh2.php", + "generated/stream.php", + "generated/strings.php", + "generated/swoole.php", + "generated/uodbc.php", + "generated/uopz.php", + "generated/url.php", + "generated/var.php", + "generated/xdiff.php", + "generated/xml.php", + "generated/xmlrpc.php", + "generated/yaml.php", + "generated/yaz.php", + "generated/zip.php", + "generated/zlib.php" + ], + "classmap": [ + "lib/DateTime.php", + "lib/DateTimeImmutable.php", + "lib/Exceptions/", + "generated/Exceptions/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHP core functions that throw exceptions instead of returning FALSE on error", + "support": { + "issues": "https://github.com/thecodingmachine/safe/issues", + "source": "https://github.com/thecodingmachine/safe/tree/v3.4.0" + }, + "funding": [ + { + "url": "https://github.com/OskarStark", + "type": "github" + }, + { + "url": "https://github.com/shish", + "type": "github" + }, + { + "url": "https://github.com/silasjoisten", + "type": "github" + }, + { + "url": "https://github.com/staabm", + "type": "github" + } + ], + "time": "2026-02-04T18:08:13+00:00" + }, { "name": "tijsverkoyen/css-to-inline-styles", "version": "v2.4.0", @@ -8970,5 +9415,5 @@ "php": "^8.2" }, "platform-dev": {}, - "plugin-api-version": "2.9.0" + "plugin-api-version": "2.6.0" } diff --git a/config/badges.php b/config/badges.php index 51817475..68bf8a3a 100644 --- a/config/badges.php +++ b/config/badges.php @@ -7,7 +7,7 @@ return [ |-------------------------------------------------------------------------- */ 'school_name' => env('BADGE_SCHOOL_NAME', 'Al Rahma Sunday School'), - 'motto' => env('BADGE_MOTTO', 'Learn • Lead • Succeed'), + 'motto' => env('BADGE_MOTTO', ''), 'role_label' => env('BADGE_ROLE_LABEL', 'Student'), 'footer_address' => env('BADGE_FOOTER_ADDRESS', ''), ]; diff --git a/public/badge_example.jpeg b/public/badge_example.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..67649a45672f32dea79e91296be42c8893f8d78f GIT binary patch literal 147639 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 literal 0 HcmV?d00001