<?php
/* Sitemap генерируется на лету: список структурных страниц описан здесь и
   правится разработчиком при добавлении новых разделов, а новости (самый
   часто меняющийся контент) подтягиваются прямо из data/news/*.json — файл
   не может устареть сам по себе, когда методист публикует или удаляет
   новость через админку. Чтобы .xml исполнялся как PHP — см. .htaccess
   (боевой сервер) и router.php (локальный php -S). */
header('Content-Type: application/xml; charset=UTF-8');
require __DIR__ . '/partials/news-lib.php';

$BASE = 'https://markovo-school.ru';

$pages = [
  ['/index.html', '1.0', 'weekly'],

  // Приём в школу
  ['/priem/index.html', '0.9', 'monthly'],

  // Сведения об ОО
  ['/sveden/common.html', '0.9', 'monthly'],
  ['/sveden/struct.html', '0.6', 'monthly'],
  ['/sveden/document.html', '0.7', 'monthly'],
  ['/sveden/education.html', '0.7', 'monthly'],
  ['/sveden/eduStandarts.html', '0.5', 'yearly'],
  ['/sveden/leadership.html', '0.6', 'monthly'],
  ['/sveden/employees.html', '0.7', 'monthly'],
  ['/sveden/objects.html', '0.6', 'monthly'],
  ['/sveden/grants.html', '0.5', 'yearly'],
  ['/sveden/paid_edu.html', '0.6', 'monthly'],
  ['/sveden/budget.html', '0.6', 'monthly'],
  ['/sveden/municipal.html', '0.6', 'monthly'],
  ['/sveden/vacant.html', '0.6', 'weekly'],
  ['/sveden/ovz.html', '0.5', 'monthly'],
  ['/sveden/inter.html', '0.4', 'yearly'],
  ['/sveden/catering.html', '0.6', 'monthly'],

  // Кадетское образование
  ['/kadet/index.html', '0.8', 'monthly'],
  ['/kadet/project.html', '0.6', 'yearly'],
  ['/kadet/priem.html', '0.7', 'monthly'],
  ['/kadet/documents.html', '0.6', 'yearly'],
  ['/kadet/mtb.html', '0.5', 'yearly'],
  ['/kadet/rasporyadok.html', '0.5', 'yearly'],
  ['/kadet/vneurochka.html', '0.5', 'yearly'],
  ['/kadet/muzej.html', '0.5', 'yearly'],

  // Точка роста
  ['/tochka-rosta/index.html', '0.8', 'monthly'],
  ['/tochka-rosta/documents.html', '0.6', 'yearly'],
  ['/tochka-rosta/programs.html', '0.6', 'monthly'],
  ['/tochka-rosta/teachers.html', '0.6', 'monthly'],
  ['/tochka-rosta/mtb.html', '0.5', 'yearly'],
  ['/tochka-rosta/rezhim.html', '0.5', 'yearly'],
  ['/tochka-rosta/events.html', '0.7', 'weekly'],
  ['/tochka-rosta/info.html', '0.5', 'monthly'],
  ['/tochka-rosta/feedback.html', '0.5', 'monthly'],

  // Питание
  ['/catering/index.html', '0.8', 'weekly'],
  ['/catering/organizer.html', '0.5', 'yearly'],
  ['/catering/menu.html', '0.8', 'weekly'],
  ['/catering/npa.html', '0.5', 'yearly'],
  ['/catering/kontrol.html', '0.6', 'monthly'],
  ['/catering/kultura.html', '0.5', 'yearly'],
  ['/catering/faq.html', '0.6', 'monthly'],

  // Школьный музей
  ['/museum/index.html', '0.7', 'monthly'],

  // Отдых и оздоровление детей
  ['/otdyh-lager/index.html', '0.7', 'monthly'],
  ['/otdyh-lager/documents.html', '0.5', 'yearly'],
  ['/otdyh-lager/team.html', '0.5', 'yearly'],
  ['/otdyh-lager/activities.html', '0.6', 'monthly'],
  ['/otdyh-lager/mtb.html', '0.5', 'yearly'],
  ['/otdyh-lager/services.html', '0.5', 'yearly'],
  ['/otdyh-lager/contacts.html', '0.5', 'yearly'],

  // Родителям
  ['/roditelyam/marshrut.html', '0.7', 'monthly'],
  ['/roditelyam/gia.html', '0.7', 'monthly'],
  ['/roditelyam/proforientaciya.html', '0.6', 'monthly'],
  ['/roditelyam/pomosch.html', '0.6', 'monthly'],
  ['/roditelyam/avtobus.html', '0.6', 'monthly'],
  ['/roditelyam/bezopasnost.html', '0.6', 'monthly'],
  ['/roditelyam/infobezopasnost.html', '0.5', 'yearly'],
  ['/roditelyam/profilaktika.html', '0.5', 'yearly'],

  // Детский сад «Источник»
  ['/sadik/index.html', '0.8', 'monthly'],
  ['/sadik/pitanie.html', '0.6', 'monthly'],
  ['/sadik/roditelyam.html', '0.7', 'monthly'],
  ['/sadik/prosveshchenie.html', '0.6', 'monthly'],
  ['/sadik/bezopasnost.html', '0.6', 'monthly'],
  ['/sadik/fop.html', '0.5', 'yearly'],
  ['/sadik/god-do.html', '0.5', 'monthly'],
];

function sm_url($loc, $priority, $changefreq, $lastmod = null) {
  $out = '  <url><loc>' . htmlspecialchars($loc, ENT_QUOTES, 'UTF-8') . '</loc>';
  if ($lastmod) $out .= '<lastmod>' . htmlspecialchars($lastmod, ENT_QUOTES, 'UTF-8') . '</lastmod>';
  $out .= '<priority>' . $priority . '</priority><changefreq>' . $changefreq . '</changefreq></url>';
  return $out;
}

echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n\n";

foreach ($pages as $p) {
  echo sm_url($BASE . $p[0], $p[1], $p[2]), "\n";
}

/* Новости — лента (обе версии) и все опубликованные записи из JSON. */
echo "\n  <!-- Новости -->\n";
echo sm_url($BASE . '/news/index.html', '0.8', 'daily'), "\n";
echo sm_url($BASE . '/news/index.html?mode=sadik', '0.7', 'daily'), "\n";

foreach (['shkola', 'sadik'] as $mode) {
  foreach (news_load($mode) as $item) {
    if (empty($item['id'])) continue;
    $loc = $BASE . '/news/item.html?mode=' . $mode . '&id=' . $item['id'];
    $lastmod = isset($item['date']) ? $item['date'] : null;
    echo sm_url($loc, '0.6', 'monthly', $lastmod), "\n";
  }
}

echo "\n" . '</urlset>';
