<?php
/**
 * 自动生成网站地图 sitemap.xml
 * 包含新闻、政策、项目等主要页面
 */

// 确保以XML格式输出
header('Content-Type: application/xml; charset=utf-8');

// 数据库连接
require_once 'includes/db_connect.php';

// 网站基础URL
$baseUrl = 'http://www.gyjgc.cn/';

// 开始生成XML
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

/**
 * 添加URL到站点地图
 * @param string $loc URL地址
 * @param string $lastmod 最后修改时间 (YYYY-MM-DD)
 * @param string $changefreq 更改频率
 * @param float $priority 优先级 (0.0-1.0)
 */
function addUrl($loc, $lastmod = null, $changefreq = 'daily', $priority = 0.5) {
    echo '  <url>';
    echo '<loc>' . htmlspecialchars($loc) . '</loc>';
    if ($lastmod) {
        echo '<lastmod>' . htmlspecialchars($lastmod) . '</lastmod>';
    }
    echo '<changefreq>' . htmlspecialchars($changefreq) . '</changefreq>';
    echo '<priority>' . htmlspecialchars($priority) . '</priority>';
    echo '  </url>';
}

// 1. 首页及静态页面（高优先级）
addUrl($baseUrl, date('Y-m-d'), 'daily', 1.0);
addUrl($baseUrl . 'about.php', date('Y-m-d'), 'weekly', 0.8);
addUrl($baseUrl . 'news.php', date('Y-m-d'), 'daily', 0.8);
addUrl($baseUrl . 'policies.php', date('Y-m-d'), 'weekly', 0.8);
addUrl($baseUrl . 'projects.php', date('Y-m-d'), 'weekly', 0.8);
addUrl($baseUrl . 'contact.php', date('Y-m-d'), 'monthly', 0.7);

// 2. 新闻详情页
try {
    $newsStmt = $pdo->query("SELECT slug, publish_date FROM news WHERE is_published = 1 ORDER BY publish_date DESC");
    while ($news = $newsStmt->fetch()) {
        $url = $baseUrl . 'news_detail.php?slug=' . $news['slug'];
        $lastmod = date('Y-m-d', strtotime($news['publish_date']));
        addUrl($url, $lastmod, 'weekly', 0.6);
    }
} catch (PDOException $e) {
    // 错误处理，不影响其他内容生成
}

// 3. 政策详情页
try {
    $policyStmt = $pdo->query("SELECT slug, issue_date FROM policies WHERE is_published = 1 ORDER BY issue_date DESC");
    while ($policy = $policyStmt->fetch()) {
        $url = $baseUrl . 'policy_detail.php?slug=' . $policy['slug'];
        $lastmod = date('Y-m-d', strtotime($policy['issue_date']));
        addUrl($url, $lastmod, 'monthly', 0.6);
    }
} catch (PDOException $e) {
    // 错误处理
}

// 4. 项目详情页
try {
    $projectStmt = $pdo->query("SELECT slug, updated_at FROM projects WHERE is_published = 1 ORDER BY updated_at DESC");
    while ($project = $projectStmt->fetch()) {
        $url = $baseUrl . 'project_detail.php?slug=' . $project['slug'];
        $lastmod = date('Y-m-d', strtotime($project['updated_at']));
        addUrl($url, $lastmod, 'monthly', 0.5);
    }
} catch (PDOException $e) {
    // 错误处理
}

echo '</urlset>';
?>