Sitemap

При зверненні до "/sitemap.xml" запит передається файлу "index.php" (статичного файлу немає), підключається "/1/core/sitemap.php".>

У ньому вказано опцію: «$gzip=1» — що стискати файли томів картки в архіви, а якщо «$gzip=0» — не стискати.

За наявності файлу "/1/tmp /sitemap.txt" читається дата цього файлу і в змінну $t записується його "вік" за секунди.

Видається заголовок відповіді сервера: "Content-Type: application/xml".

Якщо існує файл і "вік" файлу sitemap.txt менше заданого часу (години або більше) і немає параметра запиту "w" (переписати безумовно), то читається відповіддю сервера текст файлу та завершуємо.

Інакше підключаємо "/1/core/class.db.php" і звертаємося до бази даних.

«$cL=count($Langs)» — кількість мов сайту, якщо більше однієї, то масив тексту XML формується згідно з вимогами мультимовної карти сайту GOOGLE:
Кожен елемент «url» повинен включати тег «loc», який вказує на URL-адреси, і поделемент xhtml:link rel="alternate" hreflang="XX" для кожної альтернативної версії сторінки, включаючи себе.

    Тоді для мультимовної карти сайту:
  • Додатковий атрибут тега «urlset» (xmlns:xhtml)
  • Головна сторінка (index) представлена ​​у вигляді:
    <url>
    	<loc>https://'.$_SERVER["SERVER_NAME"].'</loc>
    	<xhtml:link rel="alternate" hreflang="en" href="'.$_SERVER["SERVER_NAME"].'/en/" />
    	<xhtml:link rel="alternate" hreflang="uk" href="'.$_SERVER["SERVER_NAME"].'/" />
    </url>
  • Аналогічно кожна сторінка <url> в карті сайту містить варіант на основній мові сайту — <loc>https://=…</loc>, і — якщо є URL варіантів іншими мовами сайту — <xhtml:link rel="alternate" hreflang="…" href="…" />. li>

Запитуємо з бази даних id та url сторінок зі статусом "видимий" (v=1) і не порожнім url, формуємо циклом масив рядків картки.

Якщо сторінок більше заданого значення (за стандартом максимум url 50 тисяч, задаємо «40000/$cL»), то ділимо карту на частини (томи): лічильник $j вважає томи. лічильник $i вважає сторінки (або мовні набори сторінок), файли томів зберігаються в папці /sitemap, створюється масив рядків індексу картки.

Якщо сторінок менше цього заданого значення, то масив результату циклу — звичайна картка сайту.

Записуємо масив у "sitemap.txt" і видаємо його відповіддю сервера.