AddEventHandler("main", "OnPageStart", function () { if (defined("ADMIN_SECTION") && ADMIN_SECTION === true) { return; } $requestUri = isset($_SERVER["REQUEST_URI"]) ? $_SERVER["REQUEST_URI"] : "/"; $path = parse_url($requestUri, PHP_URL_PATH); if (!is_string($path) || $path === "") { $path = "/"; } $query = array(); $queryString = parse_url($requestUri, PHP_URL_QUERY); if (is_string($queryString) && $queryString !== "") { parse_str($queryString, $query); } $redirectRequired = false; foreach (array("check", "codexcheck", "seo_check") as $parameter) { if (array_key_exists($parameter, $query)) { unset($query[$parameter]); $redirectRequired = true; } } if ($path === "/") { if (isset($query["rowjs"]) && (string) $query["rowjs"] === "4") { unset($query["rowjs"]); $redirectRequired = true; } if (isset($query["ID"]) && (string) $query["ID"] === "362") { unset($query["ID"]); $redirectRequired = true; } } if (!$redirectRequired) { return; } $target = $path; if (!empty($query)) { $target .= "?" . http_build_query($query, "", "&", PHP_QUERY_RFC3986); } LocalRedirect($target, true, "301 Moved Permanently"); }); AddEventHandler("main", "OnEpilog", function () { if (defined("ADMIN_SECTION") && ADMIN_SECTION === true) { return; } global $APPLICATION; if (defined("ERROR_404") && ERROR_404 === "Y") { if (!headers_sent()) { \CHTTP::SetStatus("404 Not Found"); header("X-Robots-Tag: noindex, follow", true); } $APPLICATION->SetTitle("Страница не найдена"); $APPLICATION->SetPageProperty("title", "Страница не найдена — Newport"); $APPLICATION->SetPageProperty( "description", "Запрашиваемая страница не найдена. Перейдите в каталог светильников Newport." ); $APPLICATION->SetPageProperty("robots", "noindex, follow"); return; } $requestUri = isset($_SERVER["REQUEST_URI"]) ? $_SERVER["REQUEST_URI"] : "/"; $path = parse_url($requestUri, PHP_URL_PATH); if (!is_string($path) || $path === "") { $path = "/"; } $query = array(); $queryString = parse_url($requestUri, PHP_URL_QUERY); if (is_string($queryString) && $queryString !== "") { parse_str($queryString, $query); } $page1 = isset($query["PAGEN_1"]) ? (int) $query["PAGEN_1"] : 0; $page2 = isset($query["PAGEN_2"]) ? (int) $query["PAGEN_2"] : 0; $page = max($page1, $page2); if (preg_match("#^/catalog/novyserii/(\d+)/?$#", $path, $match)) { $seriesId = (int) $match[1]; $seriesName = ""; if (CModule::IncludeModule("iblock")) { $sectionResult = CIBlockSection::GetByID($seriesId); if ($section = $sectionResult->GetNext()) { $seriesName = trim((string) $section["NAME"]); } if ($seriesName === "") { $elementResult = CIBlockElement::GetByID($seriesId); if ($element = $elementResult->GetNext()) { $seriesName = trim((string) $element["NAME"]); } } } if ($seriesName === "" || mb_strtolower($seriesName) === "серии") { $seriesName = "№" . $seriesId; } $seriesHeading = "Серия " . $seriesName . " Newport"; $APPLICATION->SetTitle($seriesHeading); $APPLICATION->SetPageProperty("title", $seriesHeading . " — официальный сайт производителя"); $APPLICATION->SetPageProperty( "description", $seriesHeading . ": модели, фотографии, характеристики и рекомендованные цены на официальном сайте производителя." ); } $projectNames = array( 19425 => "Квартира Москва", 19554 => "Квартира Москва", 9053 => "Квартира Москва", 19021 => "Выставка", 19022 => "Выставка", 19424 => "Квартира в Москве", 353 => "Квартира в Москве", 19419 => "Частный дом в Москве", 19420 => "Частный дом в Москве" ); if (preg_match("#^/news/blog/(\d+)/?$#", $path, $match)) { $articleId = (int) $match[1]; if (isset($projectNames[$articleId])) { $projectTitle = $projectNames[$articleId] . " — проект Newport №" . $articleId; $APPLICATION->SetPageProperty("title", $projectTitle); $APPLICATION->SetPageProperty( "description", $projectTitle . ": интерьер с использованием светильников Newport, фотографии и идеи освещения." ); } } if (preg_match("#^/news/projects/354/?$#", $path)) { $projectTitle = "Проект Newport №354"; $APPLICATION->SetPageProperty("title", $projectTitle); $APPLICATION->SetPageProperty( "description", $projectTitle . ": реализованный проект освещения, фотографии интерьера и светильников Newport." ); } $description = trim((string) $APPLICATION->GetPageProperty("description")); $normalizedDescription = preg_replace( "/\s+/u", " ", html_entity_decode(strip_tags($description), ENT_QUOTES, "UTF-8") ); if ($description === "" || mb_stripos($normalizedDescription, "широкий ассортимент светильников") !== false) { $title = trim((string) $APPLICATION->GetPageProperty("title")); if ($title === "") { $title = trim((string) $APPLICATION->GetTitle(false)); } $cleanTitle = preg_replace("/\s+/u", " ", strip_tags($title)); if ($cleanTitle !== "") { $APPLICATION->SetPageProperty( "description", $cleanTitle . ". Светильники Newport: фотографии, характеристики и рекомендованные цены на официальном сайте производителя." ); } } if ($page >= 2) { $pageMarker = "страница " . $page; $title = trim((string) $APPLICATION->GetPageProperty("title")); if ($title === "") { $title = trim((string) $APPLICATION->GetTitle(false)); } if ($title !== "" && mb_stripos($title, $pageMarker) === false) { $APPLICATION->SetPageProperty("title", $title . " — " . $pageMarker); } $description = trim((string) $APPLICATION->GetPageProperty("description")); if ($description !== "" && mb_stripos($description, $pageMarker) === false) { $APPLICATION->SetPageProperty( "description", rtrim($description, " \t\n\r\0\x0B.") . ". Страница " . $page . "." ); } } }); При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php