- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/task/sorting.php
- Класс: BitrixTasksInternalsTaskSortingTable
- Вызов: SortingTable::getSortedItems
static function getSortedItems(CDBResult $result, $userId, $groupId, $prevTaskSort, $prevTaskId, $sourceId, $targetId)
{
$items = array();
$itemIndex = -1;
$prevTaskIndex = null;
$targetFound = false;
while ($row = $result->fetch())
{
if ($sourceId == $row["ID"])
{
//Skip source task
continue;
}
if ($prevTaskIndex !== null)
{
$items[$prevTaskIndex]["NEXT_TASK_ID"] = $row["ID"];
}
$prevTaskSort += static::SORT_INDEX_INCREMENT;
$fields = array(
"TASK_ID" => $row["ID"],
"SORT" => $prevTaskSort,
"PREV_TASK_ID" => $prevTaskId,
"NEXT_TASK_ID" => 0
);
if ($groupId)
{
$fields["GROUP_ID"] = $groupId;
}
else
{
$fields["USER_ID"] = $userId;
}
$items[++$itemIndex] = $fields;
$prevTaskIndex = $itemIndex;
$prevTaskId = $row["ID"];
if ($targetId == $row["ID"])
{
$targetFound = true;
break;
}
}
return array($items, $targetFound);
}