<?php
declare(strict_types=1);

/*
 * IMAGE SITEMAP GENERATOR (PROFILE BASED)
 * uploads/{KOD}/ klasöründeki görselleri
 * ilan.php?user=KOD sayfasına bağlar
 */

$baseDomain = 'https://vitrinprenses-com-vtrn46.xyz';
$uploadsFs  = '/var/www/vitrin/uploads';
$outFile    = '/var/www/vitrinprenses/image-sitemap.xml';

// PROFİL SAYFA FORMATI (seninki bu 👇)
$profileUrlTemplate = $baseDomain . '/ilan.php?user=%s';

// Desteklenen uzantılar
$allowedExt = ['jpg','jpeg','png','webp'];

$xml = [];
$xml[] = '<?xml version="1.0" encoding="UTF-8"?>';
$xml[] = '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">';

$dir = opendir($uploadsFs);
if (!$dir) {
    die('Uploads klasörü açılamadı');
}

while (($user = readdir($dir)) !== false) {
    if ($user === '.' || $user === '..') continue;

    $userDir = $uploadsFs . '/' . $user;
    if (!is_dir($userDir)) continue;

    $images = [];

    foreach (glob($userDir . '/*.{jpg,jpeg,png,webp}', GLOB_BRACE) as $img) {
        $rel = str_replace($uploadsFs, '', $img);
        $images[] = $baseDomain . '/uploads' . str_replace('\\', '/', $rel);
    }

    if (!$images) continue;

    // profile görselini öne al
    usort($images, function ($a, $b) {
        return (stripos($a, 'profile') !== false ? -1 : 1);
    });

    $profileUrl = sprintf($profileUrlTemplate, rawurlencode($user));

    $xml[] = '  <url>';
    $xml[] = '    <loc>' . htmlspecialchars($profileUrl, ENT_QUOTES) . '</loc>';

    foreach ($images as $imgUrl) {
        $xml[] = '    <image:image>';
        $xml[] = '      <image:loc>' . htmlspecialchars($imgUrl, ENT_QUOTES) . '</image:loc>';
        $xml[] = '    </image:image>';
    }

    $xml[] = '  </url>';
}

closedir($dir);

$xml[] = '</urlset>';

file_put_contents($outFile, implode("\n", $xml));

echo "OK: image-sitemap.xml PROFİL BAZLI üretildi\n";
