UNIX_TIMESTAMP()' : ''; // Начало $_start = 0; // Конец $_end = 2000; // Часть $parts = 1; $changefreq = array( '0' => 'always', '1' => 'hourly', '2' => 'daily', '3' => 'weekly', '4' => 'monthly', '5' => 'yearly', '6' => 'never' ); if (! isset($_REQUEST['id'])): // Вытаскиваем кол-во документов $sql = " SELECT STRAIGHT_JOIN COUNT(doc.Id) AS count FROM " . PREFIX . "_documents AS doc LEFT JOIN " . PREFIX . "_rubrics AS rub ON rub.Id = doc.rubric_id LEFT JOIN " . PREFIX . "_rubric_templates AS tmpl ON tmpl.rubric_id = rub.Id LEFT JOIN " . PREFIX . "_rubric_permissions AS rubperm ON rubperm.rubric_id = rub.Id WHERE # Не пустой шаблон (rub.rubric_template NOT LIKE '' OR tmpl.template NOT LIKE '') # Статус документа = 1 AND doc.document_status = 1 # Документ не удален AND doc.document_deleted = 1 $publish # Документ не равен 1 AND doc.Id != 1 # Документ не равен 404 ошибке AND doc.Id != " . PAGE_NOT_FOUND_ID . " # Документы разрешены для индексации AND (document_meta_robots NOT LIKE '%noindex%' or document_meta_robots NOT LIKE '%nofollow%') # Разрешены для просмотра гостям AND (rubperm.user_group_id = 2 AND rubperm.rubric_permission LIKE '%docread%') "; $num = $AVE_DB->Query($sql, SITEMAP_CACHE_LIFETIME, 'sitemap')->GetCell(); if ($num > $_end) $parts = ceil($num/$_end); header ('Content-type: text/xml'); echo '' . PHP_EOL; echo '' . PHP_EOL; for ($i = 1; $i <= $parts; $i++): ?> '; else: ?> 1) $_start = ((int)$_REQUEST['id']-1) * $_end; $sql = " SELECT STRAIGHT_JOIN doc.Id, doc.document_alias, doc.document_published, doc.document_changed, doc.document_sitemap_freq, doc.document_sitemap_pr FROM " . PREFIX . "_documents AS doc LEFT JOIN " . PREFIX . "_rubrics AS rub ON rub.Id = doc.rubric_id LEFT JOIN " . PREFIX . "_rubric_templates AS tmpl ON tmpl.rubric_id = rub.Id LEFT JOIN " . PREFIX . "_rubric_permissions AS rubperm ON rubperm.rubric_id = rub.Id WHERE # Не пустой шаблон (rub.rubric_template NOT LIKE '' OR tmpl.template NOT LIKE '') # Статус документа = 1 AND doc.document_status = 1 # Документ не удален AND doc.document_deleted = 1 $publish # Документ не равен 1 AND doc.Id != 1 # Документ не равен 404 ошибке AND doc.Id != " . PAGE_NOT_FOUND_ID . " # Документы разрешены для индексации AND (document_meta_robots NOT LIKE '%noindex%' or document_meta_robots NOT LIKE '%nofollow%') # Разрешены для просмотра гостям AND (rubperm.user_group_id = 2 AND rubperm.rubric_permission LIKE '%docread%') GROUP BY doc.Id ORDER BY doc.document_published ASC LIMIT ".$_start.",".$_end."; "; $res = $AVE_DB->Query($sql, SITEMAP_CACHE_LIFETIME, 'sitemap', true, '.limit'); if (! $res->NumRows() && (int)$_REQUEST['id'] != 1) { report404(); $AVE_DB->clearCurrentCache('sitemap', $sql, '.limit'); header ($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found', true); exit; } header ('Content-type: text/xml'); echo '' . PHP_EOL; echo '' . PHP_EOL; if ((int)$_REQUEST['id'] == 1): ?> weekly 0.8 FetchAssocArray()): $document_alias = $abs_path . $row['document_alias'] . URL_SUFF; $document_alias = HOST . str_ireplace($abs_path . '/' . URL_SUFF, '/', $document_alias); $date = $row["document_published"] ? date("c", $row["document_published"]) : date("c"); ?>