Initial commit

This commit is contained in:
Porawit Dongwang
2026-09-16 23:20:08 +07:00
commit 0041668dbb
32577 changed files with 3687927 additions and 0 deletions
@@ -0,0 +1,93 @@
<?php
$fullName = $_SESSION['full_name'] ?? 'Admin User';
$roleName = ($_SESSION['role'] ?? '') === 'admin' ? 'ผู้ดูแลระบบ' : 'เจ้าหน้าที่';
$pageTitleDisplay = $pageTitleDisplay ?? 'ระบบจัดการข้อมูลยานพาหนะ';
if (!isset($_SESSION['user_avatar'])) {
$_SESSION['user_avatar'] = "https://ui-avatars.com/api/?name=" . urlencode($fullName) . "&background=0F6CBD&color=fff";
// ค้นหารูปจากฐานข้อมูล HR ด้วยชื่อ-สกุล
try {
require_once 'includes/db_hr.php';
if ($pdo_hr) {
// ลบคำนำหน้าชื่อถ้ามี เช่น นาย นาง นางสาว
$searchName = preg_replace('/^(นาย|นางสาว|นาง|ว่าที่ร\.ต\.|นพ\.|พญ\.)/', '', $fullName);
$nameParts = explode(' ', trim($searchName));
$fname = $nameParts[0] ?? '';
$lname = $nameParts[1] ?? '';
if (!empty($fname)) {
$stmt = $pdo_hr->prepare("SELECT HR_CID FROM hr_person WHERE HR_FNAME LIKE ? AND (HR_LNAME LIKE ? OR ? = '') AND HR_IMAGE IS NOT NULL LIMIT 1");
$stmt->execute(["%$fname%", "%$lname%", $lname]);
$hr_person = $stmt->fetch(PDO::FETCH_ASSOC);
if ($hr_person && !empty($hr_person['HR_CID'])) {
$_SESSION['user_avatar'] = "api/hr_image.php?cid=" . urlencode($hr_person['HR_CID']);
}
}
}
} catch (Exception $e) {
// Ignore error
}
}
$userAvatar = $_SESSION['user_avatar'];
?>
<header class="h-20 glass-card m-4 px-6 flex items-center justify-between z-20 border-slate-200 dark:border-slate-700/50 rounded-[16px] shrink-0">
<div class="flex items-center">
<button @click="toggleSidebar()" class="text-slate-500 hover:text-slate-900 dark:hover:text-white focus:outline-none hidden sm:block p-2 rounded-lg hover:bg-slate-100 dark:hover:bg-slate-800 transition-colors">
<i class="fa-solid fa-bars text-xl"></i>
</button>
<!-- Mobile Menu Button -->
<button class="text-slate-500 sm:hidden p-2">
<i class="fa-solid fa-bars text-xl"></i>
</button>
<!-- Breadcrumbs -->
<nav class="hidden md:flex ml-4" aria-label="Breadcrumb">
<ol class="inline-flex items-center space-x-1 md:space-x-3">
<li class="inline-flex items-center">
<a href="index.php" class="inline-flex items-center text-sm font-medium text-slate-700 hover:text-primary-600 dark:text-slate-400 dark:hover:text-white">
<i class="fa-solid fa-house mr-2"></i>
หน้าหลัก
</a>
</li>
<?php if(isset($breadcrumbs) && is_array($breadcrumbs)): ?>
<?php foreach($breadcrumbs as $breadcrumb): ?>
<li aria-current="page">
<div class="flex items-center">
<i class="fa-solid fa-chevron-right text-slate-400 mx-2 text-xs"></i>
<span class="text-sm font-medium text-slate-500 dark:text-slate-400"><?= htmlspecialchars($breadcrumb) ?></span>
</div>
</li>
<?php endforeach; ?>
<?php else: ?>
<li aria-current="page">
<div class="flex items-center">
<i class="fa-solid fa-chevron-right text-slate-400 mx-2 text-xs"></i>
<span class="text-sm font-medium text-slate-500 dark:text-slate-400"><?= htmlspecialchars($pageTitleDisplay) ?></span>
</div>
</li>
<?php endif; ?>
</ol>
</nav>
</div>
<div class="flex items-center space-x-4">
<!-- Dark Mode Toggle -->
<button @click="toggleTheme()" class="p-2 rounded-lg text-slate-500 hover:text-primary-600 hover:bg-primary-50 dark:hover:text-primary-400 dark:hover:bg-slate-800 transition-colors relative overflow-hidden group">
<i class="fa-solid fa-sun text-xl absolute transition-all duration-500 transform" :class="darkMode ? 'opacity-0 scale-50 -rotate-90' : 'opacity-100 scale-100 rotate-0'"></i>
<i class="fa-solid fa-moon text-xl transition-all duration-500 transform" :class="darkMode ? 'opacity-100 scale-100 rotate-0' : 'opacity-0 scale-50 rotate-90'"></i>
</button>
<!-- Profile Dropdown -->
<div class="flex items-center cursor-pointer pl-2 border-l border-slate-200 dark:border-slate-700">
<img class="w-9 h-9 rounded-full object-cover border-2 border-primary-100 dark:border-primary-900" src="<?= htmlspecialchars($userAvatar) ?>" alt="User avatar">
<div class="hidden md:block ml-3">
<p class="text-sm font-medium dark:text-white"><?= htmlspecialchars($fullName) ?></p>
<p class="text-xs text-slate-500 dark:text-slate-400"><?= htmlspecialchars($roleName) ?></p>
</div>
<i class="fa-solid fa-chevron-down text-xs ml-2 text-slate-400"></i>
</div>
</div>
</header>