105 lines
5.3 KiB
PHP
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(); ?>
|