<?php
// Base URL untuk website Anda yang dibuat secara dinamis
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$host = $_SERVER['HTTP_HOST'];
$directory = dirname($_SERVER['SCRIPT_NAME']);
$base_url = $protocol . $host . $directory;

// Ambil pengaturan dari file settings.json
$settings = json_decode(file_get_contents(__DIR__ . '/data/settings.json'), true);
$siteDescription = $settings['site_description'] ?? 'Deskripsi default website';
$siteSlogan = $settings['site_slogan'] ?? 'Slogan default'; // Ambil slogan

// Folder tempat berita disimpan
$newsDir = __DIR__ . '/data/news/';

// Ambil pengaturan dari file settings.json
$settings = json_decode(file_get_contents(__DIR__ . '/data/settings.json'), true);
$siteDescription = $settings['site_description'] ?? 'Deskripsi default website';

$pageDir = __DIR__ . '/data/pages/';
$pageFiles = glob($pageDir . '*.json');

// Ambil kategori dari query string
$kategori = $_GET['kategori'] ?? '';

// Jika kategori tidak ada, tampilkan pesan
if (empty($kategori)) {
    die('Kategori tidak ditemukan.');
}

// Inisialisasi array untuk menyimpan berita yang difilter
$newsArray = [];

// Baca semua file berita di folder
$newsFiles = glob($newsDir . '*.json');

// Filter berita berdasarkan kategori
foreach ($newsFiles as $file) {
    $newsData = json_decode(file_get_contents($file), true);

    // Pastikan data berita valid dan cocok dengan kategori yang dipilih
    if (isset($newsData['kategori']) && $newsData['kategori'] === $kategori) {
        $newsArray[] = $newsData;
    }
}

// Folder tempat berita disimpan
$newsDir = __DIR__ . '/data/news/';

// Inisialisasi array untuk menyimpan kategori yang ada
$kategoriDenganArtikel = [];

// Baca semua file di folder berita
$newsFiles = glob($newsDir . '*.json');

// Loop melalui setiap file berita
foreach ($newsFiles as $file) {
    // Ambil data berita
    $newsData = json_decode(file_get_contents($file), true);

    // Pastikan data valid dan kategori ada
    if (isset($newsData['kategori']) && !empty($newsData['kategori'])) {
        // Tambahkan kategori ke dalam array jika belum ada
        if (!in_array($newsData['kategori'], $kategoriDenganArtikel)) {
            $kategoriDenganArtikel[] = $newsData['kategori'];
        }
    }
}
?>

<?php
$base_url = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? "https" : "http") . "://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);
?>

<?php
// Fungsi untuk menghitung waktu "time ago"
function timeAgo($datetime) {
    $now = new DateTime(); // Waktu saat ini
    $postTime = new DateTime($datetime); // Waktu dari data berita
    $interval = $now->diff($postTime); // Hitung selisih waktu

    // Tentukan unit waktu (second, minute, hour, day, dll.)
    if ($interval->y > 0) {
        return $interval->y . ' tahun' . ($interval->y > 1 ? '' : '') . ' lalu';
    } elseif ($interval->m > 0) {
        return $interval->m . ' bulan' . ($interval->m > 1 ? '' : '') . ' lalu';
    } elseif ($interval->d > 0) {
        return $interval->d . ' hari' . ($interval->d > 1 ? '' : '') . ' lalu';
    } elseif ($interval->h > 0) {
        return $interval->h . ' jam' . ($interval->h > 1 ? '' : '') . ' lalu';
    } elseif ($interval->i > 0) {
        return $interval->i . ' menit' . ($interval->i > 1 ? '' : '') . ' lalu';
    } else {
        return $interval->s . ' detik' . ($interval->s > 1 ? '' : '') . ' lalu';
    }
}
?>
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?php echo htmlspecialchars($settings['site_name'] ?? 'Nama Website'); ?></title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<script src="https://kit.fontawesome.com/312e1f4072.js" crossorigin="anonymous"></script>
</head>
<body class="bg-light">
    <div class="container mt-3 mb-4">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card mt-4 mb-4 border-0 shadow rounded-4 p-3">

<!-- menu -->
<nav class="navbar m-4 navbar-expand-lg shadow rounded-3 mb-3">
  <div class="container-fluid">
    <a class="navbar-brand fw-bold" href="<?php echo $base_url; ?>"><i class="fa-solid fa-rss text-danger"></i>&nbsp;<?php echo htmlspecialchars($settings['site_name'] ?? 'Nama Website'); ?></a>
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav ms-auto mb-2 mb-lg-0">
    <li class="nav-item">
        <a class="nav-link active" aria-current="page" href="<?php echo $base_url; ?>">Home</a>
    </li>
    <?php foreach ($kategoriDenganArtikel as $kategori): ?>
                <li><a class="nav-link active" href="kategori.php?kategori=<?php echo urlencode($kategori); ?>"><?php echo htmlspecialchars($kategori); ?></a></li>
            <?php endforeach; ?>
