<?php
// sitemap.php
// KUNCI: Benar-benar TIDAK BOLEH ada spasi atau baris kosong sebelum tag <?php ini!

set_time_limit(60);
ini_set('memory_limit', '256M');

// Hancurkan semua buffer sampah yang merusak struktur XML
while (ob_get_level()) {
    ob_end_clean();
}

// Set header ke XML murni
header("Content-Type: application/xml; charset=utf-8");

// Panggil database secara absolut
$config_db = __DIR__ . "/config/db.php";
if (file_exists($config_db)) {
    require_once $config_db;
} else {
    echo '<?xml version="1.0" encoding="UTF-8"?>';
    echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
    echo '<error>Infrastruktur database tidak terdeteksi</error>';
    echo '</urlset>';
    exit;
}

// Mulai pembentukan XML String
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= "\n" . '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

// 1. Link Utama
$xml .= "\n  " . '<url><loc>https://wartaterkini.online/</loc><priority>1.0</priority></url>';

// 2. Link Kategori
$categories = ['nasional', 'internasional', 'teknologi', 'ekonomi'];
foreach ($categories as $cat) {
    $xml .= "\n  " . '<url><loc>https://wartaterkini.online/category/' . $cat . '</loc><priority>0.8</priority></url>';
}

// 3. Ambil Berita Terbaru (Batasi 300 data untuk verifikasi awal)
$query = mysqli_query($conn, "SELECT slug, created_at FROM berita WHERE status = 'PUBLISH' AND slug IS NOT NULL AND slug != '' ORDER BY id DESC LIMIT 300");

if ($query && mysqli_num_rows($query) > 0) {
    while ($row = mysqli_fetch_assoc($query)) {
        $slug = trim($row['slug']);
        if (empty($slug)) continue;

        // Bersihkan slug dari karakter ilegal XML (&, <, >, ", ')
        $safe_slug = str_replace(
            array('&', '<', '>', '"', "'"),
            array('&amp;', '&lt;', '&gt;', '&quot;', '&apos;'),
            $slug
        );

        // Format tanggal ISO
        $timestamp = strtotime($row['created_at']);
        $date = ($timestamp) ? date('Y-m-d', $timestamp) : date('Y-m-d');

        $xml .= "\n  " . '<url>';
        $xml .= '<loc>https://wartaterkini.online/news/' . $safe_slug . '</loc>';
        $xml .= '<lastmod>' . $date . '</lastmod>';
        $xml .= '<priority>0.6</priority>';
        $xml .= '</url>';
    }
}

$xml .= "\n" . '</urlset>';

// Keluarkan output final
echo $xml;
exit;