Документация для разработчиков

OnReIndex

bool
функция-обработчик( array NS, string oCallback, string callback_method );

Событие "OnReindex" вызывается во время переиндексации данных модуля методами CSearch::ReindexModule или CSearch::ReIndexAll.

Параметры

Параметр Описание
NS Массив в котором передается информация о начале текущего шага.
  • MODULE - идентификатор модуля;
  • ID - идентификатор элемента;
  • SITE_ID - массив сайтов;
oCallback Объект модуля поиска для вызова метода индексации элемента.
callback_method Метод объекта модуля поиска для индексации элемента.

См. также

Пример функции-обработчика:

<?

// регистрируем обработчик события "OnReindex" модуля "search"
RegisterModuleDependences("search", "OnReindex", "my_module", "CMyModule", "OnReindex");

// создаем в модуле my_module в классе CMyModule функцию-метод OnReindex
function OnReindex($NS, $oCallback, $callback_method)
{
global $DB;

$NS["ID"] = intval($NS["ID"]);
if($NS["MODULE"]=="my_module" && $NS["ID"] > 0)
$strWhere = "WHERE ID > ".$NS["ID"];
else
$strWhere = "";

$strSql =
"SELECT FT.ID, FT.TITLE, FT.MESSAGE, ".
" DATE_FORMAT(FT.POST_DATE, '%d.%m.%Y %H:%i:%s') as POST_DATE, FT.LID ".
"FROM b_my_table FT ".
$strWhere.
" ORDER BY FT.ID";

$db_res = $DB->Query($strSql);
while ($res = $db_res->Fetch())
{
$Result = array(
"ID" => $res["ID"],
"SITE_ID" => array("s1"),
"DATE_CHANGE" => $res["POST_DATE"],
"URL" => "/my_module/index.php?ID=".$res["ID"],
"PERMISSIONS" => array(2),
"TITLE" => $res["TITLE"],
"BODY" => $res["MESSAGE"],
);
$index_res = call_user_func(array($oCallback, $callback_method), $Result);
if(!$index_res)
return $Result["ID"];
}
return false;
}

// вызываем переиндексацию модуля
CSearch::ReIndexModule("my_module");

?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх