PYBS (Personel Yönetim Bilgi Sistemi) / includes/menu.php
menu.php 171 satır • 10.60 KB
<?php
// includes/menu.php
$mevcut_sayfa = basename($_SERVER['PHP_SELF']);
$rol = $_SESSION['rol'] ?? 'calisan';

// Menü Açık/Kapalı Kontrolü (Hangi Ana Menü Başlığının Açık Kalacağını Belirler)
$personel_acik = in_array($mevcut_sayfa, ['personel-yonetimi.php', 'personel-ekle.php', 'personel-duzenle.php', 'personel-kart.php']);
$izin_acik = in_array($mevcut_sayfa, ['tum-izinler.php', 'izin-talep.php', 'tatil-yonetimi.php', 'izin-yazdir.php', 'izin-gir.php']);
$mesai_acik = in_array($mevcut_sayfa, ['tum-mesailer.php', 'mesai-giris.php', 'admin-mesai-ekle.php', 'puantaj-cetveli.php']);
$finans_acik = in_array($mevcut_sayfa, ['maas-hesapla.php', 'raporlar.php', 'avans-giris.php', 'mali-rapor.php']); // <-- GÜNCELLEME BURADA
$kisisel_acik = in_array($mevcut_sayfa, ['izin-talep.php', 'mesai-giris.php', 'profil.php']) || (strpos($mevcut_sayfa, '-panel.php') !== false && $mevcut_sayfa !== 'root-panel.php'); 
// Paneller için varsayılan olarak kişisel menü açık kalır
?>

<style>
    /* Varsayılan stil ve girinti */
    #sidebar ul li a {
        padding: 10px; 
        display: block;
        transition: all 0.3s;
        color: #ddd; /* Varsayılan renk */
    }

    #sidebar ul.components ul li a {
        padding-left: 30px !important; 
        font-size: 0.9em;
        font-weight: 500;
    }
    
    /* TALEP 1: AÇIK OLAN AKORDİYON BAŞLIĞI TURUNCU OLSUN */
    #sidebar ul li a.dropdown-toggle[aria-expanded="true"] {
        background: #cc7a00; /* Turuncu Ton */
        color: #fff;
    }
    
    /* TALEP 2: ALT MENÜLERDE RENK OLMASIN, SADECE KALIN GÖSTERİLSİN */
    #sidebar ul.components ul li a.active,
    #sidebar ul.components ul li a.active:hover {
        background: none; /* Arka planı kaldır */
        color: #ddd; /* Varsayılan menü rengini koru */
        font-weight: 700; /* Seçili olduğunu belli etmek için kalın yap */
        border-radius: 0; /* Köşe yuvarlatmayı kaldır */
    }
    
    /* DİREKT LİNKLERİN AKTİF RENGİ (Örn: Ana Sayfa, Sistem Ayarları) */
    #sidebar ul.components > li > a.active {
        background: #ff9900; /* Turuncu */
        color: #fff;
        font-weight: 700;
        border-radius: 0; 
    }
    
    /* Hover (Üzerine Gelme) efekti: Genel olarak tüm linkler için */
    #sidebar ul li a:hover {
        color: #fff;
        background: rgba(255, 255, 255, 0.1);
    }
</style>

