40024-vm/blog.php
2026-05-17 15:57:40 +00:00

105 lines
5.3 KiB
PHP

<?php
declare(strict_types=1);
require_once __DIR__ . '/includes/site.php';
require_once __DIR__ . '/includes/layout.php';
boot_site();
$categories = fetch_categories();
$selectedCategory = trim((string)($_GET['category'] ?? ''));
if ($selectedCategory !== '' && !in_array($selectedCategory, $categories, true)) {
$selectedCategory = '';
}
$posts = fetch_posts($selectedCategory !== '' ? $selectedCategory : null);
$blogDescription = $selectedCategory !== ''
? 'Artikel kategori ' . $selectedCategory . ' yang mengarahkan pembaca ke apknusa.com.'
: 'Kumpulan artikel singkat seputar aplikasi Android dan topik terkait yang mengarahkan pembaca ke apknusa.com.';
render_page_start([
'title' => $selectedCategory !== '' ? 'Blog: ' . $selectedCategory : 'Blog Backlink untuk apknusa.com',
'description' => $blogDescription,
'canonical' => $selectedCategory !== '' ? canonical_for('blog.php?category=' . rawurlencode($selectedCategory)) : canonical_for('blog.php'),
'keywords' => 'blog apknusa, artikel android, backlink apknusa, tips apk',
'body_class' => 'blog-page',
]);
?>
<main id="main-content" class="page-wrap py-5">
<div class="container">
<section class="blog-hero mb-4">
<div class="row g-4 align-items-stretch">
<div class="col-lg-8">
<div class="panel-card blog-hero-card h-100">
<span class="section-kicker">Blog publik</span>
<h1 class="section-title mb-2">Artikel singkat yang membangun konteks sebelum pengunjung lanjut ke apknusa.com</h1>
<p class="section-copy mb-0"><?= e($blogDescription) ?> Setiap artikel di halaman ini tetap informatif, tetapi ujung perjalanannya adalah CTA yang membawa pembaca ke brand utama.</p>
<div class="hero-chip-row mt-4">
<span class="meta-pill"><strong><?= e((string)count($posts)) ?></strong> artikel tampil</span>
<span class="meta-pill"><strong><?= e((string)count($categories)) ?></strong> kategori</span>
<span class="meta-pill">Contextual CTA</span>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="panel-card blog-side-card h-100">
<div class="card-label">Tujuan akhir</div>
<h2 class="h4 mb-2">Baca singkat, klik ke sumber utama.</h2>
<p class="section-copy mb-3">Jika pengunjung sudah tertarik, setiap artikel di bawah sudah menyiapkan jalur ke apknusa.com dengan konteks yang lebih rapi.</p>
<a class="btn btn-dark w-100" href="<?= e(APKNUSA_URL) ?>" target="_blank" rel="noopener noreferrer">Buka apknusa.com</a>
</div>
</div>
</div>
</section>
<section class="panel-card mb-4">
<div class="d-flex flex-column flex-lg-row justify-content-between align-items-start align-items-lg-center gap-3">
<div>
<div class="card-label">Filter topik</div>
<p class="section-copy mb-0">Pilih kategori untuk melihat kelompok artikel yang paling relevan dengan intent pembaca.</p>
</div>
<div class="tag-group">
<a class="tag-chip <?= $selectedCategory === '' ? 'is-active' : '' ?>" href="blog.php">Semua</a>
<?php foreach ($categories as $category): ?>
<a class="tag-chip <?= $selectedCategory === $category ? 'is-active' : '' ?>" href="blog.php?category=<?= rawurlencode($category) ?>"><?= e($category) ?></a>
<?php endforeach; ?>
</div>
</div>
</section>
<?php if ($posts === []): ?>
<section class="empty-state">
<h2 class="h4 mb-2">Belum ada artikel pada kategori ini</h2>
<p class="mb-3">Silakan pilih kategori lain atau kembali ke semua artikel yang tersedia.</p>
<div class="d-flex flex-wrap gap-2 justify-content-center">
<a class="btn btn-dark" href="blog.php">Lihat semua artikel</a>
<a class="btn btn-outline-dark" href="<?= e(APKNUSA_URL) ?>" target="_blank" rel="noopener noreferrer">Buka apknusa.com</a>
</div>
</section>
<?php else: ?>
<div class="row g-4">
<?php foreach ($posts as $post): ?>
<div class="col-md-6 col-xl-4">
<article class="content-card h-100">
<div class="d-flex justify-content-between align-items-center gap-2 mb-3">
<span class="tag-badge"><?= e((string)$post['category']) ?></span>
<span class="muted-meta"><?= e((string)reading_time_minutes((string)$post['content'])) ?> menit baca</span>
</div>
<h2 class="card-title h4"><a href="<?= e(post_url($post)) ?>"><?= e((string)$post['title']) ?></a></h2>
<p class="card-copy"><?= e((string)$post['excerpt']) ?></p>
<div class="article-meta mt-auto pt-3 border-top">
<div class="muted-meta mb-3">Dipublikasikan <?= e((string)format_article_date((string)$post['published_at'])) ?></div>
<div class="d-flex flex-wrap gap-2">
<a class="btn btn-dark btn-sm" href="<?= e(post_url($post)) ?>">Baca artikel</a>
<a class="btn btn-outline-dark btn-sm" href="<?= e((string)$post['cta_url']) ?>" target="_blank" rel="noopener noreferrer">Menuju apknusa.com</a>
</div>
</div>
</article>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</main>
<?php render_page_end(); ?>