@extends('layouts.admin') @section('content') @php function parseNamaGuru(string $namaLengkap): array { $GELAR_DEPAN = [ 'Prof.', 'Prof', 'Dr.', 'DR.', 'Dr', 'DR', 'dr.', 'dr', 'Drs.', 'Drs', 'Dra.', 'Dra', 'Ir.', 'Ir', 'H.', 'H', 'Hj.', 'Hj', 'KH.', 'KH', 'Lc.', 'Lc', 'Ust.', 'Ust', 'Ustadz', 'Ustadzah', 'M.', 'Drs.H.', ]; usort($GELAR_DEPAN, fn($a, $b) => strlen($b) - strlen($a)); $depan = []; $sisa = trim($namaLengkap); foreach ($GELAR_DEPAN as $g) { $pattern = '/^' . preg_quote($g, '/') . '\s+/i'; if (preg_match($pattern, $sisa)) { $depan[] = rtrim($g, '.') . '.'; $sisa = preg_replace($pattern, '', $sisa, 1); reset($GELAR_DEPAN); } } $parts = explode(',', $sisa, 2); $namaBersih = trim($parts[0]); $belakang = []; if (isset($parts[1])) { foreach (explode(',', $parts[1]) as $bg) { $bg = trim($bg); if ($bg !== '') $belakang[] = $bg; } } $kata = array_filter(explode(' ', $namaBersih)); $inisial = implode('', array_map( fn($k) => strtoupper(mb_substr($k, 0, 1)), array_slice($kata, 0, 2) )); $jumlahGelar = count($depan) + count($belakang); return compact('depan', 'namaBersih', 'belakang', 'inisial', 'jumlahGelar'); } $gurusSorted = $gurus->sortByDesc(function($g) { $p = parseNamaGuru($g->nama); return count($p['depan']) + count($p['belakang']); })->values(); @endphp
{{-- HEADER --}}

Manajemen Guru

{{ $gurus->count() }} tenaga pengajar @if(!empty($search)) ditemukan untuk "{{ $search }}" @else terdaftar @endif

Cetak Semua QR
{{-- SEARCH BAR --}}
{{-- TABLE --}}
@forelse($gurusSorted as $idx => $g) @php $parsed = parseNamaGuru($g->nama); @endphp @empty @endforelse
Profil Guru Jenis Kelamin Kredensial Akun Aksi
{{-- Avatar: inisial nama bersih --}}
{{ $parsed['inisial'] }}
{{-- Baris 1: nama bersih --}}
@foreach($parsed['depan'] as $gd) {{ $gd }} @endforeach {{ $parsed['namaBersih'] }}
{{-- Baris 2: gelar belakang (jika ada) --}} @if($parsed['belakang'])
@foreach($parsed['belakang'] as $gb) {{ $gb }} @endforeach
@endif {{-- Baris 3: nomor identitas --}}
{{ $g->jenis_identitas }} {{ $g->nomor_identitas }}
{{ $g->jenis_kelamin == 'L' ? 'Laki-laki' : 'Perempuan' }}
{{ $g->user->email ?? '—' }}
{{ $g->user->username ?? '—' }}
@csrf @method('DELETE')
@if(!empty($search))

Tidak ditemukan guru untuk "{{ $search }}".

Coba kata kunci lain atau tampilkan semua data.

@else

Belum ada data guru.

Tambahkan guru baru atau import dari file Excel.

@endif
{{-- PAGINATION BAR --}}
Memuat...
Baris per halaman:
{{-- MODAL IMPORT EXCEL --}} {{-- MODAL EDIT GURU --}} @foreach($gurusSorted as $g) @endforeach {{-- MODAL TAMBAH GURU --}} @endsection