<?php require_once "config.php"; require_once "includes/slug_helper.php"; header("Content-Type: application/xml; charset=utf-8"); $base_url = 'https://tokobandung.com'; $current_date = date("Y-m-d\TH:i:s+07:00"); echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; ?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <?php // Static pages - SEO-friendly URLs $static_pages = [ ['url' => '/', 'priority' => '1.0', 'changefreq' => 'daily'], ['url' => '/tentang-kami', 'priority' => '0.8', 'changefreq' => 'monthly'], ['url' => '/hubungi-kami', 'priority' => '0.8', 'changefreq' => 'monthly'], ['url' => '/bantuan', 'priority' => '0.8', 'changefreq' => 'monthly'], ['url' => '/info-pengiriman', 'priority' => '0.7', 'changefreq' => 'monthly'], ['url' => '/kebijakan-privasi', 'priority' => '0.5', 'changefreq' => 'yearly'], ['url' => '/syarat-ketentuan', 'priority' => '0.5', 'changefreq' => 'yearly'], ['url' => '/products.php', 'priority' => '0.9', 'changefreq' => 'daily'], ['url' => '/produk-fisik', 'priority' => '0.8', 'changefreq' => 'daily'], ['url' => '/produk-digital', 'priority' => '0.8', 'changefreq' => 'daily'], ['url' => '/login.php', 'priority' => '0.3', 'changefreq' => 'yearly'], ['url' => '/register.php', 'priority' => '0.3', 'changefreq' => 'yearly'], ['url' => '/cart.php', 'priority' => '0.6', 'changefreq' => 'daily'], ['url' => '/checkout.php', 'priority' => '0.5', 'changefreq' => 'monthly'], ['url' => '/panentas', 'priority' => '0.8', 'changefreq' => 'monthly'], ]; foreach ($static_pages as $page) { echo " <url>" . "\n"; echo " <loc>" . $base_url . $page['url'] . "</loc>" . "\n"; echo " <lastmod>" . $current_date . "</lastmod>" . "\n"; echo " <changefreq>" . $page['changefreq'] . "</changefreq>" . "\n"; echo " <priority>" . $page['priority'] . "</priority>" . "\n"; echo " </url>" . "\n"; } // Product categories (only if category column exists) $check_category = $conn->query("SHOW COLUMNS FROM products LIKE 'category'"); if ($check_category && $check_category->num_rows > 0) { $query = "SELECT DISTINCT category FROM products WHERE status = 'active' AND category IS NOT NULL AND category != ''"; $result = $conn->query($query); if ($result && $result->num_rows > 0) { while ($category = $result->fetch_assoc()) { $category_slug = createSlug($category['category']); $category_url = $base_url . "/kategori/" . $category_slug; echo " <url>" . "\n"; echo " <loc>" . htmlspecialchars($category_url) . "</loc>" . "\n"; echo " <lastmod>" . $current_date . "</lastmod>" . "\n"; echo " <changefreq>weekly</changefreq>" . "\n"; echo " <priority>0.6</priority>" . "\n"; echo " </url>" . "\n"; } } } // Products $query = "SELECT id, name, slug, updated_at FROM products WHERE status = 'active' AND display = 'Ya' ORDER BY updated_at DESC"; $result = $conn->query($query); if ($result && $result->num_rows > 0) { while ($product = $result->fetch_assoc()) { // Use slug from database, fallback to generated slug $slug = !empty($product['slug']) ? $product['slug'] : createSlug($product['name']); $product_url = $base_url . "/produk/" . $slug; $lastmod = date("Y-m-d\TH:i:s+07:00", strtotime($product["updated_at"])); echo " <url>" . "\n"; echo " <loc>" . htmlspecialchars($product_url) . "</loc>" . "\n"; echo " <lastmod>" . $lastmod . "</lastmod>" . "\n"; echo " <changefreq>weekly</changefreq>" . "\n"; echo " <priority>0.7</priority>" . "\n"; echo " </url>" . "\n"; } } ?> </urlset>