- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/classes/general/task.php
- Класс: CTasks
- Вызов: CTasks::OnSearchReindex
static function OnSearchReindex($nextStep = [], $callback = null, $callback_method = '')
{
$arResult = [];
$order = ['ID' => 'ASC'];
$filter = [];
if (
isset($nextStep['MODULE'], $nextStep['ID'])
&& $nextStep['MODULE'] === 'tasks'
&& $nextStep['ID'] > 0
)
{
$filter['>ID'] = (int)$nextStep['ID'];
}
else
{
$filter['>ID'] = 0;
}
$tasksResult = self::GetList($order, $filter);
while ($task = $tasksResult->Fetch())
{
$taskId = $task['ID'];
$members = self::getMembers($taskId);
$task['ACCOMPLICES'] = $members[MemberTable::MEMBER_TYPE_ACCOMPLICE];
$task['AUDITORS'] = $members[MemberTable::MEMBER_TYPE_AUDITOR];
$path = self::getPathToTask($task);
$permissions = self::__GetSearchPermissions($task);
$result = [
'ID' => $taskId,
'TITLE' => $task['TITLE'],
'BODY' => (strip_tags($task['DESCRIPTION']) ?: $task['TITLE']),
'LAST_MODIFIED' => ($task['CHANGED_DATE'] ?: $task['CREATED_DATE']),
'TAGS' => implode(',', self::getTags($taskId)),
'URL' => $path,
'SITE_ID' => $task['SITE_ID'],
'PERMISSIONS' => $permissions,
];
if ($callback)
{
if (!call_user_func([$callback, $callback_method], $result))
{
return $result['ID'];
}
}
else
{
$arResult[] = $result;
}
self::UpdateForumTopicIndex(
$task['FORUM_TOPIC_ID'],
'U',
$task['RESPONSIBLE_ID'],
'tasks',
'view_all',
$path,
$permissions,
$task['SITE_ID']
);
}
if ($callback)
{
return false;
}
return $arResult;
}