<nav id="sidebar">
    <div class="sidebar-header p-3 text-center" style="background: rgba(0,0,0,0.2);">
        <h6 class="text-white mb-0 fw-bold"><i class="fas fa-cube me-2"></i>Ramsa PYBS</h6>
    </div>

    <ul class="list-unstyled components" id="accordionMenu">
        
        <li>
            <a href="../panels/<?php echo $rol; ?>-panel.php" class="<?php echo (strpos($mevcut_sayfa, '-panel.php') !== false) ? 'active' : ''; ?>">
                <i class="fas fa-home"></i> Ana Sayfa
            </a>
        </li>
        
        <li class="menu-item">
            <a href="#kisiselSubmenu" data-bs-toggle="collapse" data-bs-parent="#accordionMenu" aria-expanded="<?php echo $kisisel_acik ? 'true' : 'false'; ?>" class="dropdown-toggle <?php echo $kisisel_acik ? '' : 'collapsed'; ?>">
                <i class="fas fa-id-card"></i> Kişisel Menü
            </a>
            <ul class="collapse list-unstyled <?php echo $kisisel_acik ? 'show' : ''; ?>" id="kisiselSubmenu">
                <li><a href="../modules/profil.php" class="<?php echo ($mevcut_sayfa == 'profil.php') ? 'active' : ''; ?>"><i class="fas fa-user-circle"></i> Profilim</a></li>
                <li><a href="../modules/izin-talep.php" class="<?php echo ($mevcut_sayfa == 'izin-talep.php') ? 'active' : ''; ?>"><i class="fas fa-paper-plane"></i> İzin İste</a></li>
                <li><a href="../modules/mesai-giris.php" class="<?php echo ($mevcut_sayfa == 'mesai-giris.php') ? 'active' : ''; ?>"><i class="fas fa-history"></i> Fazla Mesai Gir</a></li>
            </ul>
        </li>

        <?php if(in_array($rol, ['root', 'yonetici', 'insan_kaynaklari', 'muhasebe'])): ?>
        <li class="menu-item">
            <a href="#personelSubmenu" data-bs-toggle="collapse" data-bs-parent="#accordionMenu" aria-expanded="<?php echo $personel_acik ? 'true' : 'false'; ?>" class="dropdown-toggle <?php echo $personel_acik ? '' : 'collapsed'; ?>">
                <i class="fas fa-users"></i> Personel Yönetimi
            </a>
            <ul class="collapse list-unstyled <?php echo $personel_acik ? 'show' : ''; ?>" id="personelSubmenu">
                <li><a href="../modules/personel-yonetimi.php" class="<?php echo ($mevcut_sayfa == 'personel-yonetimi.php' || $mevcut_sayfa == 'personel-duzenle.php' || $mevcut_sayfa == 'personel-kart.php') ? 'active' : ''; ?>"><i class="fas fa-list"></i> Personel Listesi</a></li>
                <li><a href="../modules/personel-ekle.php" class="<?php echo ($mevcut_sayfa == 'personel-ekle.php') ? 'active' : ''; ?>"><i class="fas fa-user-plus"></i> Personel Ekle</a></li>
            </ul>
        </li>
        <?php endif; ?>

        <li class="menu-item">
            <a href="#izinSubmenu" data-bs-toggle="collapse" data-bs-parent="#accordionMenu" aria-expanded="<?php echo $izin_acik ? 'true' : 'false'; ?>" class="dropdown-toggle <?php echo $izin_acik ? '' : 'collapsed'; ?>">
                <i class="fas fa-file-signature"></i> İzin Onay/Takip
            </a>
            <ul class="collapse list-unstyled <?php echo $izin_acik ? 'show' : ''; ?>" id="izinSubmenu">
                <?php if(in_array($rol, ['root', 'yonetici', 'muhasebe', 'insan_kaynaklari'])): ?>
                    <li><a href="../modules/izin-gir.php" class="<?php echo ($mevcut_sayfa == 'izin-gir.php') ? 'active' : ''; ?>"><i class="fas fa-calendar-plus"></i> İzin Girişi</a></li>
                <?php endif; ?>
                <?php if(in_array($rol, ['root', 'yonetici', 'muhasebe', 'mudur', 'vardiya_amiri', 'insan_kaynaklari'])): ?>
                    <li><a href="../modules/tum-izinler.php" class="<?php echo ($mevcut_sayfa == 'tum-izinler.php') ? 'active' : ''; ?>"><i class="fas fa-check-double"></i> İzin Onayları</a></li>
                <?php endif; ?>                
                <?php if(in_array($rol, ['root', 'yonetici', 'insan_kaynaklari', 'muhasebe'])): ?>
                    <li><a href="../modules/tatil-yonetimi.php" class="<?php echo ($mevcut_sayfa == 'tatil-yonetimi.php') ? 'active' : ''; ?>"><i class="fas fa-calendar-alt"></i> Tatil Yönetimi</a></li>
                <?php endif; ?>
            </ul>
        </li>

        <li class="menu-item">
            <a href="#mesaiSubmenu" data-bs-toggle="collapse" data-bs-parent="#accordionMenu" aria-expanded="<?php echo $mesai_acik ? 'true' : 'false'; ?>" class="dropdown-toggle <?php echo $mesai_acik ? '' : 'collapsed'; ?>">
                <i class="fas fa-clock"></i> Mesai & Puantaj
            </a>
            <ul class="collapse list-unstyled <?php echo $mesai_acik ? 'show' : ''; ?>" id="mesaiSubmenu">
                <?php if(in_array($rol, ['root', 'muhasebe', 'insan_kaynaklari'])): ?>
                    <li><a href="../modules/admin-mesai-ekle.php" class="<?php echo ($mevcut_sayfa == 'admin-mesai-ekle.php') ? 'active' : ''; ?>"><i class="fas fa-user-clock"></i> Mesai Girişi</a></li>
                <?php endif; ?>
                <?php if(in_array($rol, ['root', 'yonetici', 'muhasebe', 'mudur', 'vardiya_amiri', 'insan_kaynaklari'])): ?>
                    <li><a href="../modules/tum-mesailer.php" class="<?php echo ($mevcut_sayfa == 'tum-mesailer.php') ? 'active' : ''; ?>"><i class="fas fa-tasks"></i> Mesai Onayları</a></li>
                <?php endif; ?>
                <?php if(in_array($rol, ['root', 'yonetici', 'muhasebe', 'insan_kaynaklari'])): ?>
                    <li><a href="../modules/puantaj-cetveli.php" class="<?php echo ($mevcut_sayfa == 'puantaj-cetveli.php') ? 'active' : ''; ?>"><i class="fas fa-table"></i> Puantaj Cetveli</a></li>
                <?php endif; ?>
                <?php if(in_array($rol, ['root', 'yonetici', 'muhasebe', 'insan_kaynaklari'])): ?>
                    <li><a href="../modules/puantaj-cetveli-haftalik.php" class="<?php echo ($mevcut_sayfa == 'puantaj-cetveli-haftalik.php') ? 'active' : ''; ?>"><i class="fas fa-table"></i> Haftalık Puantaj Cetveli</a></li>
                <?php endif; ?>
            </ul>
        </li>

        <?php if(in_array($rol, ['root', 'yonetici', 'muhasebe', 'insan_kaynaklari'])): ?>
        <li class="menu-item">
            <a href="#finansSubmenu" data-bs-toggle="collapse" data-bs-parent="#accordionMenu" aria-expanded="<?php echo $finans_acik ? 'true' : 'false'; ?>" class="dropdown-toggle <?php echo $finans_acik ? '' : 'collapsed'; ?>">
                <i class="fas fa-chart-line"></i> Finans & Bordro
            </a>
            <ul class="collapse list-unstyled <?php echo $finans_acik ? 'show' : ''; ?>" id="finansSubmenu">
                <li><a href="../modules/maas-hesapla.php" class="<?php echo ($mevcut_sayfa == 'maas-hesapla.php') ? 'active' : ''; ?>"><i class="fas fa-money-bill-wave"></i> Bordro Göster</a></li>
                <li><a href="../modules/mali-rapor.php" class="<?php echo ($mevcut_sayfa == 'mali-rapor.php') ? 'active' : ''; ?>"><i class="fas fa-chart-line"></i> Mali Rapor</a></li>
                <li><a href="../modules/avans-giris.php" class="<?php echo ($mevcut_sayfa == 'avans-giris.php') ? 'active' : ''; ?>"><i class="fas fa-hand-holding-dollar"></i> Avans Yönetimi</a></li>
                <li><a href="../modules/raporlar.php" class="<?php echo ($mevcut_sayfa == 'raporlar.php') ? 'active' : ''; ?>"><i class="fas fa-file-invoice"></i> Genel Raporlar</a></li>
            </ul>
        </li>
        <li>
            <a href="../modules/yedek-al.php" onclick="return confirm('Veritabanının tam yedeği indirilsin mi? !! Log kayıtlarına eklenecektir !!');">
                <i class="fas fa-database"></i> Veritabanı Yedekle
            </a>
        </li>
        <?php endif; ?>

        <?php if($rol == 'root'): // SADECE ROOT GÖRÜR ?>
            <li>
                <a href="../modules/sistem-ayarlari.php" class="<?php echo ($mevcut_sayfa == 'sistem-ayarlari.php') ? 'active' : ''; ?>">
                    <i class="fas fa-cogs"></i> Sistem Ayarları
                </a>
            </li>
            <li>
                <a href="../modules/log-izleme.php" class="<?php echo ($mevcut_sayfa == 'log-izleme.php') ? 'active' : ''; ?>">
                    <i class="fas fa-shield-alt"></i> Sistem Logları
                </a>
            </li>
        <?php endif; ?>
    </ul>
</nav>
<div id="content">

<script>
// Bootstrap 5'in `data-bs-parent` özelliği, tek bir menünün açık kalmasını zaten halleder.
// Ekstra JavaScript koduna gerek yoktur.
</script>