<?php
/**
 * sitemap.xml — généré dynamiquement à chaque requête depuis les fichiers JSON.
 * Nommé "sitemap.xml" mais interprété par Apache comme un script PHP
 * (voir handler AddType/AddHandler dans le .htaccess).
 */

declare(strict_types=1);

require __DIR__ . '/includes/functions.php';

header('Content-Type: application/xml; charset=UTF-8');

$settings = getSettings();
$base = rtrim($settings['site_url'], '/');

$urls = [];
$urls[] = ['loc' => $base . '/', 'lastmod' => date('Y-m-d')];
$urls[] = ['loc' => $base . '/contact/', 'lastmod' => date('Y-m-d')];

foreach (getCategories() as $categorie) {
    $urls[] = ['loc' => $base . '/categorie/' . $categorie['slug'] . '/', 'lastmod' => date('Y-m-d')];
}

foreach (getPages() as $page) {
    $urls[] = ['loc' => $base . '/' . $page['slug'] . '/', 'lastmod' => date('Y-m-d')];
}

foreach (getArticles() as $article) {
    $urls[] = [
        'loc' => $base . '/' . $article['slug'] . '/',
        'lastmod' => $article['date_modification'] ?? $article['date_publication'],
    ];
}

echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
foreach ($urls as $url) {
    echo "  <url>\n";
    echo '    <loc>' . htmlspecialchars($url['loc'], ENT_XML1) . "</loc>\n";
    echo '    <lastmod>' . htmlspecialchars($url['lastmod'], ENT_XML1) . "</lastmod>\n";
    echo "  </url>\n";
}
echo '</urlset>';
