Как настроить поиск в Битриксе по включаемым областям
12 августа 2024
BXmeta
В статье рассказывается, как решить эту проблему и настроить корректный поиск текста по включаемым областям. Узнайте, как обеспечить полную индексацию вашего контента и улучшить результаты поиска на сайте.
Решение
<?php
$eventManager = Main\EventManager::getInstance();
$eventManager->addEventHandler(
'search',
'BeforeIndex',
['searchProcessing', 'beforeIndexHandler']
);
class searchProcessing
{
const SITE_DOMAIN = 'https://bxcode.ru'; //адрес сайта
static function beforeIndexHandler($arFields)
{
if ($arFields["MODULE_ID"] == "main") {
if (strpos($arFields['URL'], 'index.php') !== false) {
$content = file_get_contents(self::SITE_DOMAIN . $arFields['URL']);
// Удаление ненужных тегов из HTML-кода
$pattern = '/<head.*?>.*?<\/head>|<header.*?>.*?<\/header>|<footer.*?>.*?<\/footer>/is';
$content = preg_replace($pattern, '', $content);;
$arFields['BODY'] = CSearch::KillTags($content);
}
}
return $arFields;
}
}
Если используется многосайтовость, код решения потребует доработки.