') === false) { return; } $requestUri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '/'; $path = parse_url($requestUri, PHP_URL_PATH); $path = is_string($path) && $path !== '' ? $path : '/'; if (!preg_match('#^/catalog/(?:.+/)?\d+/?$#i', $path)) { return; } // Verified new price-list card: keep its explicitly saved Bitrix SEO title. // The legacy fallback remains unchanged for every other product URL. if (preg_match('#/(?:4147|4148|4149|4150|4151|4152|4153|4154|4155|4156|4157|4158|4160|4161|4162|4167|4168|4169|4170|4171|4172|4173|4174|4175|4176|4177|4178|4179|4180|4181|4182|4183|4184|4185|4186|4187|4188|4189|4190|4191|4192|4193|4194|4195|4196|4197|4198|4199|4200|4201|4202|4203|4204|4205|4206|4207|4208|4209|4210|4211|4212|4213|4214|4215|4216|4217|4218|4219|4220|4221|4222|4223|4224|4225|4226|4227|4228|4229|4230|4231|4232|4233|4234|4235|4236|4237|4238|4239|4240|4241|4242|4243|4244|4245|4246|4247|4248|4249|4250|4251|4252|4253|4254|4255|4256|4257|4258|4259|4260|4261|4262|4263|4264|4265|4266|4267|4268|4269|4270|4271|4272|4273|4274|4275|4276|4277|4278|4279|4280|4281|4282|4283|4284|4285|4286|4287|4288|4289|4290|4291|4292)/?$#', $path)) { return; } if (!preg_match('#]*\bitemprop\s*=\s*["\']sku["\'][^>]*\bcontent\s*=\s*["\']([^"\']+)#i', $content, $skuMatch)) { return; } $sku = trim(html_entity_decode($skuMatch[1], ENT_QUOTES, 'UTF-8')); if ($sku === '') { return; } $name = ''; if (preg_match('#]*>(.*?)#is', $content, $h1Match)) { $name = trim(html_entity_decode(strip_tags($h1Match[1]), ENT_QUOTES, 'UTF-8')); } if ($name === '' && preg_match('#]*>(.*?)#is', $content, $titleMatch)) { $name = trim(html_entity_decode(strip_tags($titleMatch[1]), ENT_QUOTES, 'UTF-8')); $name = preg_replace('#,\s*арт\.\s*' . preg_quote($sku, '#') . '.*$#ui', '', $name); $name = preg_replace('#\s+купить\s+оптом.*$#ui', '', $name); $name = trim($name); } if ($name === '') { return; } $titleName = $name; $titleSuffix = ', арт. ' . $sku . ' | РусПак'; if (mb_strlen($titleName . $titleSuffix, 'UTF-8') > 70) { $shortName = preg_replace('#[,;].*$#u', '', $titleName); if (is_string($shortName) && trim($shortName) !== '') { $titleName = trim($shortName); } } if (mb_strlen($titleName . $titleSuffix, 'UTF-8') > 70) { $limit = max(24, 70 - mb_strlen($titleSuffix, 'UTF-8')); $cut = mb_substr($titleName, 0, $limit + 1, 'UTF-8'); $cut = preg_replace('#\s+\S*$#u', '', $cut); $titleName = trim(is_string($cut) && $cut !== '' ? $cut : mb_substr($titleName, 0, $limit, 'UTF-8')); } $pageTitle = htmlspecialchars($titleName . $titleSuffix, ENT_QUOTES, 'UTF-8'); $content = preg_replace('#]*>.*?#is', '', $content, 1); } // BEGIN HERMES SEO V2.3 META DESCRIPTION FALLBACK // Scope: exact SEO V2.3 product URLs only. Does not change H1, Title, canonical, schema, robots, or other pages. AddEventHandler('main', 'OnEndBufferContent', 'RospacksHermesSeoV23MetaDescriptionFallback', 30000); function RospacksHermesSeoV23MetaDescriptionFallback(&$content) { if (PHP_SAPI === 'cli' || !is_string($content) || $content === '') { return; } $path = parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH) ?: '/'; $map = array( '/catalog/bagazhnye_birki/1976/' => 'Картонная бирка 45×90 мм, артикул 0003061. Для оптового расчёта укажите тираж, способ крепления и требования к печати и отделке.', '/catalog/chekovaya_lenta/1182/' => 'Чековая лента 57×14 — ролики для касс, артикул 0004311, производство — Россия. Перед заказом сверьте формат с моделью оборудования.', '/catalog/ekolotki/2837/' => 'Лоток на две ячейки для овощей и фруктов калибром до 70 мм, артикул 16008. Для расчёта укажите продукт, калибр и объём партии.', '/catalog/kontreynery_lotki/1531/' => 'Белый лоток Е25/01 формата 180×135×25, артикул 0003700. Для подбора укажите назначение, способ упаковки и требуемый объём.', '/catalog/pakety/1733/' => 'Фасовочные пакеты 26×35 «Экстра» в евроблоке, артикул 15453. При заказе уточните материал, толщину, количество и требования к нагрузке.', '/catalog/ribbony/1514/' => 'Риббон WAX 108×74 — термотрансферная лента воскового типа, артикул 0003652. Перед заказом сверьте намотку, втулку и модель принтера.' ); if (!isset($map[$path])) { return; } $desc = htmlspecialchars($map[$path], ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); $tag = ''; if (preg_match('#]*\bname\s*=\s*["\']description["\'])[^>]*>#i', $content)) { $content = preg_replace('#]*\bname\s*=\s*["\']description["\'])[^>]*>#i', $tag, $content, 1); } else { $content = preg_replace('##i', $tag . " ", $content, 1); } } // END HERMES SEO V2.3 META DESCRIPTION FALLBACK
[RuntimeException] 
Could not start session because headers have already been sent. "/home/c/cq22175/rospacks.ru/public_html/local/php_interface/init.php":1. (0)
/home/c/cq22175/rospacks.ru/public_html/bitrix/modules/main/lib/session/session.php:143
#0: Bitrix\Main\Session\Session->start()
	/home/c/cq22175/rospacks.ru/public_html/bitrix/modules/main/lib/session/kernelsessionproxy.php:47
#1: Bitrix\Main\Session\KernelSessionProxy->start()
	/home/c/cq22175/rospacks.ru/public_html/bitrix/modules/main/include.php:182
#2: require_once(string)
	/home/c/cq22175/rospacks.ru/public_html/bitrix/modules/main/include/prolog_before.php:19
#3: require_once(string)
	/home/c/cq22175/rospacks.ru/public_html/bitrix/modules/main/include/prolog.php:10
#4: require_once(string)
	/home/c/cq22175/rospacks.ru/public_html/bitrix/header.php:1
#5: require(string)
	/home/c/cq22175/rospacks.ru/public_html/company/news/index.php:2
----------