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" і видаємо його відповіддю сервера.