</ul>

    </div>
  </div>
</nav>
<!--/ menu -->
<div class="ps-4 pe-4">
<form class="d-flex" role="search" action="search.php" method="GET">
    <input type="text" name="query" placeholder="Cari artikel..." class="form-control me-2 rounded-3">
    <button type="submit" class="btn btn-dark rounded-3"><i class="fa-solid fa-magnifying-glass"></i></button>
</form>
</div>
                <div class="m-4">
        


        <!-- HTML untuk menampilkan berita -->
        <?php if (empty($newsArray)): ?>
            <p>Tidak ada berita di kategori ini.</p>
        <?php else: ?>
        
        <?php
// Pastikan array $newsArray tidak kosong
if (!empty($newsArray)) {
    $news = $newsArray[0]; // Ambil berita pertama dari array
    ?>
    <p class="fw-bold"><i class="fa-solid fa-folder text-warning"></i> <?php echo htmlspecialchars($news['kategori']); ?></p>
    <?php
} else {
    echo "Tidak ada berita untuk ditampilkan.";
}
?>

            <?php foreach ($newsArray as $news): ?>
                <div class="row pb-3 pt-3">
                    <div class="col-md-5">
                        <a class="text-decoration-none text-dark" href="<?php echo htmlspecialchars($news['slug']); ?>">
                            <?php if (!empty($news['image'])): ?>
                                <img class="img-fluid rounded-3" src="<?php echo htmlspecialchars($news['image']); ?>" alt="<?php echo htmlspecialchars($news['judul']); ?>">
                            <?php else: ?>
                                <p>Tidak ada gambar.</p>
                            <?php endif; ?>
                        </a>
                    </div>
                    <div class="col-md-7 align-self-center">
                        <div class="card-body">
                            <h2 class="card-title fs-5">
                                <?php if (!empty($news['slug'])): ?>
                                    <a class="text-decoration-none text-dark" href="<?php echo htmlspecialchars($news['slug']); ?>">
                                        <?php echo htmlspecialchars($news['judul']); ?>
                                    </a>
                                <?php else: ?>
                                    <?php echo htmlspecialchars($news['judul']); ?>
                                <?php endif; ?>
                            </h2>
                            <p class="card-title small">
                                <span class="badge rounded-pill text-bg-warning"><?php echo htmlspecialchars($news['kategori']); ?></span>&nbsp;
                                <?php
// Pastikan file time_ago.php sudah di-include
include 'time_ago.php';

// Asumsikan $news['tanggal'] sudah tersedia dari data berita
if (isset($news['tanggal'])) {
    $timeAgo = timeAgo($news['tanggal']); // Panggil fungsi timeAgo
    ?>
    <!-- Tampilan HTML -->
    <span class="text-secondary">
        <?php echo htmlspecialchars($timeAgo); ?>
    </span>
    <?php
} else {
    echo "<span class='text-secondary'>Date not available</span>";
}
?>
                            </p>
                            <div class="text-secondary">
                                <?php
                                // Panjang maksimum teks yang ditampilkan
                                $maxLength = 140;

                                // Ambil konten berita
                                $konten = $news['konten'];

                                // Ganti entitas HTML dengan karakter biasa
                                $konten = html_entity_decode($konten);

                                // Hapus tag HTML
                                $konten = strip_tags($konten);

                                if (strlen($konten) > $maxLength) {
                                    // Potong teks menjadi panjang maksimum
                                    $truncatedText = substr($konten, 0, $maxLength);

                                    // Cari posisi terakhir dari spasi untuk memotong di akhir kata
                                    $lastSpacePosition = strrpos($truncatedText, ' ');

                                    // Jika ada spasi di teks yang dipotong, potong hingga spasi terakhir
                                    if ($lastSpacePosition !== false) {
                                        $truncatedText = substr($truncatedText, 0, $lastSpacePosition);
                                    }

                                    // Tambahkan ellipsis
                                    $konten = $truncatedText . '...';
                                }

                                // Tampilkan teks yang sudah dipotong
                                echo htmlspecialchars($konten);
                                ?>
                            </div>
                        </div>
                    </div>
                </div>
            <?php endforeach; ?>
        <?php endif; ?>
    </div>

</div>
<div class="d-flex justify-content-center">
                <nav aria-label="breadcrumb">
  <ol class="breadcrumb">
                <?php
foreach ($pageFiles as $file) {
    $pageData = json_decode(file_get_contents($file), true);
    $slug = basename($file, '.json');
    echo '<li class="breadcrumb-item"><a class=" text-secondary small text-decoration-none" href="page/' . $slug . '">' . htmlspecialchars($pageData['judul']) . '</a></li>';
}
?>
</ol>
</nav>
            </div>
<p class="small text-center text-secondary">&copy; 2024 <?php echo htmlspecialchars($settings['site_name'] ?? 'Nama Website'); ?>. All Rights Reserved</p>
</div>
</div>
    <!-- Sertakan Bootstrap JS atau JS lain yang dibutuhkan -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
    

</body>
</html>
