lie2
@lie2

Как и где вызывается событие «BeforeIndex» (перед индексацией) элемента методом CSearch::Index?

Доброго времени суток!
Нашел статью: https://camouf.ru/blog-note/3081/ и всё вроде понятно, но смутил текст:
воспользовавшись событием "BeforeIndex" который вызывается перед индексацией элемента методом CSearch::Index

Как и где его можно/нужно вызвать BeforeIndex?
в файл init все написал, у меня тут 11, а не 48 /// $arrIblock = array(48); ///
AddEventHandler("search", "BeforeIndex", "BeforeIndexHandler");
	function BeforeIndexHandler($arFields) {
	    $arrIblock = array(48);
	    $arDelFields = array("DETAIL_TEXT", "PREVIEW_TEXT") ;
	    if (CModule::IncludeModule('iblock') && $arFields["MODULE_ID"] == 'iblock' && in_array($arFields["PARAM2"], $arrIblock) && intval($arFields["ITEM_ID"]) > 0){
	    $dbElement = CIblockElement::GetByID($arFields["ITEM_ID"]) ;
	    if ($arElement = $dbElement->Fetch()){
	        foreach ($arDelFields as $value){
	        if (isset ($arElement[$value]) && strlen($arElement[$value]) > 0){
	            $arFields["BODY"] = str_replace (CSearch::KillTags($arElement[$value]) , "", CSearch::KillTags($arFields["BODY"]) );
	            }
	        }
	    }
	    return $arFields;
	    }
	}
  • Вопрос задан
  • 41 просмотр
Решения вопроса 2
@MiXaLiN17
Запускаешь /bitrix/admin/search_reindex.php?lang=ru и оно у тебя отработает
Ответ написан
udjin123
@udjin123
Работаю с bitrix
Запустите полную переиндексацию сайта.
В админке: Настройки -> Поиск -> Переиндексация

5e5f6c265d0d4722612158.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы