- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/update/fulltasksindexer.php
- Класс: BitrixTasksUpdateFullTasksIndexer
- Вызов: FullTasksIndexer::execute
public function execute(array &$result)
{
if (!(
Loader::includeModule("tasks") &&
Option::get("tasks", "needFullTasksIndexing", "Y") == 'Y'
))
{
return false;
}
$return = false;
$params = Option::get("tasks", "fulltasksindexing", "");
$params = ($params !== ""? @unserialize($params, ['allowed_classes' => false]) : []);
$params = (is_array($params)? $params : []);
if (empty($params))
{
$params = static::fillSourceParams();
}
$found = false;
if ($params["count"] > 0)
{
$result["progress"] = 1;
$result["steps"] = "";
$result["count"] = $params["count"];
$time = time();
if ($params["last_task_id"] !== $params["last_task_to_index"])
{
$tasksHandlerInfo = static::handleTasks($time, $params);
$found = $tasksHandlerInfo['FOUND'];
$params = $tasksHandlerInfo['PARAMS'];
}
else if (static::checkForumIncluded())
{
$commentsHandlerInfo = static::handleComments($time, $params);
$found = $commentsHandlerInfo['FOUND'];
$params = $commentsHandlerInfo['PARAMS'];
}
if ($found)
{
Option::set("tasks", "fulltasksindexing", serialize($params));
$return = true;
}
$result["progress"] = (int)($params["number"] * 100 / $params["count"]);
$result["steps"] = $params["number"];
}
if ($found === false)
{
Option::delete("tasks", ["name" => "fulltasksindexing"]);
Option::set("tasks", "needFullTasksIndexing", "N");
}
return $return;
}